深度学习模型-自动编码器(AE),就是一个神经网络的映射函数,f(x)——>y,把输入的一个原始信号,如图像、声音转换为特征。

大纲:

自动编码器的基本思想

网络结构

损失函数与训练算法

实际使用

去燥自动编码器

稀疏编码

收缩自动编码器

多层编码器

本集总结

自动编码器的基本思想:

人工神经网络实现的是一个向量X映射为另一个向量Y(Rn——>Rm,m<<n),通过多层复合函数来实现,Y一般设置为样本标签向量label。AE把Y设置为从原始数据X提取出的特征向量,如X是一个高维的图像或声音。而Y是自动训练出来的,不需要人工指定,因此需考虑怎么设置训练目标函数。

直接用一个单层或者多层神经网络对输入数据进行映射,得到输出向量,作为从输入数据提取出的特征。核心问题:怎么设置训练目标?解决思想:编码器+解码器框架。

网络结构:

编码器-将输入数据映射为特征向量,解码器-将特征向量映射回输入向量重构。

类似于PCA,不过PCA直接计算目标函数L,不用训练。

损失函数与训练算法:

损失函数定义为重构误差,类似PCA的做法。损失函数(L个样本):,h是编码器的映射函数,g是解码器的映射函数。xi编码之后再解码和原始数据xi尽可能的接近。训练好之后只需要编码器,即h(Xi)——>Yi

训练算法和普通的神经网络相同,用BP算法训练+随机梯度下降法SGD、GD。

实际使用:

实际使用时,只需要编码器网络,解码器只用于训练阶段。输入一个数据向量,即可得到特征向量。也可以用多个隐含层。

去噪自动编码器:

Denoising Autoencoder,简称DAE。为了增强模型的鲁棒性,对训练样本X做一个随机扰动如(加噪声,X中随机挑几维数据设置为0,其他维数据不变),得到X'向量,再用X'去训练,训练出的模型更具有鲁棒性、泛化性能更好,因为模型能够抵抗这些噪声。

这样,输入数据变为X',重构值为X,即输入输出为(X',X),而标准自动编码器输入输出为(X,X)。DAE把从有污染的数据中把原始数据重构出来,则编码器那一块从有污染的数据中把没有污染的数据代表的向量的有效特征向量Y提出来。

在训练样本中加入随机噪声,重构的目标是不带噪声的样本数据。用自动编码器学习得到的模型重构出来的数据可以去除这些噪声,获得没有被噪声污染过的数据。

对于每个样本向量X随机选择其中的一部分分量,将它们值置为0,其他分量保持不变,得到的带噪声向量为

稀疏自动编码器:

加入稀疏性惩罚项,让编码器的输入结果(即编码器输出的向量)稀疏(很多数据为0)。

编码器网络隐含层的第i个神经元的平均激活度为对所有训练样本的激活函数值的均值,记为pi^。

使用相对熵构造惩罚项:,其中n为隐含层神经元个数,p为人工指定的活跃度(一个接近于0的数)。

加上惩罚项后的目标函数变为:,其中前一项为AE的误差函数,后一项为编码器的稀疏性惩罚项。

收缩自动编码器:

Contractive Auto-Encoders,简称CAE,也是对自动编码器的一种改进,同样也是加上一个惩罚项。

训练时在损失函数中加上正则化项,使得编码器函数的导数尽可能小,

正则化项是编码器函数导数二范数平方,,这里hj是隐含层第j个神经元编码器函数,xi是输入向量的第i个分量,偏导数小则对输入值不敏感,输入X加上一个小的扰动项之后,产生的输出值变化也非常小,也更鲁邦一些。

多层自动编码器:

层叠自动编码器由多个自动编码器串联组成(因为很多实际应用中,一层特征抽象提取是不行的,如图像、声音),能够逐层提取输入数据的特征,在此过程中逐层降低输入数据的维度,将高维的输入数据转化为低维的特征。

编码器可以看成一个降维,因为映射之后向量的维数比映射之前要低,和PCA类似,但是和PCA有一个本质的区别是PCA是线性的,自动编码器是非线性的一个编码,因此它的表达能力会更强一些。AE是在人工神经网络用于深度学习早期的时候,2006Hition发于science上的那篇文章,用玻尔兹曼机训练一个多层的AE,实际应用中现在很少使用了,只需记住这种编码器解码器框架能把一个特征性向量X的特征向量Y给提出来的思想即可。图像卷积的时候会用到这个原理(前面一半做编码,后边一半做解码),还有RNN做机器翻译的时候的seqtoseq,也是这个原理。

训练也是逐层进行的。给定输入向量,采用无监督方式方式训练第一层自动编码器。把第一个自动编码器的输出作为第二个自动编码器的输入,采用同样的方法训练第二个自动编码器。

重复第二步直到所有自动编码器训练完成。把最后一个自动编码器的输出作为最终的输出。

在每一层,都会得到输入数据的不同抽象特征,随着层数的增加,这个特征越来越抽象。

本集总结:

1.AE基本想法:神经网络的映射函数来提取特征向量X的特征向量Y,f(X)——>Y

2.训练的目标函数loss、网络结构Encoder和Decoder结构

3.AE的实际使用

4.AE的几种改进型,DAE、稀疏自动编码器、CAE

5.AE的多层结构

