https://blog.csdn.net/satlihui/article/details/81006906
https://blog.csdn.net/github_39611196/article/details/85246236
https://blog.csdn.net/q1242027878/article/details/84679093
https://blog.csdn.net/zbzcDZF/article/details/86570761

自编码器autocoder

(以下内容来自《深度学习》,侵删)

自编码器是神经网络的一种,可以看作由两部分组成:一个由函数h=f(x)表示的编码器和一个生成重构的解码器x=g(h).

传统自编码器被用于降维或者特征学习。

1.1 欠完备自编码器

从自编码器获得有用特征的一种方法是限制h的维度比x小。这种编码维度小于输入维度的自编码器称为欠完备(undercomplete)自编码器。学习欠完备的表示将强制自编码器捕捉训练数据中最显著的特征。

学习过程可以简单地描述为最小化一个损失函数:L(x,g(f(x)),其中L是一个损失函数,惩罚g(f(x))与x的差异,如均方误差。

1.2 正则自编码器

正则自编码器使用的损失函数可以鼓励模型学习其他的特性(除了将输入复制到输出),而不必限制使用浅层编码器和解码器以及小的编码维数来限制模型的容量。这些特性包括稀疏表示、表示的小导数以及对噪声或输入缺失的鲁棒性。

1.3 稀疏自编码器

稀疏自编码器简单地在训练时结合编码层的稀疏惩罚 \Omega(h)和重构误差:

L(x,g(f(x)))+\Omega(h)
其中g(h)是解码器的输出。通常h是编码器的输出即h=f(x)

稀疏自编码器一般用来学习特征,以便用于像分类这样的任务。

1.4 去噪自编码器

去噪自编码器(denoising autoencoder,DAE)最小化
L(x,g(f(\widetilde{x})))
其中\widetilde{x}是被某种噪声损坏的x的副本。

1.5 收缩自编码器(contractive autoencoder,CAE)

惩罚导数作为正则,迫使自编码器学习可以反映训练数据分布信息的特征,这样的自编码器称为收缩自编码器。

1.6 深度

深度可以指数地降低表示某些函数的计算成本。
深度自编码器能比相应的浅层或者线性自编码器产生更好的压缩效率。

1.7 去噪自编码器详解

去噪自编码器是一类接受损坏数据作为输入,并训练来预测原始未被损坏数据作为输出的自编码器。
DAE的训练过程如下:


得分匹配是最大似然的代替。

DAE的训练准则能让自编码器学到能估计数据分布得分的向量场,这是DAE的一个重要特性。

自动编码机由三层网络组成,其中输入层神经元数量与输出层神经元数量相等,中间层神经元数量少于输入层和输出层。搭建一个自动编码器需要完成下面三样工作:搭建编码器,搭建解码器,设定一个损失函数,用以衡量由于压缩而损失掉的信息(自编码器是有损的)。编码器和解码器一般都是参数化的方程,并关于损失函数可导,典型情况是使用神经网络。编码器和解码器的参数可以通过最小化损失函数而优化。

降噪自动编码器(Denoising Auto Encoder DAE)

降噪自动编码器就是在自动编码器的基础之上,为了防止过拟合问题而对输入层的输入数据加入噪音,使学习得到的编码器具有鲁棒性而改进的,是Bengio在08年论文:Extracting and composing robust features with denoising autoencoders提出的。

论文中关于降噪自动编码器的示意图如下,类似于dropout,其中x是原始的输入数据,降噪自动编码器以一定概率(通常使用二项分布)把输入层节点的值置为0,从而得到含有噪音的模型输入xˆ。

SDAE

多个DAE堆叠能够形成具有一定深度的SDAE。这时的SDAE并不能进行模式识别,因为它只是一个特征提取器,并不具有分类功能。为了使SDAE具有分类功能,需在其顶层添加分类器,如SVM、softmax等,并使用带标签的数据对SDAE进行有监督训练,最后使用利用BP算法对整个网络参数进行微调,便得到具有分类功能的SDAE,如图4-5所示。具体步骤如下:

Step1 初始化SDAE网络参数;

Step2 训练第一层DAE,将其隐含层作为第2个DAE的输入,并进行同样的训练,直到第n层DAE训练完成;

Step3 将训练好的n层DAE进行堆叠形成SDAE,向SDAE网络顶层添加输出层;

Step4 利用样本数据和标签对整个网络进行有监督的微调。

SDAE的思想就是将多个DAE堆叠在一起形成一个深度的架构。只有在训练的时候才会对输入进行腐蚀(加噪),训练完成就不需要在进行腐蚀。结构如下图所示:

逐层贪婪训练:每层自编码层都单独进行非监督训练,以最小化输入(输入为前一层的隐层输出)与重构结果之间的误差为训练目标。前K层训练好了,就可以训练K+1层,因为已经前向传播求出K层的输出,再用K层的输出当作K+1的输入训练K+1层。

一旦SDAE训练完成, 其高层的特征就可以用做传统的监督算法的输入。当然,也可以在最顶层添加一层logistic regression layer(softmax层),然后使用带label的数据来进一步对网络进行微调(fine-tuning),即用样本进行有监督训练。

(补图;

code:
https://blog.csdn.net/q1242027878/article/details/84668175
https://blog.csdn.net/q1242027878/article/details/84679093
https://blog.csdn.net/github_39611196/article/details/85246236

堆叠降噪自编码器SDAE的更多相关文章

  1. 『TensorFlow』降噪自编码器设计

    背景简介 TensorFlow实现讲解 设计新思路: 1.使用类来记录整个网络: 使用_init_()属性来记录 网络超参数 & 网络框架 & 训练过程 使用一个隐式方法初始化网络参数 ...

  2. 『TensorFlow』读书笔记_降噪自编码器

    『TensorFlow』降噪自编码器设计  之前学习过的代码,又敲了一遍,新的收获也还是有的,因为这次注释写的比较详尽,所以再次记录一下,具体的相关知识查阅之前写的文章即可(见上面链接). # Aut ...

  3. 自动编码(AE)器的简单实现

    一.目录 自动编码(AE)器的简单实现 一.目录 二.自动编码器的发展简述 2.1 自动编码器(Auto-Encoders,AE) 2.2 降噪自编码(Denoising Auto-Encoders, ...

  4. 论文解读(IDEC)《Improved Deep Embedded Clustering with Local Structure Preservation》

    Paper Information Title:<Improved Deep Embedded Clustering with Local Structure Preservation>A ...

  5. Video Target Tracking Based on Online Learning—深度学习在目标跟踪中的应用

    摘要 近年来,深度学习方法在物体跟踪领域有不少成功应用,并逐渐在性能上超越传统方法.本文先对现有基于深度学习的目标跟踪算法进行了分类梳理,后续会分篇对各个算法进行详细描述. 看上方给出的3张图片,它们 ...

  6. AI:IPPR的数学表示-CNN可视化语义分析

    前言: ANN是个语义黑箱的意思是没有通用明确的函数表示,参数化的模型并不能给出函数的形式,更进而不能表示函数的实际意义. 而CNN在图像处理方面具有天然的理论优势,而Conv层和Polling层,整 ...

  7. 论文笔记: Deep Learning based Recommender System: A Survey and New Perspectives

    (聊两句,突然记起来以前一个学长说的看论文要能够把论文的亮点挖掘出来,合理的进行概括23333) 传统的推荐系统方法获取的user-item关系并不能获取其中非线性以及非平凡的信息,获取非线性以及非平 ...

  8. 4. Stacked AutoEncoder(堆栈自动编码器)

    1. AutoEncoder介绍 2. Applications of AutoEncoder in NLP 3. Recursive Autoencoder(递归自动编码器) 4. Stacked ...

  9. cnn,rnn,dnn

    CNN(卷积神经网络).RNN(循环神经网络).DNN(深度神经网络)的内部网络结构有什么区别? https://www.zhihu.com/question/34681168 CNN(卷积神经网络) ...

随机推荐

  1. USACO Telephone Lines

    洛谷 P1948 [USACO08JAN]电话线Telephone Lines https://www.luogu.org/problem/P1948 JDOJ 2556: USACO 2008 Ja ...

  2. 基于OpenVINO的多输入model optimizer(Tensorflow)

    Step I:下载预训练模型 wget -O - https://github.com/mozilla/DeepSpeech/releases/download/v0.3.0/deepspeech-0 ...

  3. ASP.NET开发实战——(二)为什么使用ASP.NET

    本文主要内容是通过分析<博客系统>需求,确定使用Web应用的形式来开发,然后介绍了HTML.HTTP的概念,并使用IIS搭建了一个静态的HTML“页面”,从而引出“动态”的ASP.NET. ...

  4. 3.Python配套习题

    这里会持续更新Python每个部分知识点的配套练习题的目录...

  5. Npcap:Nmap项目里一个为Windows而生的嗅探库 Npcap: Nmap Project's packet sniffing library for Windows

    如果有人知道Npcap与libpcap对应的头文件列表,请告诉我,非常感谢 Introduction介绍 This Manual describes the programming interface ...

  6. SVN+vs2017

    安装VirtualSvn Server https://www.visualsvn.com/ 安装visualsvn到VS2017 https://www.visualsvn.com/visualsv ...

  7. Java连载17-赋值类运算符&字符串的连接运算符

    一.赋值运算符 1.赋值类运算符包括两种: (1)基本赋值运算符:= (2)扩展的赋值运算符: +=     -=    *=    /=    &= 赋值类的运算符优先级:先执行等号右边的表 ...

  8. 大话设计模式Python实现-装饰模式

    装饰模式(Decorator Pattern):动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. 下面是一个给人穿衣服的过程,使用装饰模式: #!/usr/bin/en ...

  9. SWIG 3 中文手册——5. SWIG 基础知识

    目录 5 SWIG 基础知识 5.1 运行 SWIG 5.1.1 输入格式 5.1.2 SWIG 输出 5.1.3 注释 5.1.4 C 预处理器 5.1.5 SWIG 指令 5.1.6 解析限制 5 ...

  10. 【MySQL】binlog2sql

    binlog2sql 1.安装 shell> git clone https://github.com/danfengcao/binlog2sql.git && cd binlo ...