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

深度自编码器原理_编码器原理自编码器的目标:使用少量高阶特征重构输入定义:使用自身的高阶特征编码自己思想:自编码器其实也是一种神经网络,他的输入和输出一致的,借助稀疏编码的思想,目标是使用高阶特征重新组合来重构自己。特点:期望输入和输出一致;希望使用高阶特征来重构自己,而不只是复制像素点。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)
blank

相关推荐

  • qtabwidget设置表头_QTabWidget添加自定义样式[通俗易懂]

    qtabwidget设置表头_QTabWidget添加自定义样式[通俗易懂]setStyleSheet(“QTabWidget::pane{border-width:1px;border-color:rgb(48,104,151);\border-style:outset;background-color:rgb(132,171,208);\background:transparent;}\QTabWidget::tab-bar{border-width:…

  • 微信开放平台开发第三方授权登陆(一):开发前期准备

    微信开放平台开发第三方授权登陆(一):开发前期准备据微信开放平台“开发资源”中网站应用微信登陆功能开发指南描述:进行授权登陆接入前,需要先注册一个开发者账号,并拥有一个已经审核通过的网站应用,并获取AppID和APPSecret,然后申请微信登陆并通过审核后,可以接入流程进行开发。据开发者资质认证处介绍:开发者资质认证通过后,微信开放平台帐号下的应用,将获得微信登录、智能接口、第三方平台开发等高级能力。所以在微信第三方授权登陆获取用户信息…

  • python模拟键盘输入_python控制鼠标键盘

    python模拟键盘输入_python控制鼠标键盘win32api.keybd_event该函数原型:keybd_event(bVk,bScan,dwFlags,dwExtraInfo)第一个参数:虚拟键码(键盘键码对照表见附录);第二个参数:硬件扫描码,一般设置为0即可;第三个参数:函数操作的一个标志位,如果值为KEYEVENTF_EXTENDEDKEY则该键被按下,也可设置为0即可,如果值为KEYEVENTF_KEYUP则该按键被释放;…

    2022年10月11日
  • Linux—ps -ef|grep详解

    Linux—ps -ef|grep详解【Linux】ps -ef|grep详解Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同…

  • django分页器的用法_SQL分页

    django分页器的用法_SQL分页前言当后台返回的数据过多时,我们就要配置分页器,比如一页最多只能展示10条等等,drf中默认配置了3个分页面PageNumberPagination:基础分页器,性能略差LimitOffsetP

  • 香农编码和哈夫曼编码_香农编码效率可以大于1吗

    香农编码和哈夫曼编码_香农编码效率可以大于1吗香农编码哈夫曼编码费诺编码的比较文章目录哈夫曼编码编码步骤例子优点缺点费诺编码编码步骤例子优点缺点香农编码编码步骤例子优点缺点参考备注:本文除了例子与数据,其他内容均为整合网络资源。哈夫曼编码编码步骤S1将信源符号按照概率大小从大到小排列;S2把概率最小的两个信源符号分成一组,其中,上面一个编码为0,下面一个编码为1,并将这两个符号的概率加起来,其结果再与尚未处理过的符号重…

发表回复

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

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