压缩去噪利器---自编码器(AutoEncoder)

本文介绍了自编码器的原理和功能,包括降维压缩与去噪。通过不同类型的自编码器如多层、卷积和正则自编码器的实例,展示了其在图像数据处理中的应用。利用Keras实现的代码示例展示了如何构建和训练这些模型,以及训练过程的可视化。
摘要由CSDN通过智能技术生成

    Hello,又是一个分享的日子,上期博主介绍了巨人肩膀上的迁移学习(2)---图像回归,并介绍了图像在进入神经网络前的预处理工作。今天博主给大家分享的是深度学习的压缩去噪利器---自编码器(AutoEncoder)

    这一期我们将分别利用CNN卷积神经网路和BP神经网络去搭建4种自编码器。博主也在往期的推文中也介绍了CNN卷积神经网络和BP神经网路的原理,还不熟悉CNN卷积神经网络原理的小伙伴可以翻一下:什么?卷积层会变胖?人工智能之光---CNN卷积神经网络(原理篇)深度学习开端---BP神经网络,这里博主就不进行过多的赘述了。

本文内容概要:

1.自编码器原理

2.多层自编码器

3.卷积自编码器

4.正则自编码器

4.1稀疏自编码器

4.2去噪自编码器

自编码器

 原理                                                                                     

640?wx_fmt=gif

      

自编码器是由nathan hubens提出的一种输入等于输出的神经网络模型,可能大家会疑惑为什么要训练一个这样的模型,毕竟输入等于输出在大家看来就是一件多此一举的事情。这里博主先给大家上一个模型图让大家感受一下。

640?wx_fmt=png

上图是由BP神经网络组成的最简单的自编码器,只有三层结构,中间的隐藏层才是我们所需要关注的地方,以隐藏层为界限,左边为编码器(encoder), 右边为解码器(decoder),所以在训练过程中,输入才能在经过编码后再解码,还原成原来的模样。

对传统机器学习有所了解的小伙伴应该都知道PCA(主成分分析),它是用来对数据进行降维的。不了解的小伙伴也没关系,我们现在学习的自编码器也有这个功能,所以学完之后再看PCA兴许会理解地更加深刻些。

现在我们看回上图,假如我们通过一组数据训练出了我们的自编码器,然后我们拆掉自编码器的解码器(decoder),就可以用剩下的编码器(encoder)来表征我们的数据了。隐藏层的神经元数目远低于输入层,那么就相当于我们用更少的特征(神经元)去表征我们的输入数据,从而达到降维压缩的功能。

接着,我们在文章开头提到过自编码器还有降噪的功能,那它是如何实现这个功能的呢?在此之前博主先给大家介绍下这期使用的数据集----minist手写体,这是keras自带的数据集,如下图。

640?wx_fmt=png

这个数据集就是手写数字0~9的图像集合,上图第一行就是加噪后的手写体数据集,第二行则是原本的手写体数据集。我们把加噪后的数据集当成输入,原本的数据集当做输出,训练一个自编码器,让它在训练过程中学习数据的规律,从而把噪声去掉。这就是博主所说的去噪功能。

到这里,博主就已经把自编码器的原理和功能给大家讲清楚了。接下来,我们更进一步介绍几种有用的自编码器。

  1. 普通自编码器:就是文章开头讲的最简单的自编码器。

  2. 多层自编码器:多个BP神经网络隐藏层组成自编码器。

  • 7
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值