深度学习与神经网络:AutoEncoder自编码

今天让我们来看一下深度学习与神经网络里边的自编码.

其实自编码严格来说不能算作是深度学习的内容,我们在之前的机器学习算法中也了解到自编码,并且我们会通过一个简单的例子来去说说自编码的理解.

首先,我们听到自编码,一定会想到,AutoEncoder会是个什么码呢?是条形码,二维码 NO.NO.NO,和他们都没有关系,其实自编码是一种神经网络形式.

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

现在假设我们刚才构建的模型是这个样子,我们可以从图片中看出来,我们刚才上传给自编码模型的图片实质上是经过压缩以后再进行解压的一个过程。当压缩的时候,原有的图片的质量被缩减(降维),解压的时候,用信息量小却包含了所有信息的文件来恢复出原来的图片(还原)。

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

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

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

而下一篇文章,我们来说一说稀疏自编码,当我们给隐藏神经元加入稀疏性限制,那么自编码神经网络即使在隐藏神经元数量较多的情况下仍然可以发现输入数据中一些有趣的结构。

祝大家五一快乐,玩的开心(*^▽^*)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT派

玩转TensorFlow深度学习

导语:据介绍,Google Developers Codelabs 提供了有引导的、教程式的和上手式的编程体验。大多数 Codelabs 项目都能帮助你了解开发...

39480
来自专栏IT派

经典!构建你的第一个神经网络识别数字

在Keras环境下构建多层感知器模型,对数字图像进行精确识别。模型不消耗大量计算资源,使用了cpu版本的keras,以Tensorflow 作为backende...

37550
来自专栏AI研习社

Must Know! 数据科学家们必须知道的 5 种聚类算法

聚类是一种关于数据点分组的机器学习技术。给出一组数据点,我们可以使用聚类算法将每个数据点分类到特定的组中。理论上,同一组中的数据点应具有相似的属性或特征,而不同...

42280
来自专栏机器学习原理

机器学习(19)——特征工程数据收集数据清洗数据不平衡特征转换增维降维特征选择

前言:特征工程是机器学习的重点,他直接影响着模型的好坏。 数据收集 在进行机器学习之前,收集数据的过程中,我们主要按照以下规则找出我们所需 要的数据: 业务的实...

57150
来自专栏人工智能LeadAI

TensorFlow从0到1 | 第七篇:TensorFlow线性回归的参数溢出之坑

上一篇 6 解锁梯度下降算法 解释清楚了学习率(learning rate)。本篇基于对梯度下降算法和学习率的理解,去填下之前在线性回归中发现的一个坑。 在5 ...

30250
来自专栏程序猿

数据挖掘算法之决策树算法

数据挖掘算法之 决策树算法 机器学习中,决策树是一个预测模型;它代表的是对象属性值与对象值之间的一种映射关系。树中每个节点表示某个对象,每个分叉路径则...

31450
来自专栏云时之间

深度学习与神经网络:AutoEncoder自编码

其实自编码严格来说不能算作是深度学习的内容,我们在之前的机器学习算法中也了解到自编码,并且我们会通过一个简单的例子来去说说自编码的理解.

61050
来自专栏机器学习算法与理论

深度学习—带动量的SGD相关参数

一、weight decay(权值衰减)的使用既不是为了提高你所说的收敛精确度也不是为了提高收敛速度,其最终目的是防止过拟合。在损失函数中,weight dec...

14950
来自专栏人工智能

基于TensorFlow生成抽象纹理

来源:otoro 编译:weakish 编者按:Google Brain机器学习开发者hardmu使用TensorFlow,基于CPPN网络生成了许多有趣的高分...

57380
来自专栏AI研习社

机器学习小窍门:Python 帮你进行特征选择

特征选择,也就是从数据集中找出并选择最有用特征的过程,是机器学习工作流中一个非常重要的步骤。不必要的特征降低了训练速度,降低了模型的可解释性,最重要的是降低了测...

16630

扫码关注云+社区

领取腾讯云代金券