核极限学习机(KELM)是一种单隐含层前馈 神经网络,通过引入核函数改善极限学习机(ELM) 性能,其输出可表示为:
f ( x ) = h ( x ) H U ( Z C + H H U ) − 1 U = [ K ( x , x 1 ) ⋮ K ( x , x N ) ] U ( Z C + W ELM ) − 1 U \begin{aligned} & f(x)=h(x) H^U\left(\frac{Z}{C}+H H^U\right)^{-1} U \\ & =\left[\begin{array}{c} K\left(x, x_1\right) \\ \vdots \\ K\left(x, x_N\right) \end{array}\right]^{\mathrm{U}}\left(\frac{Z}{C}+W_{\text {ELM }}\right)^{-1} U \end{aligned} f(x)=h(x)HU(CZ+HHU)−1U= K(x,x1)⋮K(x,xN) U(CZ+WELM )−1U
式中: x x x —样本数据; f ( x ) f(x) f(x) —模型输出; h ( x ) h(x) h(x) —隐含层输人; H H H —特征映射矩阵; C C C —正则化参数; Z Z Z —单位矩阵; U U U —训练集目标向量; K ( x 0 K\left(x_0\right. K(x0 , x p ) \left.x_p\right) ~ xp) 一核函数; W E L M W_{E L M} WELM 一核矩阵。
目前常用的核函数主要有线性、多项式、径向基、Sigmoid 等核函数。文章基于局部核函数 R B F R B F RBF 和全局核函数 Poly 构建具有更好性能的混合核函数,使 KELM 拥有全局和局部两方面的优秀性能,RBF 与 Poly 函数描述如下:
K R B F ( x 0 , x p ) = exp ( − ∥ x 0 − x p ∥ 2 / σ 2 ) K Poly ( x 0 , x p ) = ( x 0 , x p + c 1 ) d \begin{gathered} K_{R B F}\left(x_0, x_p\right)=\exp \left(-\left\|x_0-x_p\right\|^2 / \sigma^2\right) \\ K_{\text {Poly }}\left(x_0, x_p\right)=\left(x_0, x_p+c_1\right)^d \end{gathered} KRBF(x0,xp)=exp(−∥x0−xp∥2/σ2)KPoly (x0,xp)=(x0,xp+c1)d
式中: s − R B F s-R B F s−RBF 核函数参数; c 1 、 d − P o l y c_1 、 d-P o l y c1、d−Poly 核函数参数。
由于 HKELM 是基于不同核函数的 KELM 线性组合,因此,基于 RBF、Poly 线性组合的混合核函数描述为:
K H ( x 0 , x p ) = S K R B F ( x 0 , x p ) + ( 1 − S ) K P o b ( x 0 , x p ) K_H\left(x_0, x_p\right)=S K_{R B F}\left(x_0, x_p\right)+(1-S) K_{P o b}\left(x_0, x_p\right) KH(x0,xp)=SKRBF(x0,xp)+(1−S)KPob(x0,xp)
式中: K H ( x 0 , x p ) K_H\left(x_0, x_p\right) KH(x0,xp) 一混合核函数; s − R B F s-R B F s−RBF 核函数参数权重系数; K R B F ( x 0 , x p ) K_{R B F}\left(x_0, x_p\right) KRBF(x0,xp) 、 K Poly ( x 0 , x p ) K_{\text {Poly }}\left(x_0, x_p\right) KPoly (x0,xp) 一 RBF、Poly核函数。
将 K H ( x 0 , x p ) K_H\left(x_0, x_p\right) KH(x0,xp) 代人输出函数可得到 HKELM模型。
采用随机法产生训练集和测试集,其中训练集包含 1 900 个样 本,测试集包含 100 个样本。为了减少变量差异较大对模型性能的影响,在建立模型之前先对数据进行归一化。
蝠鲼觅食算法原理请参考:https://blog.csdn.net/u011835903/article/details/112390588
由前文可知,HKELM的参数设置具有满目性。本文利用蝠鲼觅食算法对HKELM的参数进行优化。适应度函数设计为训练集的误差的MSE:
f i t n e s s = a r g m i n ( M S E p r i d e c t ) fitness = argmin(MSE_{pridect}) fitness=argmin(MSEpridect)
适应度函数选取训练后的MSE误差。MSE误差越小表明预测的数据与原始数据重合度越高。最终优化的输出为最佳初始权值和阈值。然后利用最佳初始权值阈值训练后的网络对测试数据集进行测试。