深度学习之autoEncoder

2024-05-07 17:58
文章标签 学习 深度 autoencoder

本文主要是介绍深度学习之autoEncoder,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1)autoencoder

autoencoder是一种无监督的学习算法,他利用反向传播算法,让目标值等于输入值。如图所示:


Autoencoder尝试学习一个  的函数。也就是说autoencoder尝试逼近一个恒等函数,使得输出接近于输入 。当然为了使这个函数有意义,需要加入一些限制条件(比如说限制隐藏神经元的数目),就可以发现一些有意义的结构。Autoencoder可以学习到数据的一些压缩表示。例如如果输入数据为100维,隐藏层为50个,那么就需要从这50维的数据中重构出100维的输出,使这个输出接近于100维的输入。因此这个隐藏层的50维的数据就必然会包含着输入数据的一些相关性。所以说autoencoder就是为了学习到输入数据的相关性表示的一种方法。

上面提到的对autoencoder可以加入一些“隐藏神经元的数目”的限制,来学习到输入数据的一些有意义的表示。其实也可以引入稀疏性的限制,而这才是autoencoder中最常用到的限制。稀疏性限制是指如果当神经元的输出接近于1的时候我们认为它被激活,而输出接近于0的时候认为它被抑制,那么使得神经元大部分的时间都是被抑制的限制则被称作稀疏性限制。这里我们假设的神经元的激活函数是sigmoid函数。另 表示隐藏神经元的激活度,那么定义为隐藏神经元的平均激活度。另进而引入稀疏性限制。可以另等接近于0的较小值。要实现这个限制,我们需要给目标函数加入一个惩罚因子(其实是一个相对熵

因此,总的代价函数为

因此更新项为


2)反向传播算法回顾:

假设对于一个样本个数为m的样本集,对于单个样例,其代价函数为。那么对于样本集整体的代价函数为。第一项为均方差项,第二项是Regularization,是为了防止过拟合而产生的。 用于控制前后两项的相对重要性。

反向传播算法的目的是针对 来求取函数的最小值。首先我们需要将每一个参数初始化为一个很小的接近于0的随机值,然后利用梯度下降法的迭代更新权重。


其中  为学习效率,这也是一个很重要的参数。这里面最大的问题就变成了求取偏导数的问题。

反向传播算法的细节:


3)从self-learning到深度网络

有了autoencoder的基本概念,我们可以利用autoencoder来构建深度网络,近些年的一些列研究表明构建深度网络对于解决很多的计算机视觉问题具有重要意义,并能比现有的一些常规方法取得更好的效果。

 Self-learning

Self-learning是指可以利用autoecoder从未标注的数据中自我的学习特征。具体说来,给定一组未标注的数据 ,训练sparse autoencoder,即:


利用训练得到的参数  ,给定一个新的样本x,计算激活量a,作为提取出的特征。相对比于原始的样本数据x,激活量a可能会对数据有更好的表示。


4)深度网络:

我们可以把self-learning扩展到深度网络,即拥有多个隐藏层的神经网络。

对于这样的深度网络,利用反向传播算法很容易收敛到局部最小值,从而无法得到好的分类效果。对此,我们采用逐层贪婪算法来训练深度网络。即先利用原始输入来训练网络的第一层,得到其参数  ;然后网络第一层将原始输入转化成为由隐藏单元激活值组成的向量(假设该向量为A),接着把A作为第二层的输入,继续训练得到第二层的参数 ;最后,对后面的各层同样采用的策略,即将前层的输出作为下一层输入的方式依次训练。对于上述训练方式,在训练每一层参数的时候,会固定其它各层参数保持不变。所以,如果想得到更好的结果,在上述训练过程完成之后,可以通过反向传播算法同时调整所有层的参数以改善结果,这个过程一般被称作“fine-tuning”。下面的组图揭示了这一过程。







这篇关于深度学习之autoEncoder的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967987

相关文章

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识