• 深度学习自编码器 - 引言篇


    序言

    在深度学习的浩瀚星空中,自编码器 Autoencoder \text{Autoencoder} Autoencoder)以其独特的魅力闪耀着光芒。作为一种无监督学习技术,自编码器通过构建输入数据的压缩表示(编码)及其重构(解码)过程,不仅实现了数据的有效降维,还促进了数据特征的深层次提取。其核心思想在于,通过神经网络学习一个从输入到隐层(编码)再到输出(解码)的非线性映射,使得输出能够尽可能复现原始输入,同时隐层编码作为输入数据的低维表示,蕴含了数据的核心信息。这一过程不仅有助于去除数据中的冗余和噪声,还为后续的数据分析、模式识别等任务提供了更为精炼和有效的特征集。

    自编码器(Autoencoder)

    • 自编码器 ( autoencoder \text{autoencoder} autoencoder) 是神经网络的一种,经过训练后能尝试将输入复制到输出。
      • 自编码器 ( autoencoder \text{autoencoder} autoencoder) 内部有一个隐藏层 h \boldsymbol{h} h,可以产生编码 ( code \text{code} code) 表示输入。
      • 该网络可以看作由两部分组成:一个编码器函数 h = f ( x ) \boldsymbol{h}=f(\boldsymbol{x}) h=f(x) 和一个生成重构的解码器 r = g ( h ) \boldsymbol{r}=g(\boldsymbol{h}) r=g(h)
      • 图例1展示了这种架构。如果一个自编码器学会简单地设置 g ( f ( x ) ) = x g(f(\boldsymbol{x}))=\boldsymbol{x} g(f(x))=x,那么这个自编码器就不会特别有用。
      • 相反,自编码器应该被设计成不能学会完美地复制。
      • 这通常需要强加一些约束,使自编码器只能近似地复制,并只能复制类似训练数据的输入。
      • 这些约束强制模型划定输入数据不同方面的主次顺序,因此它往往能学习到数据的有用特性。
    • 现代自编码器将编码器和解码器的思想推广,将其中的确定函数推广为随机映射 p encoder ( h ∣ x ) p_{\text{encoder}}(\boldsymbol{h}\mid\boldsymbol{x}) pencoder(hx) p decoder ( x ∣ h ) p_{\text{decoder}}(\boldsymbol{x}\mid\boldsymbol{h}) pdecoder(xh)
    • 数十年间,自编码器的想法一直是神经网络历史景象的一部分 ( LeCun, 1987; Bourlard and Kamp, 1988; Hinton and Zemel, 1994 \text{LeCun, 1987; Bourlard and Kamp, 1988; Hinton and Zemel, 1994} LeCun, 1987; Bourlard and Kamp, 1988; Hinton and Zemel, 1994)。
      • 传统自编码器被用于降维或特征学习。
      • 近年来,自编码器与潜变量模型理论的联系将自编码器带到了生成建模的前沿,我们将在后续篇章(敬请期待!)看到更多细节。
      • 自编码器可以被看作是前馈网络的一种特殊情况,并且可以使用完全相同的技术进行训练,通常使用 minibatch ‾ \underline{\text{minibatch}} minibatch梯度下降法(基于反向传播计算的梯度)。
      • 不像一般的前馈网络,自编码器也可以使用再循环 ( recirculation \text{recirculation} recirculation) 训练 ( Hinton and McClelland, 1988 \text{Hinton and McClelland, 1988} Hinton and McClelland, 1988),这是一种基于比较原始输入和重构输入激活的学习算法。
      • 相比反向传播算法, 再循环算法从生物学上看似更有道理,但很少用于机器学习。

    • 图例1:自编码器的一般结构
      • 自编码器的一般结构
        在这里插入图片描述

      • 说明:

        • 自编码器的一般结构,通过内部表示或编码 h \boldsymbol{h} h 将输入 x \boldsymbol{x} x 映射到输出(称为重构) r \boldsymbol{r} r
        • 自编码器具有两个组件:
          • 编码器 f f f(将 x \boldsymbol{x} x 映射到 h \boldsymbol{h} h
          • 解码器 g g g(将 h \boldsymbol{h} h 映射到 r \boldsymbol{r} r)。

    总结

    • 自编码器作为深度学习中的重要工具,其独特的编码-解码结构使其在数据降维、特征学习、异常检测等多个领域展现出卓越的性能。通过不断优化网络结构和训练算法,自编码器能够学习到更加紧凑、有效的数据表示,为复杂数据的处理与分析提供了新的思路和方法。
    • 同时,随着深度学习技术的不断发展,自编码器也在不断进化,如堆叠自编码器、变分自编码器、稀疏自编码器等变种不断涌现,进一步拓展了其应用范围与潜力。
    • 总之,自编码器作为深度学习中一颗璀璨的明珠,正引领着数据表示学习的新潮流。

    往期内容回顾

    应用数学与机器学习基础 - 数值计算篇 - 基于梯度的优化方法
    梯度下降介绍 - minibatch梯度下降法
    深度网络现代实践 - 深度前馈网络介绍篇
    深度网络现代实践 - 深度前馈网络之反向传播和其他的微分算法篇

  • 相关阅读:
    Vue+ElementUI+Bootstrap+Fetch实现学生信息修改页面,并与后端交互修改数据库信息
    R语言ggplot2可视化:使用patchwork包将2个ggplot2可视化结果横向组合、并自定义修改(更改)组合图像中指定子图的主题(theme)
    统计redis中key的数量
    设计模式-工厂模式
    vue获取当前页面地址
    MCE | D-萤光素 Protocol 在手,生物发光检测无忧!
    win7录屏软件哪个好用?盘点3款实用软件
    服务器老被攻击,该如何解决?
    别被骗了,try-catch语句真的会影响性能吗?
    Linux学习第15天:Linux设备树(二):枝繁叶茂见晴天
  • 原文地址:https://blog.csdn.net/benny_zhou2004/article/details/142067345