基于极限学习机的自编码器(ELM-AE)
基于极限学习机的自编码器(ELM-AE)文章目录基于极限学习机的自编码器(ELM-AE)1.算法原理2.算法实验2.1 利用ELM-AE对单维数据进行自编码2.2 利用ELM-AE对图像进行编码与还原3.参考文献4.Matlab代码1.算法原理ELM基础原理请参考:https://blog.csdn.net/u011835903/article/details/111073635。自动编码器 AE
基于极限学习机的自编码器(ELM-AE)
文章目录
1.算法原理
ELM基础原理请参考:https://blog.csdn.net/u011835903/article/details/111073635。
自动编码器 AE(Auto Encoder)经过训练可以将输入复制到输出。因为不需要标记数据,训练自动编码器是不受监督的。因此,将AE的思想应用到ELM中,使ELM的输入数据同样被用于输出,即输出Y=X。作为自编码器的极限学习机ELM-AE网络结构如图1所示。

若图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=1∑LβiG(ai,bi,xj),ai∈Rm,βi∈Rm,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组成的向量。隐藏层的输出权重为:
β = ( H T H ) − 1 H T X \beta = (H^TH)^{-1}HTX β=(HTH)−1HTX
其中, X = [ x 1 , . . . , x N ] X=[x_1,...,x_N] X=[x1,...,xN]是输入数据。
2.算法实验
2.1 利用ELM-AE对单维数据进行自编码
生成模拟数据:
data = sin(0:0.1:3.14);
data = data + data.^2 - data.^3;
设置ELM-AE参数如下:
ActiveF = 'sig';%设置激活函数
number_neurons = 2;%节点数
算法结果:

从结果来看,ELM-AE输出的数据的确跟原始数据非常接近。
2.2 利用ELM-AE对图像进行编码与还原
实验对象为经典cameraman图像,利用ELM-AE设置不同的节点数,观察经过网络后,得到图像与原始图像的差异。设置结点数范围为1-50。数据输入维度为:256x256。
设置不同的结点数的结果如下:
节点数为1时:

节点数为10时:

节点数为20时:
节点数为50时:

可以看到随着隐藏层节点数的增加,输出图像越来越逼近原始图像,利用仅仅50个节点,就可以使得图像跟原始图像非常接近,原始图像的维度为256,也就是说利用ELM-AE降维到50维时,编码还原后仍然能与原始图像接近。
3.参考文献
[1]颜学龙,马润平.基于深度极限学习机的模拟电路故障诊断[J].计算机工程与科学,2019,41(11):1911-1918.
4.Matlab代码
更多推荐



所有评论(0)