深度自编码器原理_编码器原理

深度自编码器原理_编码器原理自编码器的目标:使用少量高阶特征重构输入定义:使用自身的高阶特征编码自己思想:自编码器其实也是一种神经网络,他的输入和输出一致的,借助稀疏编码的思想,目标是使用高阶特征重新组合来重构自己。特点:期望输入和输出一致;希望使用高阶特征来重构自己,而不只是复制像素点。Hinton提出基于信念网络(deepbeliefNetwords,DBN,由多层RBM堆叠而成)可以使用无监督学习逐层训练的贪心算法…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

自编码器的目标:使用少量高阶特征重构输入

定义:使用自身的高阶特征编码自己

思想:自编码器其实也是一种神经网络,他的输入和输出一致的,借助稀疏编码的思想,目标是使用高阶特征重新组合来重构自己。

特点:期望输入和输出一致;希望使用高阶特征来重构自己,而不只是复制像素点。

Hinton提出基于信念网络(deep belief Networds,DBN,由多层RBM堆叠而成)可以使用无监督学习逐层训练的贪心算法,为训练很深的网络提供了一个可行方案:我们可能很难直接训练极深的网络,但是可以用无监督的逐层训练提取特征,将网络的权重初始化到一个比较好的位置,辅助后面的监督训练,其中无监督的逐层训练,其思想就和自编码器相似,就是提取中间层特征或者最后输出的高阶特征,来作为研究初始化权重用;后面的目标就是让神经网络的输出能和原始输出一致,相当于学习一个恒等式y=x

一:AutoEncoder自编码器:自动编码器是一种尽可能复现输入信号的神经网络。为了实现复现输入数据,自动编码器必须捕捉可以代表输入数据的最重要的因素,当中间隐层节点的数量少于输入节点数量时,那只能学习数据中最重要的特征复原,将不太相关的特征去除,此时类似PCA一样,找到代表原信息的主要成分,同时也可以再给中间隐层加一个L1的正则,可以惩罚隐层节点的稀疏程度,惩罚稀疏越大,学到的特征组合就越稀疏,时间使用的特征数量就越少。

二:AutoEncoder是一种无监督学习学习特征

 对比一下监督学习和AutoEncoder的区别:

深度自编码器原理_编码器原理                           深度自编码器原理_编码器原理

左侧的为监督学习,给定了target作为标签,而右侧的为非监督的未给定标签

深度自编码器原理_编码器原理

AutoEncoder编码器,code也就是输入的一个表示,我们找的也是让重构误差最小的折合coder来作为input信号的良好表达,input先经过encoder再经过decoder过程解码,我们最后得到一个重构的输出信号,我们希望这个重构的输出和input有最小的重构误差。这里重点来说明一下监督学习和自编码器在优化时的区别吧:监督学习优化的是prediction-real_data的均方差来op的,而在利用自动编码器的时候我们没有target这个真实值,所以优化的是重构之后的输出和input之间的误差。

三:每一层都会得到原始input的不同表达,这里我们希望它是越抽象越好,像人的视觉系统一样最好。

       因为这里AutoEncoder还不能用来分类数据,AutoEncoder还没有学习如何去连接一个输入和一个类,这里的AutoEncoder只是学习了如何去重构或者复现他的输入而已。只是学习获得了一个可以良好代表输入的特征,这个特征最大程度的代表输入信号。只需要在AutoEncoder的最顶层添加一个LR、SVM、Softmax分类器等就可以,最后再通关标准的多层神经网路的监督训练方法去训练(SGD)

四:在原有的特征上添加一些自动学习得到的特征可以大大提高Accuracy,接下来介绍两种AutoEncoder的两种变体:

      ①:Sparse AutoEncoder稀疏编码器:前提是当隐层节点数少于输入的时候,将相当于一个降维的过程,类似pca;在AutoEncoder的中间隐层加上L1的Regulations限制,就得到了Sparse AutoEncoder,L1主要用来约束每一层节点中大部分为0,少数为1.

code尽量稀疏,稀疏的表达比其他的表达效果更好。

②:Denoising AutoEncoder降噪自动编码

