深度学习:AE自编码器详细解读(图文并茂,值得一看)

深度学习:AE自编码器详细解读(图文并茂,值得一看)

本文参照了大量的网上文献,提取出了关于AE自编码器最重要的概念部分整理而成,为了增加文章的可读性,文章搭配了大量的插图。
参考文章如下:
自编码器是什么?有什么用?这里有一份入门指南(附代码)
TensorFlow实战之实现自编码器过程
深度学习之自编码器

首先跟大家展示一下本文的流程:
在这里插入图片描述
如上所示,本文分为三个大的段落,其中每个大段落又包含详细的分支,且看下面详细分解。
在这里插入图片描述
在这里插入图片描述
自编码的过程简单的说可以分为两部分:输入到隐层的编码过程和隐层到输出的解码过程

在这里插入图片描述
那么这个过程有什么意义呢?我们接着看:
在这里插入图片描述
在这里插入图片描述在学习自编码器之前,我们还需要再了解一下AE自编码器的相关概念。

在这里插入图片描述
稀疏性:
Sparsity 是当今机器学习领域中的一个重要话题。

Sparsity 的最重要的“客户”大概要属 high dimensional data 了吧。现在的机器学习问题中,具有非常高维度的数据随处可见。例如,在文档或图片分类中常用的 bag of words 模型里,如果词典的大小是一百万,那么每个文档将由一百万维的向量来表示。高维度带来的的一个问题就是计算量:在一百万维的空间中,即使计算向量的内积这样的基本操作也会是非常费力的。不过,如果向量是稀疏的的话(事实上在 bag of words 模型中文档向量通常都是非常稀疏的),例如两个向量分别只有 L 1 L1 L1 L 2 L2 L2 两个非零元素,那么计算内积可以只使用 m i n ( L 1 , L 2 ) min(L1,L2) min(L1,L2) 次乘法完成。因此稀疏性对于解决高维度数据的计算量问题是非常有效的。

稀疏编码(Sparse Coding)算法是一种无监督学习方法,它用来寻找一组“超完备”基向量来更高效地表示样本数据。稀疏编码算法的目的就是找到一组基向量 ϕ i \phi _{i} ϕi ,使得我们能将输入向量 X X X表示为这些基向量的线性组合:
X = ∑ i = 1 k a i ϕ i X=\sum_{i=1}^{k}a_{i}\phi _{i} X=i=1kaiϕi

自编码(AutoEncoder):
顾名思义,即可以使用自身的高阶特征编码自己。自编码器其实也是一种神经网络,它的输入和输出是一致的,它借助稀疏编码的思想,目标是使用稀疏的一些高阶特征重新组合来重构自己,即 :对所有的自编码器来讲,目标都是样本重构。

在机器学习中,自编码器的使用十分广泛。自编码器首先通过编码层,将高维空间的向量,压缩成低维的向量(潜在变量),然后通过解码层将低维向量解压重构出原始样本。

隐含层:
指输入层和输出层以外,中间的那些层。输入层和输出层是可见的,且层的结构是相对固定的,而隐含层结构不固定,相当于不可见。只要隐含的节点足够多,即是只有一个隐含层的神经网络也可以拟合任意函数。隐含层层数越多,越容易拟合复杂的函数。拟合复杂函数需要的隐含节点数目随着层数的增多而呈指数下降。即层数越深,概念越抽象,这就是深度学习。

过拟合:
指模型预测准确率在训练集上升高,但在测试集上反而下降。这是模型的泛化性不好,只记住了当前数据的特征。

Dropout:
Dropout:防止过拟合的一种方法。将神经网络某一层的输出节点数据随机丢弃一部分。可以理解为是对特征的采样。

优化函数:
优化调试网络中的参数。一般情况下,在调参时,学习率的设置会导致最后结果差异很大。神经网络通常不是凸优化,充满局部最优,但是神经网络可能有很多个局部最优都能达到良好效果,反而全局最优容易出现过拟合。

对于SGD,通常一开始学习率大一些,可以快速收敛,但是训练的后期,希望学习率可以小一些,可以比较稳定地落到一个局部最优解。</

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三景页三景页

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值