⛄一、基本极限学习机算法简介
1 核极限学习机
极限学习机(ELM)是一种含L个神经元的单隐藏层前馈神经网络(SLFN)算法,相比于其他神经网络(如BP)具有训练速度快和泛化能力强等特点。但是ELM算法是随机生成各个神经元连接权值和阈值,易造成算法的波动性和不稳定性,因此在ELM算法中,在映射函数h(x)未知时,引入核函数,核极限学习机构建如下:
由式(9)输出层对应的输出可表示为:
式中:核函数K(x,x1)采用RBF函数。
2 模型优化
2.1 灰狼算法
灰狼算法是近几年新兴的一种智能优化算法,具体从以下三个方面对算法进行描述:
(1) 寻找和包围猎物。
狼群对于目标猎物以群体寻找方式搜寻,接近目标,直到发现目标确定最优α、β、δ狼,狼群位置更新:
式中:A和C为系数向量;D是狼群中个体和目标猎物距离;t为迭代次数;X是灰狼位置;XP是目标猎物位置。
(2) 捕杀猎物。
通过式(11)确定的最优α、β、δ狼向ω狼和其他狼群传播信息,更新自身所处位置,即:
式中:Xα、Xβ、Xδ代表狼群中α、β、δ狼位置,Dα、Dβ、Dδ是其他个体与α、β、δ狼距离。
(3) 攻击目标。
狼群猎物时,以α、β、δ的位置来确定猎物的最优位置逐步缩小包围范围。对随机变量A大于1时,狼群对最优目标寻找以全局搜索方式进行。相反A小于1时,狼群对目标进行攻击时,是以局部寻优搜索方式。
⛄二、部分源代码
clear;clc;close all;
%% 导入数据
load data
%训练集——400个样本
P_train=input(:,(1:550));
T_train=output((1:550));
% 测试集——200个样本
P_test=input(:,(250:350));
T_test=output((250:350));
%% 归一化
% 训练集
[Pn_train,inputps] = mapminmax(P_train,0,1);
Pn_test = mapminmax(‘apply’,P_test,inputps);
% 测试集
[Tn_train,outputps] = mapminmax(T_train,0,1);
Tn_test = mapminmax(‘apply’,T_test,outputps);
%所有的数据输入类型应该为 N*dim,其中N为数据组数,dim为数据的维度
Pn_train = Pn_train’;
Pn_test = Pn_test’;
Tn_train = Tn_train’;
Tn_test = Tn_test’;
%% DELM参数设置
ELMAEhiddenLayer = [2,3];%ELM—AE的隐藏层数,[n1,n2,…,n],n1代表第1个隐藏层的节点数。
ActivF = ‘sig’;%ELM-AE的激活函数设置
C = inf; %正则化系数
%% 优化算法参数设置:
%计算权值的维度
dim = ELMAEhiddenLayer(1)*size(Pn_train,2);
if length(ELMAEhiddenLayer)>1
for i = 2:length(ELMAEhiddenLayer)
dim = dim + ELMAEhiddenLayer(i)*ELMAEhiddenLayer(i-1);
end
end
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]朱昶胜,赵奎鹏.改进灰狼算法的核极限学习机的风功率预测[J].计算机应用与软件. 2022,39(05)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除