👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
根据ELM-AE的特征表示能力,将它作为深度极限学习机 DELM的基本单元。与传统深度学习算法相同,DELM也是用逐层贪婪的训练方法来训练网络,DELM每个隐藏层的输入权重都使用ELM-AE初始化执行分层无监督训练,但是与传统深度学习算法不同的是DELM不需要反向微调过程。
DELM的思想是通过最大限度地降低重构误差使输出可以无限接近原始输入,经过每一层的训练,可以学习到原始数据的高级特征。图2描述了DELM模型的训练过程,将输入数据样本X作为第1个ELM-AE的目标输出(=X),进而求取输出权值βr﹔然后将DELM第1个隐藏层的输出矩阵H当作下1个ELM ― AE的输入与目标输出(=X),依次类推逐层训练,最后1层用ELM来训练,使用式(2)来求解DELM的最后1个隐藏层的输出权重。图2中是最后1个隐藏层的输出矩阵,T是样本标签。编辑每1层隐藏层的输入权重矩阵为。
📚2 运行结果
部分代码:
%% 带初始权重的DELM训练函数
%输入-----------------------
%InputWietht:输入的初始权重
%P_train 输入数据,数据格式为N*dim,N代表数据组数,dim代表数据维度。
%T_train 输入标签数据
%ActiveF 为激活函数,如'sig','sin','hardlim','tribas'等。
%C为正则化系数
%输出: outWeight为输出权重
function OutWeight = DELMTrainWithInitial(InputWietht,P_train,T_train,ELMAEhiddenLayer,ActivF,C)
hiddenLayerSize = length(ELMAEhiddenLayer); %获取ELM-AE的层数
outWieght = {};%用于存放所有的权重
P_trainOrg = P_train;
count = 1;
%% ELM-AE提取数据特征
for i = 1:hiddenLayerSize
Num = ELMAEhiddenLayer(i)*size(P_train,2);
InputW = InputWietht(count:count+Num-1);
count = count+Num;
InputW = reshape(InputW,[ELMAEhiddenLayer(i),size(P_train,2)]);
[~,B,Hnew] = ELM_AEWithInitial(InputW,P_train,ActivF,ELMAEhiddenLayer(i)); %获取权重
OutWeight{i} = B';
P_train =P_train*B'; %输入经过第一层后传递给下一层
end
%% 最后一层ELM进行监督训练
P = P_train;
N =size(P,2);
I = eye(N);
beta = pinv((P'*P+I/C))*P'*T_train;
OutWeight{hiddenLayerSize + 1} = beta; %存储最后一层ELM的信息。
end
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]张文帅,王占刚.基于改进麻雀算法优化深度极限学习机的缺失数据预测[J].电子测量技术,2022,45(15):63-67.DOI:10.19651/j.cnki.emt.2209216.
🌈4 Matlab代码及文章讲解
链接:https://pan.baidu.com/s/1rjShcvq-OozdKoVLJvmg_g
提取码:9ksb
--来自百度网盘超级会员V3的分享