博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是自编码?
阅读量:5998 次
发布时间:2019-06-20

本文共 1124 字,大约阅读时间需要 3 分钟。

各位小伙伴们,大家好,今天让我们来如何用神经网络来处理非监督的学习,也就是AutoEncoder,自编码。

首先,我们听到自编码,一定会想到,AutoEncoder会是个什么码呢?是条形码,二维码,还是我们宅男们最不能忍受的打码中的一种呢?NO.NO.NO,和他们都没有关系,其实自编码是一种神经网络形式,如果你一定要和上面的那些码扯上关系,我想可以这样理解了。

现在我们先构架一个神经网络模型,这个模型是收集一张图片,接受这个图片后,神经网络给这个图片打码,最后再从打码的图片中还原,是不是感觉有点抽象,其实我也觉得这样的解释不太恰当,那就让我们更加的具体一点来深入了解下这个自编码。

现在假设我们刚才构建的模型是这个样子,我们可以从图片中看出来,我们刚才上传给自编码模型的图片实质上是经过压缩以后再进行解压的一个过程。当压缩的时候,原有的图片的质量被缩减,解压的时候,用信息量小却包含了所有信息的文件来恢复出原来的图片。那么,为什么要这么做呢?当神经网络要输入大量的信息,比如高清图片的时候,输入的图像数量可以达到上千万,要神经网络直接从输入的数据量中进行学习,是一件非常费力不讨好的工作,因此我们就想,为什么不压缩一下呢?提取出原图片中最具有代表性的信息,缩减输入中的信息量,然后在把缩减过后的信息放入到神经网络中学习,这样学习起来就变得轻松了,所以自编码就是能在这个时候发挥作用,从上图中的蓝色框中的X解压缩到黄色框中的x,然后用黄色的X和蓝色的X进行对比,得到预测误差,再进行反向传递,然后逐步的提高自编码的准确率,训练一段时间后在中间获得的哪一个部分黄色的L2就是源数据的精髓,可以从上面那个模型看出,从头到尾,我们只用到了这个输入的信息L1,并没有用到数据X所对应的数据标签,所以我们这时候可以得出结论,自编码是一种非监督学习,通常我们在使用自编码的时候通常只会使用自编码的前半部分,这个部分也叫作EnCode,编码器,编码器可以得到源数据的精髓,

然后我们只需要在创建一个小的神经网络模型再去学习这个精髓中的数据,不仅可以减少神经网络的负担,并且同样可以达到一个很好的效果。

上面这张图是一个通过自编码整理出来的数据,他能从各种数据中筛选总结出各种数据的特征,如果把这个图片的类型特征都整理好放到一个图片上,那么数据类型都可以很好的用源数据的类型区分出来,如果你了解PCA主成分分析,自编码的功能和他类似,甚至在某些部分超出了PCA,换句话说,自编码可以和PCA一样可以给特殊属性降维。

如果大家想了解更多的有关机器学习的知识和概念,请大家多多关乎我的简书账户,和我一起交流,更希望大家可以多多的指出我的不足,让我更加的进步,谢谢。

转载地址:http://ulzmx.baihongyu.com/

你可能感兴趣的文章
USACO习题:Friday the Thirteenth
查看>>
C++ VS2012 内存泄露检测
查看>>
zabbix 批量添加聚合图形
查看>>
北京交通大学第六届新生程序设计竞赛题解
查看>>
求解点关于直线的距离、垂足、对称点公式
查看>>
洛谷 P1577 切绳子【二分答案】
查看>>
用 Google Map 的 Geocoder 接口来反向地址解析
查看>>
在中小型公司如何做好测试——论测试计划的重要性
查看>>
考虑使用静态工厂方法替代构造方法
查看>>
BSS段、数据段、代码段、堆与栈
查看>>
python调用c/c++写的dll
查看>>
ClassTag 、Manifest、ClassManifest、TypeTag代码实战及其在Spark中的应用源码解析之Scala学习笔记-37...
查看>>
python-尝试将Excel文件保存为图片并加上水印
查看>>
java web获取路径
查看>>
IDA动态调试SO文件
查看>>
[LeetCode] Edit Distance 解题报告
查看>>
Objective-C快速上手
查看>>
7、log4j.properties
查看>>
网络通信之检测远端连接是否断开连接
查看>>
Disjoint Sets
查看>>