海洋捕食者算法改进的深度极限学习机DELM的回归预测

海洋捕食者算法改进的深度极限学习机DELM的回归预测

1.ELM原理

ELM基础原理请参考:https://blog.csdn.net/u011835903/article/details/111073635。

自动编码器 AE(Auto Encoder)经过训练可以将输入复制到输出。因为不需要标记数据,训练自动编码器是不受监督的。因此,将AE的思想应用到ELM中,使ELM的输入数据同样被用于输出,即输出Y=X。作为自编码器的极限学习机ELM-AE网络结构如图1所示。

请添加图片描述

图1.ELM-AE网络结构图

若图1中m>L ,ELM-AE实现维度压缩,将高维度数据映射成低维度特征表达;若 m=L,ELM-AE实现等维度的特征表达;若 m<L ,ELM-AE实现稀疏表达,即原始数据的高维特征表达。

综上,ELM-AE是一个通用的逼近器,特点就是使网络的输出与输入相同,而且隐藏层的输入参数 ( a i , b i ) (a_i,b_i) (ai,bi)??随机生成后正交。正交化后的优点有:

(1)根 据 J-L(Johnson-Lindensrauss) 定理,权重和偏置正交化可以将输入数据映射到不同或等维度的空间,从而实现不同功能的特征表达。

(2)权重和偏置的正交化设计可以去除特征以外的噪声,使特征之间均匀,且更加线性独立进而增强系统的泛化能力。

ELM-AE的输出可以用如下表达式表示:
x j = ∑ i = 1 L β i G ( a i , b i , x j ) , a i ∈ R m , β i ∈ R m , j = 1 , 2 , . . . , N , a T a = I , b T b = 1 (1) x_j=\sum_{i=1}^L \beta_iG(a_i,b_i,x_j),a_i\in R^m,\beta_i\in R^m,j=1,2,...,N,a^Ta=I,b^Tb=1 \tag{1} xj=i=1LβiG(ai,bi,xj),aiRm,βiRm,j=1,2,...,N,aTa=I,bTb=1(1)
其中 a a a a i a_i ai组成的矩阵, b b b b i b_i bi?组成的向量。隐藏层的输出权重为:
β = ( I C + H T H ) − 1 H T X (2) \beta = (\frac{I}{C}+H^TH)^{-1}HTX \tag{2} β=(CI+HTH)1HTX(2)
其中, X = [ x 1 , . . . , x N ] X=[x_1,...,x_N] X=[x1,...,xN]是输入数据。

2.深度极限学习机(DELM)原理

根据ELM-AE的特征表示能力,将它作为深度极限学习机 DELM的基本单元。与传统深度学习算法相同,DELM 也是用逐层贪婪的训练方法来训练网络,DELM每个隐藏层的输入权重都使用ELM-AE初始化,执行分层无监督训练,但是与传统深度学习算法不同的是DELM不需要反向微调过程。

请添加图片描述

图2.DELM模型训练过程

DELM的思想是通过最大限度地降低重构误差使输出可以无限接近原始输入,经过每一层的训练,可以学习到原始数据的高级特征。图2描述了DELM模型的训练过程,将输入数据样本X作为第1个ELM-AE的目标输出( X 1 = X X_1 =X X1=X??),进而求取输出权值 β 1 β_1 β1?? ;然后将DELM第1个隐藏层的输出矩阵 H 1 H_1 H1??当作下1个 E L M − A E ELM-AE ELMAE?的输入与目标输出( X 2 = X X_2=X X2=X?),依次类推逐层训练,最后1层用 E L M ELM ELM???来训练,使用式(2)来求解DELM的最后1个隐藏层的输出权重 β i + 1 \beta_{i+1} βi+1?? 。图2中 H i + 1 H_{i+1} Hi+1?? 是最后1个隐藏层的输出矩阵,T是样本标签。 H i + 1 H_{i+1} Hi+1?每1层隐藏层的输入权重矩阵为 W i + 1 = β i + 1 T W_{i+1}=\beta_{i+1}^T Wi+1=βi+1T?。

3.海洋捕食者算法

海洋捕食者算法原理请参考:https://blog.csdn.net/u011835903/article/details/118468662

4.海洋捕食者算法改进DELM

由上述原理可知原始DELM中的,权重采用随机初始化的方式进行初始化,而初始权重对于整个模型的预测结果影响比较大,于是采用海洋捕食者算法对DELM的初始权重进行优化。适应度函数设计如下:
f i t n e s s = M S E ( t r a i n ) + M S E ( t e s t ) fitness=MSE(train)+MSE(test) fitness=MSE(train)+MSE(test)
适应度函数为,训练集和测试集(验证集)的均方误差之和,误差越小,预测越准确。

5.实验结果

本案例中数据总量为600组,其中训练集和测试集分别划分为400组和200组。输入数据维度为3维,标签数据为1维。数据划分结果如下:

%% 导入数据
load data
%训练集——400个样本
P_train=input(:,(1:400));
T_train=output((1:400));
% 测试集——200个样本
P_test=input(:,(400:600));
T_test=output((400:600));

