极限学*机 matlab,深度极限学*机的研究笔记

发布于:2021-08-29 13:23:53

深度极限学*机(DELM)目前主要含两种基本结构:1、利用传统深度学*框架(主要是堆栈自动编码器,或者是深度置信网络)进行数据的深度自适应特征提取,而后将获得的特征输入至极限学*机及其变种中进行分类或回归;2、利用极限学*机与自动编码器相结合,形成极限学*机-自动编码器(ELM-AE),结构如图1,将ELM-AE作为无监督学*的基础单元对输入数据进行训练与学*,并保存ELM-AE由最小二乘法获得的输出权值矩阵用于堆栈多层极限学*机(ML-ELM)。


图1 ELM-AE结构


关于第一种深度极限学*机,可改进的地方较少,大部分人就是将不同的深度学*方法与不同的极限学*机变种进行结合,方法较为简单。我们今天就说说第二种深度极限学*机,后文所述的深度极限学*机默认是第二种。


和其他深度学*相比,深度极限学*机无需微调,ELM-AE与最终的DELM分类层(或回归层)均采用最小二乘法且只进行一步反向计算得到更新后的权重,因此显著特点是速度快。缺点也很明显,第一,ELM-AE的输入层权值与偏置依旧是随机生成,且不进行反向调整,因此DELM的精度ELM-AE输入权值的影响;第二,采用多隐含层结构的DELM,各层节点数对最终精度有着较大影响;第三,采用最小二乘法进行输出权值一步更新,在样本数较少时比较方便,当处理大样本问题时(比如MNIST),在计算Moore伪逆的时候极大地增加了计算时间与复杂度,并且特别容易出现欠拟合。目前已有的文献基本上就是根据上述几个缺点进行模型的优化改进,比如针对缺点一,丁教授等人提出权值不确定性深度极限学*机与拉普拉斯多层极限学*机,主要是对ELM-AE的基础结构进行了改进。针对问题2,主要就是采用各种优化算法,比如遗传、粒子群、蝙蝠、物体碰撞等对深度极限学*机各层节点数进行优化选择,最终精度与优化算法也有关。针对问题3,就是采用最小二乘法的变体进行输出权重的更新,比如借鉴在线序列极限学*机思想,该方法可以将样本以块为单位或以个为单位输入进ELM-AE与DELM进行权值调整,这就避免了一次输入所有样本带来的计算问题。


下面分别来看看不同的算法的结果。


1、最原始深度极限学*机


数据 USPS,两隐含层


三隐含层


2,权值不确定性深度极限学*机


结果基础上与上面的一致就不贴图了。


3,粒子群优化


经过10次迭代优化获得的各层节点数就能获得98%的分类精度


4、对ELM-AE进行结构改进,引入小波基函数,稀疏系数,L2正则化,形成深度小波极限学*机


采用的morlet母小波,正则化和稀疏系数都没用到,节点数是经过优化后保存下来的参数,可能有点过拟合,不过还能接受


5、对ELM-AE进行算法优化,结合递归最小二乘法与woodbury公式,形成批训练。将数据进行分块训练,大大降低了大样本直接输入的伪逆矩阵的求取问题,能够明显提高模型的精度与泛化能力


基于相同的结构对mnist进行测试,这里结构是随便选择的


将数据分为600块,每块100个样本,3层深度小波极限学*机所耗时间为127s。最终精度为84%


将数据分为1块,就是不进行分块处理,3层深度小波极限学*机所耗时间为46s,测试精度只有77%。


上述方法说明批训练最小二乘法下的深度极限学*机是有效的。


笔记先写到这里,以后有机会再进行补充







相关资源:深度(多层)极限学*机的python实现.rar

相关推荐

最新更新

猜你喜欢