tensorflow 实现基本AutoEncoder,降噪自编码器

Auto-Encoder(AE)是20世纪80年代晚期提出的,它是一种无监督学习算法,使用了反向传播算法,让目标值等于输入值。基本的AE可视为一个三层神经网络结构:一个输入层、一个隐藏层和一个输出层,其中输出层与输入层具有相同的规模。

AE最初是作为一个降维手段来进行的,要是编码器那里没有使用非线性部分,那么就可以等价为PCA算法来使用。(初始的维数大于编码器输出的维数的时候)

而现在编码器的输出维数大于输入的维数(over-complete setting),获取更高维,更加有意义的表示。

AE有一个问题就是要是直接对上面的损失函数(平方误差或者交叉熵)进行训练的话,很可能就会得到一个恒等函数。解决此问题的常用的一些方法,有在损失函数里面引入稀疏性(sparse AE),或者在网络中引入随机性(如RBM,Denoising AE)。

 

标准自编码器(在基本的自编码器里面引入正则化项就行,一般是L1或者L2正则化项。)

标准自编码器实则是对权重的设置提出要求,限制权重,避免过大



最左边的是一个输入层,中间是隐藏层,最右边是输出层,输出层的神经元数量完全等于输入层神经元的数量。隐藏层的神经元数量少于输出层。 自编码网络的作用是,将输入样本压缩到隐藏层,再在输出端重建样本。其目标是使输出和输入之间尽量的小。

神经网络权重矩阵的初始化,经验之谈,xaviar initialization。如果权重初始化得太小,那信号在每层间传递是逐渐缩小而难以产生作用,但是如果权重初始化得太大,那信号将在每层间逐渐放大并且导致发散和失效。xaviar initialization就是让均值满足为0,方差是

损失函数:

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值