DELM的参数设置如下:

这里DELM采用2层结构,每层的节点数分别为2,3。采用sigmoid激活函数。

%% DELM参数设置
ELMAEhiddenLayer = [2,3];%ELM—AE的隐藏层数,[n1,n2,...,n],n1代表第1个隐藏层的节点数。
ActivF = 'sig';%ELM-AE的激活函数设置
C = 5; %正则化系数

海洋捕食者算法相关参数设置:

%% 优化算法参数设置:
%计算权值的维度
dim=0;
for i = 1:length(ELMAEhiddenLayer)
   dim = dim+ ELMAEhiddenLayer(i)*size(Pn_train,2);
end
popsize = 20;%种群数量
Max_iteration = 50;%最大迭代次数
lb = -1;%权值下边界
ub = 1;%权值上边界
fobj = @(X)fun(X,Pn_train,Tn_train,Pn_test,Tn_test,ELMAEhiddenLayer,ActivF,C);
[Best_pos,Best_score,SSA_cg_curve]=SSA(popsize,Max_iteration,lb,ub,dim,fobj);

最终预测结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从结果上来看海洋捕食者-DELM的MSE明显好于原始DELM的结果。

6.参考文献

[1]颜学龙,马润平.基于深度极限学习机的模拟电路故障诊断[J].计算机工程与科学,2019,41(11):1911-1918.

7.Matlab代码

  • 16
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 海洋捕食者算法是一种基于自然选择中的捕食行为的优化算法,该算法模拟了自然界中海洋捕食者和被捕食者之间的进化竞争过程和群体智能协作机制。这种算法通常应用于求解多目标优化问题和复杂的非线性优化问题,能够快速找到最优解或者接近最优解的解决方案。 基于MATLAB平台的海洋捕食者算法的实现,通常包括以下几个步骤:首先,定义问题的目标函数并确定优化问题的约束条件。然后,设计合适的初始值和超参数进行参数初始化。接着,构建捕食者群和被捕食者群,进行种群初始化。在进行迭代优化过程中,每一次迭代时捕食者采用算术交叉和变异操作来更新个体位置,被捕食者则采用簇操作来保持群体的多样性。根据更新后的个体位置,重新更新目标函数值并比较各个个体的适应度,确定新的捕食者和被捕食者个体,然后重复进行迭代过程,直到满足收敛准则或者达到最大迭代次数为止。 海洋捕食者算法具有计算效率高、全局搜索能力强、易于实现等优点,因此被广泛地应用于解决各种复杂的优化问题,特别适用于搜索范围比较大、局部极值多的优化问题。 ### 回答2: 海洋捕食者算法(Marine Predators Algorithm,简称MPA)是一种仿生优化算法,其目的是解决复杂的优化问题。该算法的灵感来源于海洋生物中的捕食者行为。MPA 将优化问题看作是一群捕食者海洋中寻找猎物的过程,其中捕食者代表搜索者,而猎物代表优化问题中的最优解。算法过程中,捕食者会遵循一定的策略,如寻找和追踪猎物,以及适当地探索和利用环境信息等,来寻找最优解。 算法的实现中,将搜索空间看作是海洋,将目标函数值看作是捕食者海洋中的位置。通过仿真捕食者与猎物之间的交互,不断地更新捕食者的位置和状态,达到优化目标的最佳解。 该算法在优化解决方案中具有一定优势,如良好的搜索效率、高度自适应和能够处理复杂的非线性问题等。同时,该算法也有一些局限性,如在大规模问题中容易出现陷入局部最优等问题。 MATLAB 是一种科学计算软件,其拥有丰富的数学库和算法库,对海洋捕食者算法的实现提供了良好的支持。利用MATLAB语言实现MPA 算法,可以更加灵活和高效地完成算法的相关操作。在实际应用中,通过修改捕食者的运动规则、适应度函数等参数,可以实现不同场景下的优化问题的求解。 ### 回答3: 海洋捕食者算法是一种模拟海洋生态系统中捕食者和被捕食者之间竞争和适应的算法,可以应用于优化问题的求解。 该算法使用一个群体搜寻的方法,在每次迭代中,通过对群体中每个个体的位置和适应度进行更新和调整,最终得到最优解。 在该算法中,捕食者和被捕食者的角色由不同的种群扮演,它们通过复杂的捕食关系进行交互,在模拟生态系统中的自然选择和适应性进化机制。 使用Matlab实现海洋捕食者算法时,需要进行两个主要的步骤:种群初始化和迭代搜索。在种群初始化中,可以随机生成一些初始捕食者和被捕食者。在迭代搜索中,通过不断地更新个体位置和适应度函数,来确定每个个体的适应性大小,从而让优秀的个体被保留,不好的个体被淘汰。 总的来说,海洋捕食者算法是一种有效的解决优化问题的算法,它通过模拟生态系统中复杂的捕食关系,实现了较好的优化效果。在Matlab中的实现也相对简单,可以通过一些编程技巧和常用的函数库来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值