基于极限学习机的自编码器(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(Auto Encoder)经过训练可以将输入复制到输出。因为不需要标记数据,训练自动编码器是不受监督的。因此,将AE的思想应用到ELM中,使ELM的输入数据同样被用于输出,即输出Y=X。作为自编码器的极限学习机ELM-AE网络结构如图1所示。

图1.ELM-AE网络结构图

若图1中m>L ,ELM-AE实现维度压缩,将高维度数据映射成低维度特征表达;若 m=L,ELM-AE实现等维度的特征表达;若 m<L ,ELM-AE实现稀疏表达,即原始数据的高维特征表达。

综上,ELM-AE是一个通用的逼近器,特点就是使网络的输出与输入相同,而且隐藏层的输入参数(ai,bi)(a_i,b_i)(ai​,bi​)​​随机生成后正交。正交化后的优点有:

(1)根 据 J-L(Johnson-Lindensrauss) 定理,权重和偏置正交化可以将输入数据映射到不同或等维度的空间,从而实现不同功能的特征表达。

(2)权重和偏置的正交化设计可以去除特征以外的噪声,使特征之间均匀,且更加线性独立进而增强系统的泛化能力。

ELM-AE的输出可以用如下表达式表示:
xj=∑i=1LβiG(ai,bi,xj),ai∈Rm,βi∈Rm,j=1,2,...,N,aTa=I,bTb=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​βi​G(ai​,bi​,xj​),ai​∈Rm,βi​∈Rm,j=1,2,...,N,aTa=I,bTb=1(1)
其中aaa是aia_iai​组成的矩阵,bbb是bib_ibi​​组成的向量。隐藏层的输出权重为:
β=(HTH)−1HTX\beta = (H^TH)^{-1}HTX β=(HTH)−1HTX
其中,X=[x1,...,xN]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代码

基于极限学习机的自编码器(ELM-AE)相关推荐

  1. 【ELM预测】基于极限学习机ELM实现数据预测matlab源码

    一.极限学习机的概念 极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法. ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网 ...

  2. MATLAB机器学习系列-8 极限学习机(Extreme Learning Machine, ELM)原理及其代码实现

    极限学习机(Extreme Learning Machine, ELM) 极限学习机网络结构和BP网络结构类似. 和BP神经网络不同点: 极限学习机输入层到隐含层的权重W是可以随意指定的.BP神经网络 ...

  3. 极限学习机(Extreme Learning Machine)ELM

    二.ELM 1.算法介绍及功能 极限学习机(Extreme Learning Machine) ELM是一种针对单隐含层前馈神经网络(Single-hiddenLayerFeedforwardNeur ...

  4. 基于极限学习机ELM的人脸识别程序

    前言 有关极限学习机基础知识请参考 极限学习机详解 目标 基于YALE人脸库,15组人脸(每组照片代表一个人),进行人脸分类识别.(下载地址:YALE人脸库) 将每类人脸前10张照片用于学习,第11张 ...

  5. 【预测模型-ELM分类】基于极限学习机ELM+OSELM+KELM+半监督SSELM+USELM实现数据集分类附matlab代码

    1 内容介绍 极限学习机是由黄广斌等[13]提出的一种针对前馈神经网络设计的机器学习算法.该算法结构简单.计算速率快.ELM的关键在于找到输出和输出之间的映射空间.首先确定隐含层之间的连接权值w和隐含 ...

  6. 基于极限学习机的预测、图像降噪和回归

    关于极限学习机,原理较为简单,但也饱受争议.这篇文章只列举几个应用,关于极限学习机的相关文章,请参考如下链接: Extreme learning machine (ELM) 到底怎么样,有没有做的前途 ...

  7. 极限学习机(Extreme Learning Machine, ELM)的训练与预测matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 极限学习机(ELM)是当前一类非常热门的机器学习算法,被用来训练单隐层前馈神经网络(SLFN

  8. 基于极限学习机的轴承故障分类(西储大学数据)

    一概述 1.1说明 极限学习机的实现程序. 处理的数据为西储大学的不同故障类型的轴承数据. 程序包括:预处理数据和matlab训练预测部分 原理:参考博客 1.2开发工具 matlab2018 pyc ...

  9. 极限学习机Python开源库——elm【内附案例源码】

  10. 【ELM预测】基于粒子群算法改进极限学习机ELM实现数据预测matlab源码

    一.极限学习机的概念 极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法. ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网 ...

最新文章

  1. RSA签名算法,计算调用加密报文,安全传输
  2. MongoDB图形化管理工具
  3. select检测到可读,调用read的情况
  4. pythonsvc_sklearn-SVC实现与类参数详解
  5. C语言满分:L1-061 新胖子公式 (10分)
  6. oracle rds 运维服务_从运维的角度分析使用阿里云数据库RDS的必要性–你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库...
  7. REST framework 权限管理源码分析
  8. MySQL安装成功后dos命令行设置密码
  9. COCO 54.7mAP!DetectoRS目标检测:改进主干网,成就新高度!
  10. Java 1.1.2 字符串之拼接
  11. 现在维吾尔语在计算机中发展,维吾尔语手写体在线计算机识别技术研究.doc
  12. Parallels Desktop 15 for Mac(pd虚拟机)特别版
  13. swift开发网络篇—NSURLConnection基本使用
  14. 科研神器----数据提取软件WebPlotDigitizer的使用
  15. 如何用Keil uVision3和ISIS 7 Professional中C51单片机做出 LED流水灯
  16. JS:读取excel并显示
  17. 恩淑 2004-12-18
  18. matlab 使用c2d的离散化笔记
  19. 第二章—v-directive自定义指令
  20. 在Mac实现自动切换输入法

热门文章

  1. matlab myupdatefcn,MATLAB笔记
  2. 2021-1-30Linux学习纪要
  3. angularjs sill 创建项目_AngularJS快速上手,从安装到运行
  4. python gdbm_linux下python安装
  5. 选择排序及其不稳定性介绍
  6. 15. Django基础:cookies和sesseion
  7. JavaWeb:JSON对象和Java对象的相互转换
  8. 实战JavaScript:实现像素鸟小游戏
  9. Javascript:Ajax讲解
  10. Java类的域初始化_Java域的初始化