深度学习模型-自动编码器(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. Spring Boot系列教程十二:Spring boot集成Redis

    一.创建项目 项目名称为 "springboot_redis",创建过程中勾选 "Web","Redis",第一次创建Maven需要下载依赖 ...

  2. C++中静态成员函数和普通成员函数存储方式相同

    先从一个示例查看类的创建过程中,静态成员函数和普通成员函数的存储区别. #include "stdafx.h" #include<iostream> #include& ...

  3. Python 【文件的读写】

    文件读写 A 读取文件 读文件三步:开——读——关.file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8')第一个参数是 ...

  4. WUSTOJ 1290: 01字串(Java)

    题目链接:

  5. JVM OOM异常会导致JVM退出吗?

    出处:  https://mp.weixin.qq.com/s/8j8YTcr2qhVActLGzOqe7Q  https://blog.csdn.net/h2604396739/article/de ...

  6. S03_CH09_DMA_4_Video_Switch视频切换系统

    S03_CH09_DMA_4_Video_Switch视频切换系统 9.1概述 本例程详细创建过程和本季课程第一课<S03_CH01_AXI_DMA_LOOP 环路测试>非常类似,因此如果 ...

  7. shell习题第20题:统计文件大小

    [题目要求] 加入需要每小时执行一个脚本.功能:当时间是0点和12点时,将/data/log/下的文件全部清空,注意只能清空文件内容而不能删除文件.而其他时间只需要统计一下每个文件的大小,一个文件一行 ...

  8. BM算法解析(计算机算法-设计与分析导论(第三版))

    转载请声明

  9. Docker相关环境全套安装文档兼小技能

    Docker相关环境全套安装文档兼小技能 以下环境皆为ubuntu16.04,主要安装docker,docker-compose,docker仓库等. Docker安装 参考官方 A: 有源安装 Ub ...

  10. hdu 5212 反向容斥或者莫比

    http://acm.hdu.edu.cn/showproblem.php?pid=5212 题意:忽略.. 题解:把题目转化为求每个gcd的贡献.(http://www.cnblogs.com/z1 ...