自动编码器原理及实现(一)

一、什么是自动编码器(也叫自编码器)

网络上有关自动编码器的资料参差不齐,许多基本概念及原理没有讲清楚。现在,我来一个比较系统的讲述

一下自动编码器的一些概念及原理,在最后,附上python实现代码。

自动编码器是神经网络的一种,经过训练后能尝试将输入复制到输出,换句话说,就是使输出的内容和输入的

内容一样。自动编码器内部有一个隐含层h,可以产生编码来表示输入。该网络可以看作由两部分组成:一个编

码器h=f(x)和一个生成重构的解码器r=g(h)。最后使得x约等于g(f(x))。可不可以通过设计网络使得x=g(f(x)),

理论上可以的,但通常不会这么做。自动编码器应该设计成不能学会完美地复制,通过强加一些约束,使自动

编码器只能近似地复制,因些它能学习到数据的有用特性。




二、稀疏自编码

从自动编码器获得有用特征的一种方法是限制h的维度比x小,这样将强制自动编码器捕捉训练数据中

最显著的特征,这样的自动编码器叫稀疏自编码。学习过程可以简单地描述为最小化一个损失函数

                       L(x,g(f(x)))+Ω(h) , Ω(h)是惩罚项

当解码器是线性的且L是均方误差,就可以学习出与PCA方法相同生成子空间。(PCA可以参考以前写过的一篇博客)



这个图就是稀疏自编码器的样例,Layer L1是输入层,Layer L3是输出层,Layer L2是隐藏层。


下节会讲稀疏自编码的前向传播和后向传播,敬请期待。

  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值