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

深度自编码器原理_编码器原理自编码器的目标:使用少量高阶特征重构输入定义:使用自身的高阶特征编码自己思想:自编码器其实也是一种神经网络,他的输入和输出一致的,借助稀疏编码的思想,目标是使用高阶特征重新组合来重构自己。特点:期望输入和输出一致;希望使用高阶特征来重构自己,而不只是复制像素点。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训练的时候,需要先对每两层间进行无监督训练,这个过程相当于另一个多层的自编码器,可以将整个网络的权重初始化到一个理想的分布,最后通过反向传播调整模型权重,这个步骤会使用经过标注的信息来做监督性的分类训练。

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • 常用渗透测试工具及应用范围_渗透测试入门

    常用渗透测试工具及应用范围_渗透测试入门全网最全合集建议收藏~

  • Latex 公式换行问题(换行,等号对齐)

    Latex 公式换行问题(换行,等号对齐)Latex公式换行问题(换行,等号对齐)作为一个研究生肯定避免不了写论文,在这个过程中latex使用就尤为重要,他会帮助你们实现期刊格式要求的排版。今天就简单说一下我在写论文过程中遇到的问题之一,公示太长需要换行的问题,并且是连等公示,每个等号在还行之后都需要对齐。方法是使用:\begin{equation}\begin{aligned}……\end{aligned}\end{

  • 怎么新建pytest的ini文件_qt读写配置文件

    怎么新建pytest的ini文件_qt读写配置文件前言pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行查看pytest.ini的配置选项pytest-h找到以下

  • 什么是ARM?_arm开发板

    什么是ARM?_arm开发板原文一、ARM是什么?ARM既可以认为是一个公司的名字,也可以认为是对一类处理器的统称,还可以认为是一种技术的名字。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,而是转让设计许可,由合作公司生产各具特色的芯片。ARM处理器的内核是统一的,由ARM公司提供,而片内部件则是多样的,由各大半导体公司设计,这使得ARM设计嵌入式系统的时候,可以基于同样的核心,使用不同的片内外设,从而具有很大的优势。二、ARM内核与架构

    2022年10月14日
  • ubuntu性能优化_ubuntu系统安装教程

    ubuntu性能优化_ubuntu系统安装教程有两个工具可以帮助减少电脑过热问题,提升系统性能。特别是比较慢的笔记本。TLP开始后自动在后台运行。sudoadd-apt-repositoryppa:linrunner/tlpsudoapt-getupdatesudoapt-getinstalltlptlp-rdwsudotlpstartindicator-cpufreqsudoapt-getinstallindi

  • python文件句柄_Python 文件操作学习 就是这么简单!-文件句柄

    python文件句柄_Python 文件操作学习 就是这么简单!-文件句柄一、前言Python对文件的操作是相当简单的。二、文件操作函数的介绍Python通过open函数来打开文件,语法如下open(file,mode=‘r’,buffering=None,encoding=None,errors=None,newline=None,closefd=True)可以看到,除了第一个file参数是必须的,其它都是可选的。1、file:操作的文件2、mode:操…

    2022年10月18日

发表回复

您的电子邮箱地址不会被公开。

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