最具代表性的就是去噪自编码器,应用范围广,其中去噪自编码器只需要去掉噪声,并保证隐层节点小于输入层节点;Masking Noise的自编码器只需要将高斯噪声改为随机遮挡噪声;VAE(Variational AutoEncoder)相对比较复杂,VAE中间节点的分布有强假设,拥有额外的损失项,且会使用特殊的SGVB算法进行训练,目前VAE在生成模型 中发挥了很大作用。

      DA实在AutoEncorder的基础上,在训练数据中加入了噪声,加入噪声之后,自动编码器必须学习如何去得到没有噪声的原始输入,自动编码器就去学习输入信号的鲁棒性的表达,所以在训练数据中加入噪声经过AutoEncoder之后得到的输出有更好的泛化能力。

⑤:Output=a1*Q1+……….an*Qn,其中Qi是基向量,ai是系数,我们要求Min|Output-Input}+regulations的最小值,SC就是将一个信号表示为一组基的线性组合,而且要求只需较少的几个基就可以将信号表示出来。稀疏自动编码就是一种无监督学习,它是来寻求一组“超完备”基向量来更高效的表示样本数据。类似PCA,让我们找到一组完备的基向量Qi,超完备基的好处是它能更好的找出隐含在输入数据内部的结构与模式。对于超完备基来说,稀疏ai不再有输入唯一确定。所以,在稀疏自编码算法中,我们加入了冷一个评判标准“稀疏性”来解决因超完备导致的退化问题。

⑥Sparse coding 主要由两部分组成:

      1:Training阶段:给定一系列的样本图片[x1,x2….],要学习得到一组完备基[Q1,Q2,….],这组完备基也就是字典。

        2:Coding阶段:给定一个新图片x,由完备基通过一个Lasso问题得到稀疏向量a。

自编码器的隐层只有一层那么原理类似PCA,DBN训练的时候,需要先对每两层间进行无监督训练,这个过程相当于另一个多层的自编码器,可以将整个网络的权重初始化到一个理想的分布,最后通过反向传播调整模型权重,这个步骤会使用经过标注的信息来做监督性的分类训练。

总结:自编码器的作用不仅局限在给监督学习做预训练,直接使用自编码器进行特征特区和分析也是可以的,现实生活中最多的还是未标注的数据,因此自编码器拥有用武之地。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187137.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • k8s pod Evicted状态问题解决

    k8s pod Evicted状态问题解决kubectlgetpo-nkube-system-owide#查看pod运行状态信息可以看到有两个状态为驱赶,一般是磁盘空间不足了,清理slave磁盘空间后,状态正常

    2022年5月16日
    56
  • 二叉树的性质及其创建

    二叉树的性质及其创建二叉树的性质性质1在二叉树的第i层上至多有2^(i-1)个结点(i>=1)性质2深度为k的二叉树至多有2^k-1个结点(k>=1)性质3对任意一棵二叉树,若终端结点数为n0,其度数为2的结点数为n2,那么n0=n2+1满二叉树深度为k且结点个数为2^k-1,即每一层都具有最大结点数完全二叉树深度为k,结点数为n的二叉树,如果其结点1n的位置序号分别与满二叉树的结点1…

    2022年5月15日
    38
  • goland激活码2021最新破解方法

    goland激活码2021最新破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    256
  • c++将十进制数转化为二进制数_十六进制小数转二进制

    c++将十进制数转化为二进制数_十六进制小数转二进制#include"stdafx.h"#include<iostream>#include<math.h>usingnamespacestd;voidchange(doublex);voidchange(doublex){ doublen=0;…

    2022年9月24日
    4
  • 黑盒测试用例设计之nextdate问题[通俗易懂]

    黑盒测试用例设计之nextdate问题[通俗易懂]首先已知有三个变量:月份,日期和年变量月份,日期和年都为整数,且都满足条件:1<=月份<=121<=日期<=311912<=年<=2012等价类划分法1.首先输入数据,划分等价类2.建立等价类表3.设计测试用例原型4.考虑隐含需求分为平年和闰年进行讨论,主要针对二月份。边界值分析法首先明晰三个定义:内点:范围内部的点上点:边界…

    2022年6月8日
    32
  • Loadrunner从入门到精通教程(一)

    Loadrunner从入门到精通教程(一)第一章:性能测试基础1-1.大话性能测试性能测试是什么使用自动化测试工具对产品按一定的性能指标进行测试。解决心性能平衡.给用户最好的体验。性能测试的时代背景,作用。大数据时代网站(BA).软件(T),游戏–金融银行,证券系统,教育(教务系统),交通(12306)–1-2性能测试那些事一.性能测试基本流程二、Web性能测试常用指标…

    2022年5月24日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号