【DL笔记】AutoEncoder详解(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/roguesir/article/details/81173557
  • 更新时间:2018-08-24

前言

之前写过一篇博客介绍AutoEncoder,主要侧重理解(点击这里),这篇博客主要介绍常见的AutoEncoder算法,如欠完备自编码器、降噪自编码器等。

欠完备自编码器(Undercomplete AutoEncoder)

AutoEncoder(自编码器,AE)是神经网络的一种,基本结构分为编码、解码过程,即找到随机映射 f = p e n c o d e r ( h | x ) g = p d e c o d e r ( x | h ) 。其基本结构如下图所示:
这里写图片描述
其中, f 为编码器, g 为解码器,实际上,可以将 f g 理解成反函数的映射关系,AutoEncoder的目的是使输入 x 和输出 r 差异最小,但这并不是关键之处,关键之处在于让模型通过编码解码过程学习到特征,或者说学习到数据的分布。当 h 的维数大于输入 x 时,模型不会学习到任何有用的特征,因为模型的目标函数即为最小化 x r 之间的差异, h 的维数足够大时,只需进行输入数据的复制即可得到与输入相同的输出,但这并不是模型想要达到的效果,因此在AutoEncoder设置时, h 的维数会小于输入的维数,这样才能迫使模型丢弃没用的特征(或者说丢弃不影响数据分布的特征),学习并保留有用的特征,这种自编码器就称为欠完备自编码器(Undercomplete AutoEncoder),学习欠完备的表示将会强制自编码器捕捉数据中的显著特征。

降噪自编码器(Denoising AutoEncoder,DAE)

自编码器通过迭代优化输入输出最小化二者之间的差异来训练模型参数,但当模型特征训练不恰当,就会造成模型学习到的权重更倾向于对特定输入的特征捕捉,而自编码器优化的目的是捕捉图片的有效特征,从而可以进行无监督的算法实现,通常可以使用降噪自编码器来改善这个问题。
常规的机器学习算法在数据清洗过程中致力于移除 “异常点”,尽可能高地提取同类样本间的相同或类似的特征,但由于自编码器的特殊性,通常会在输入过程中进行处理——加入随机噪声,如高斯噪声,这样使每次输入模型进行训练的数据均有不同之处,又具有共性,如下图所示:
这里写图片描述
以处理图像数据为例,将原始输入 x 加入随机噪声生成 x ,将 x 输入到AutoEncoder中进行训练,经过encoder和decoder过程之后得到输出 y ,损失函数则是计算原始输入 x 和输出 y 之间的差异,损失函数可以是均方差、绝对误差等,如此训练出的模型具有降噪功能,对含有噪声的图片不敏感。

猜你喜欢

转载自blog.csdn.net/roguesir/article/details/81173557
DL
今日推荐