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. github新建本地仓库并将代码提交到远程仓库

    方式一: 在github上新建好仓库:gitTest 使用命令git clone git@github.com:yourgithubID/gitTest.git,克隆到本地相应的位置 将要上传的工程代 ...

  2. <Tree> 110 124

    110. Balanced Binary Tree 方法是如果我们发现子树不平衡,则不计算具体的深度,而是直接返回-1.那么优化后的方法为:对于每一个节点,我们通过checkDepth方法递归获得左右 ...

  3. [LeetCode] 670. Maximum Swap 最大置换

    Given a non-negative integer, you could swap two digits at most once to get the maximum valued numbe ...

  4. skip connections

    deep learning初学者,最近在看一些GAN方面的论文,在生成器中通常会用到skip conections,于是就上网查了一些skip connection的博客,虽然东西都是人家的,但是出于 ...

  5. js 立即调用函数 IIFE(Immediately Invoked Function Expression) 【转】

    原文链接:https://www.cnblogs.com/ming-os9/p/8891300.html JS中 (function(){...})()立即执行函数   1 (function(){. ...

  6. vue.js三种安装方式

    Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.它不仅易于上手 ...

  7. 第28课 “共享状态”提供者(std::promise/std::package_task)

    一. std::promise和std::package_task (一)共享状态.提供者和管理者 // CLASS TEMPLATE _Promise template <class _Ty& ...

  8. 第26课 std::async异步任务

    一. std::async函数模板 (一)std::async和std::thread的区别 1. 两者最明显的区别在于async采用默认启动策略时并不一定创建新的线程.如果系统资源紧张,那么std: ...

  9. 【08月01日】A股滚动市净率PB历史新低排名

    2010年01月01日 到 2019年08月01日 之间,滚动市净率历史新低排名. 上市三年以上的公司,2019年08月01日市净率在30以下的公司. 来源:A股滚动市净率(PB)历史新低排名. 1 ...

  10. vs2019 更新之后无法用ctrl+d再设置回来..

    工具-选项-环境-键盘