前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动编码器(Autoencoder)

自动编码器(Autoencoder)

作者头像
全栈程序员站长
发布2022-06-28 17:10:11
4410
发布2022-06-28 17:10:11
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Autoencoder

autoencoder是一种无监督的学习算法,主要用于数据的降维或者特征的抽取,在深度学习中,autoencoder可用于在训练阶段开始前,确定权重矩阵 W W的初始值。

神经网络中的权重矩阵 W W可看作是对输入的数据进行特征转换,即先将数据编码为另一种形式,然后在此基础上进行一系列学习。然而,在对权重初始化时,我们并不知道初始的权重值在训练时会起到怎样的作用,也不知道在训练过程中权重会怎样的变化。因此一种较好的思路是,利用初始化生成的权重矩阵进行编码时,我们希望编码后的数据能够较好的保留原始数据的主要特征。那么,如何衡量码后的数据是否保留了较完整的信息呢?答案是:如果编码后的数据能够较为容易地通过解码恢复成原始数据,我们则认为 W W较好的保留了数据信息。

例如下图所示,将手写数字图片进行编码,编码后生成的 ϕ1 \phi_{1}, ϕ2 \phi_{2}, ϕ3 \phi_{3}, ϕ4 \phi_{4}, ϕ5 \phi_{5}, ϕ6 \phi_{6} 较完整的保留了原始图像的典型特征,因此可较容易地通过解码恢复出原始图像。

图片名称
图片名称

autoencoder通过神经网络进行预训练,从而确定 W W的初始值。其目标是让输入值等于输出值。如下图所示:首先用 W W对输入进行编码,经过激活函数后,再用 WT W^{\mathrm{T}}进行解码,从而使得 h(x)≈x h(x) \approx x。该过程可以看作是对输入数据的压缩编码,将高维的原始数据用低维的向量表示,使压缩后的低维向量能保留输入数据的典型特征,从而能够较为方便的恢复原始数据。需要注意的是:这里增加了一个约束条件,即在对数据进行编码和解码时,使用的是同一个参数矩阵 W <script type=”math/tex” id=”MathJax-Element-98″>W</script>。该约束可看作是一种regularization,用于减少参数的个数,控制模型的复杂度。

图片名称
图片名称

对于多层神经网络的参数初始化问题,我们可以依次对每一层进行autoencoder。如下图所示,具体做法是首先按照上述方法确定第一层的权重参数,然后固定第一层的参数,对第二层的参数进行训练,以此类推,直到得到所有权重值。

图片名称
图片名称

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Autoencoder
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档