深度极限学习机的研究笔记

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

                                                                            深度极限学习机的研究笔记_第1张图片

                                                                                         图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张图片

三隐含层

深度极限学习机的研究笔记_第4张图片        2,权值不确定性深度极限学习机

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

        3,粒子群优化

深度极限学习机的研究笔记_第5张图片

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

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

深度极限学习机的研究笔记_第6张图片

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

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

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

深度极限学习机的研究笔记_第7张图片

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

 

深度极限学习机的研究笔记_第8张图片

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

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

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

 

你可能感兴趣的:(机器学习)