SIGAI深度学习第五集 自动编码器的更多相关文章

  1. SIGAI深度学习第六集 受限玻尔兹曼机

    讲授玻尔兹曼分布.玻尔兹曼机的网络结构.实际应用.训练算法.深度玻尔兹曼机等.受限玻尔兹曼机(RBM)是一种概率型的神经网络.和其他神经网络的区别:神经网络的输出是确定的,而RBM的神经元的输出值是不 ...

  2. SIGAI深度学习第四集 深度学习简介

    讲授机器学习面临的挑战.人工特征的局限性.为什么选择神经网络.深度学习的诞生和发展.典型的网络结构.深度学习在机器视觉.语音识别.自然语言处理.推荐系统中的应用 大纲: 机器学习面临的挑战 特征工程的 ...

  3. SIGAI深度学习第八集 卷积神经网络2

    讲授Lenet.Alexnet.VGGNet.GoogLeNet等经典的卷积神经网络.Inception模块.小尺度卷积核.1x1卷积核.使用反卷积实现卷积层可视化等. 大纲: LeNet网络 Ale ...

  4. SIGAI深度学习第七集 卷积神经网络1

    讲授卷积神经网络核心思想.卷积层.池化层.全连接层.网络的训练.反向传播算法.随机梯度下降法.AdaGrad算法.RMSProp算法.AdaDelta算法.Adam算法.迁移学习和fine tune等 ...

  5. SIGAI深度学习第三集 人工神经网络2

    讲授神经网络的理论解释.实现细节包括输入与输出值的设定.网络规模.激活函数.损失函数.初始化.正则化.学习率的设定.实际应用等 大纲: 实验环节: 理论层面的解释:两个方面,1.数学角度,映射函数h( ...

  6. SIGAI深度学习第一集 机器学习与数学基础知识

    SIGAI深度学习课程: 本课程全面.系统.深入的讲解深度学习技术.包括深度学习算法的起源与发展历史,自动编码器,受限玻尔兹曼机,卷积神经网络,循环神经网络,生成对抗网络,深度强化学习,以及各种算法的 ...

  7. SIGAI深度学习第二集 人工神经网络1

    讲授神经网络的思想起源.神经元原理.神经网络的结构和本质.正向传播算法.链式求导及反向传播算法.神经网络怎么用于实际问题等 课程大纲: 神经网络的思想起源 神经元的原理 神经网络结构 正向传播算法 怎 ...

  8. 深度学习(五)基于tensorflow实现简单卷积神经网络Lenet5

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8954892.html 参考博客:https://blog.csdn.net/u01287127 ...

  9. 深度学习——无监督,自动编码器——尽管自动编码器与 PCA 很相似,but自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换

    自动编码器是一种有三层的神经网络:输入层.隐藏层(编码层)和解码层.该网络的目的是重构其输入,使其隐藏层学习到该输入的良好表征. 自动编码器神经网络是一种无监督机器学习算法,其应用了反向传播,可将目标 ...

随机推荐

  1. C++实现16进制字符串转换成int整形值

    开发中经常需要把16进制字符串转换成整形,写了个个代码供大家参考下: #include <stdio.h> #include <string.h> //字符转换成整形 int ...

  2. LC 417. Linked List Cycle II

    题目描述 Given a linked list, return the node where the cycle begins. If there is no cycle, return null. ...

  3. LC 144. / 94. / 145. Binary Tree Preorder/ Inorder/ PostOrder Traversal

    题目描述 144. Binary Tree Preorder Traversal 94. Binary Tree Inorder Traversal 145. Binary Tree Postorde ...

  4. python之RabbitMQ队列

    一.介绍 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(MQ)是一 ...

  5. oddo

    看了这张图,或许你对odoo有了一些兴趣. https://www.cnblogs.com/wterp/p/9093616.html 这次就是和大家一起交流开源ERP/CRM系统:odoo 对以下读者 ...

  6. python笔记006-文件操作

    1文件操作... 1 1.1打开和关闭文件... 1 1.1.2 open函数... 1 1.2 文件 File对象的属性... 1 1.2.1 属性... 1 1.2.2 方法... 2 1.2.3 ...

  7. golang使用注意事项

    1.可以给类型取别名,但是该类型和别名是两个不同的类型: type myInt int 2.go支持可变参数:args... 0个或多个参数:func sum(args... int) sum int ...

  8. Largest Submatrix 3 CodeForces - 407D (dp,好题)

    大意: 给定矩阵, 求选出一个最大矩形, 满足矩形内每个元素互不相同. 考虑枚举上下左三个边界, 求出最大右边界的位置. 注意到固定上边界, 下边界递推时, 每个左边界对应最大右边界是单调不增的. 所 ...

  9. java01_简介_开发环境

    JAVA的前世今生 美国SUN(Stanford University Network)公司,在中国大陆的正式中文名为"太阳计算机系统(中国)有限公司",在中国台湾的正式中文名为& ...

  10. K2 BPM_万翼科技携手上海斯歌,全面启动K2平台升级项目_十年专注业务流程管理系统

    2019年7月25日,万翼科技和上海斯歌在深圳召开了“2019年K2平台升级项目启动会”.万翼科技核心合伙人何建春.管金华,协同管理支撑组负责人贾磊,K2平台产品负责人黄平显,上海斯歌总裁李明,技术研 ...