首页 > 其他分享 >深度学习自编码器 - 正则自编码器篇

深度学习自编码器 - 正则自编码器篇

时间:2024-09-15 19:49:00浏览次数:9  
标签:编码器 log text boldsymbol 正则 深度 model

序言

深度学习领域中,自编码器( Autoencoder \text{Autoencoder} Autoencoder)作为一种无监督学习技术,凭借其独特的结构在数据降维、特征提取、异常检测及数据去噪等方面展现出强大的能力。正则自编码器,作为自编码器家族中的重要一员,通过引入额外的约束或正则化项,不仅实现了对输入数据的有效重构,更在此基础上学习了数据更为紧凑和有意义的表示。这一特性使得正则自编码器在避免过拟合、提升模型泛化能力方面尤为突出,为处理高维、复杂数据提供了新的视角和方法。

正则自编码器(Regularized Autoencoder)

  • 编码维数小于输入维数的欠完备自编码器可以学习数据分布最显著的特征。我们已经看到,如果这类自编码器被赋予过大的容量,它就不能学到任何有用的信息。
  • 如果隐藏编码的维数允许与输入相等,或隐藏编码维数大于输入的过完备 ( overcomplete \text{overcomplete} overcomplete) 情况下,会发生类似的问题。在这些情况下,即使是线性编码器和线性解码器也可以学会将输入复制到输出,而学不到任何有关数据分布的有用信息。
  • 理想情况下,根据要建模的数据分布的复杂性,选择合适的编码维数和编码器、解码器容量,就可以成功训练任意架构的自编码器。
    • 正则自编码器提供这样做的可能。
    • 正则自编码器使用的损失函数可以鼓励模型学习其他特性(除了将输入复制到输出),而不用限制使用浅层的编码器和解码器以及小的编码维数来限制模型的容量。
    • 这些特性包括稀疏表示、表示的小导数、以及对噪声或输入缺失的鲁棒性。
    • 即使模型容量大到足够学习一个简单的复制功能,非线性且过完备的正则自编码器仍然能学到一些与数据分布相关的有用信息。
  • 除了这里所描述的方法(正则化自编码器最自然的解释),几乎任何带有潜变量并配有一个推断过程(计算给定输入的潜在表示)的生成模型,都可以看作是自编码器的一种特殊形式。
    • 强调与自编码器联系的两个生成建模方法是 Helmholtz \text{Helmholtz} Helmholtz机 ( Hinton et al., 1995b \text{Hinton et al., 1995b} Hinton et al., 1995b) 的衍生模型,如变分自编码器和生成随机网络。
    • 这些模型能自然地学习大容量、对输入过完备的有用编码,而不需要正则化。
    • 这些编码显然是有用的,因为这些模型被训练为近似训练数据的最大概率而不是将输入复制到输出。

稀疏自编码器

  • 稀疏自编码器简单地在训练时结合编码层的系数惩罚 Ω ( h ) \Omega(\boldsymbol{h}) Ω(h)和重构误差:
    L ( x , g ( f ( x ) ) ) + Ω ( h ) L(\boldsymbol{x},g(f(\boldsymbol{x})))+\Omega(\boldsymbol{h}) L(x,g(f(x)))+Ω(h) — 公式1 \quad\textbf{---\footnotesize{公式1}} —公式1
  • 其中 g ( h ) g(\boldsymbol{h}) g(h)是解码器的输出,通常 h \boldsymbol{h} h是编码器的输出,即 h = f ( x ) \boldsymbol{h}=f(\boldsymbol{x}) h=f(x)。
  • 稀疏自编码器通常用于学习特征,以便用于其他任务如分类。
    • 稀疏正则化的自编码器必须反映训练数据集的独特统计特征,而不是简单地充当恒等函数。
    • 以这种方式训练,执行附带稀疏惩罚的复制任务可以得到能学习有用特征的模型。
  • 我们可以简单地将惩罚项 Ω ( h ) \Omega(\boldsymbol{h}) Ω(h) 视为加到前馈网络的正则项,这个前馈网络的主要任务是将输入复制到输出(无监督学习的目标),并尽可能地根据这些稀疏特征执行一些监督学习任务(根据监督学习的目标)。
    • 不像其他正则项如权重衰减,这个正则化没有直观的贝叶斯解释。
    • 应用数学与机器学习基础 - 贝叶斯统计篇 - 最大后验(MAP)估计描述,权重衰减和其他正则惩罚可以被解释为一个 MAP \text{MAP} MAP近似贝叶斯推断,正则化的惩罚对应于模型参数的先验概率分布。
    • 这种观点认为,正则化的最大似然对应最大化 p ( θ ∣ x ) p(\boldsymbol{\theta}\mid\boldsymbol{x}) p(θ∣x),相当于最大化 log ⁡ p ( x ∣ θ ) + log ⁡ p ( x ∣ θ ) \log p(\boldsymbol{x}\mid\boldsymbol{\theta})+\log p(\boldsymbol{x}\mid\boldsymbol{\theta}) logp(x∣θ)+logp(x∣θ)。 log ⁡ p ( x ∣ θ ) \log p(\boldsymbol{x}\mid\boldsymbol{\theta}) logp(x∣θ) 即通常的数据似然项,参数的对数先验项 log ⁡ p ( θ ) \log p(\boldsymbol{\theta}) logp(θ)则包含了对 θ \boldsymbol{\theta} θ 特定值的偏好。
    • 这种观点在应用数学与机器学习基础 - 贝叶斯统计篇有所描述。
    • 正则自编码器不适用这样的解释是因为正则项取决于数据,因此根据定义上(从文字的正式意义)来说,它不是一个先验。
    • 我们仍可以认为这些正则项隐式地表达了对函数的偏好。
  • 我们可以认为整个稀疏自编码器框架是对带有潜变量的生成模型的近似最大似然训练,而不将稀疏惩罚视为复制任务的正则化。
    • 假如我们有一个带有可见变量 x和潜变量 h \boldsymbol{h} h 的模型,且具有明确的联合分布 p model ( x , h ) = p model ( h ) p model ( x ∣ h ) p_{\text{model}}(\boldsymbol{x},\boldsymbol{h})=p_{\text{model}}(\boldsymbol{h})p_{\text{model}}(\boldsymbol{x}\mid\boldsymbol{h}) pmodel​(x,h)=pmodel​(h)pmodel​(x∣h)。
    • 我们将 p model ( h ) p_{\text{model}}(\boldsymbol{h}) pmodel​(h) 视为模型关于潜变量的先验分布,表示模型看到 x \boldsymbol{x} x 的信念先验。
    • 这与我们之前使用 ‘‘先验’’ 的方式不同,之前指分布 p ( θ ) p(\boldsymbol{\theta}) p(θ) 在我们看到数据前就对模型参数的先验进行编码。
    • 对数似然函数可分解为:
      log ⁡ p model ( x ) = log ⁡ ∑ h ( h , x ) \log p_{\text{model}}(\boldsymbol{x})=\log \sum\limits_h(\boldsymbol{h},\boldsymbol{x}) logpmodel​(x)=logh∑​(h,x) — 公式2 \quad\textbf{---\footnotesize{公式2}} —公式2
    • 我们可以认为自编码器使用一个高似然值 h \boldsymbol{h} h 的点估计近似这个总和。
      • 这类似于稀疏编码生成模型(线性因子模型 - 稀疏编码篇),但 h \boldsymbol{h} h 是参数编码器的输出,而不是从优化结果推断出的最可能的 h \boldsymbol{h} h。
      • 从这个角度看,我们根据这个选择的 h \boldsymbol{h} h,最大化如下:
        log ⁡ p model ( h , x ) = log ⁡ p model ( h ) + log ⁡ p model ( x ∣ h ) \log p_{\text{model}}(\boldsymbol{h},\boldsymbol{x})=\log p_{\text{model}}(\boldsymbol{h})+\log p_{\text{model}}(\boldsymbol{x}\mid\boldsymbol{h}) logpmodel​(h,x)=logpmodel​(h)+logpmodel​(x∣h) — 公式3 \quad\textbf{---\footnotesize{公式3}} —公式3
      • log ⁡ p model ( h ) \log p_{\text{model}}(\boldsymbol{h}) logpmodel​(h)项能被稀疏诱导。如 Laplace \text{Laplace} Laplace先验, p model ( h i ) = λ 2 e − λ ∣ h i ∣ p_{\text{model}}(h_i)=\frac{\lambda}{2}e^{-\lambda |h_i|} pmodel​(hi​)=2λ​e−λ∣hi​∣ — 公式4 \quad\textbf{---\footnotesize{公式4}} —公式4
      • 对应于绝对值稀疏惩罚。将对数先验表示为绝对值惩罚,我们得到:
        Ω ( h ) = λ ∑ i ∣ h i ∣ \Omega(\boldsymbol{h})=\lambda\sum\limits_i |h_i| Ω(h)=λi∑​∣hi​∣ — 公式5 \quad\textbf{---\footnotesize{公式5}} —公式5
        − log ⁡ p model ( h ) = ∑ i ( λ ∣ h i ∣ − log ⁡ λ 2 ) = Ω ( h ) + const -\log p_{\text{model}}(\boldsymbol{h})=\sum\limits_i (\lambda|h_i|-\log \frac{\lambda}{2})=\Omega(\boldsymbol{h})+\text{const} −logpmodel​(h)=i∑​(λ∣hi​∣−log2λ​)=Ω(h)+const — 公式6 \quad\textbf{---\footnotesize{公式6}} —公式6
      • 这里的常数项只跟 λ \lambda λ 有关。通常我们将 λ \lambda λ 视为超参数,因此可以丢弃不影响参数学习的常数项。
      • 其他如 Student-t \text{Student-t} Student-t先验也能诱导稀疏性。
      • 从稀疏性导致 p model ( h ) p_{\text{model}}(\boldsymbol{h}) pmodel​(h) 学习成近似最大似然的结果看,稀疏惩罚完全不是一个正则项。
      • 这仅仅影响模型关于潜变量的分布。
      • 这个观点提供了训练自编码器的另一个动机:这是近似训练生成模型的一种途径。
      • 这也给出了为什么自编码器学到的特征是有用的另一个解释:它们描述的潜变量可以解释输入。
  • 稀疏自编码器的早期工作 ( Ranzato et al., 2007a, 2008 \text{Ranzato et al., 2007a, 2008} Ranzato et al., 2007a, 2008) 探讨了各种形式的稀疏性,并提出了稀疏惩罚和 log ⁡ Z \log Z logZ 项(将最大似然应用到无向概率模型 p ( x ) = 1 Z p ~ ( x ) p(\boldsymbol{x}) = \frac{1}{Z}\tilde{p}(\boldsymbol{x}) p(x)=Z1​p~​(x)时产生)之间的联系。
    • 这个想法是最小化 log ⁡ Z \log Z logZ 防止概率模型处处具有高概率,同理强制稀疏可以防止自编码器处处具有低的重构误差。
    • 这种情况下,这种联系是对通用机制的直观理解而不是数学上的对应。
    • 在数学上更容易解释稀疏惩罚对应于有向模型 p model ( h ) p model ( x ∣ h ) p_{\text{model}}(\boldsymbol{h})p_{\text{model}}(\boldsymbol{x}\mid\boldsymbol{h}) pmodel​(h)pmodel​(x∣h)中的 log ⁡ p model ( h ) \log p_{\text{model}}(\boldsymbol{h}) logpmodel​(h)。
  • Glorot et al. (2011b) \text{Glorot et al. (2011b)} Glorot et al. (2011b) 提出了一种在稀疏(和去噪)自编码器的 h \boldsymbol{h} h 中实现真正为零的方式。该想法是使用整流线性单元产生编码层。基于将表示真正推向零(如绝对值惩罚)的先验,可以间接控制表示中零的平均数量。

去噪自编码器

  • 除了向代价函数增加一个惩罚项,我们也可以改变重构误差项得到一个能学到有用信息的自编码器。

  • 传统的自编码器最小化以下目标: L ( x , g ( f ( x ) ) ) L(\boldsymbol{x},g(f(\boldsymbol{x}))) L(x,g(f(x))) — 公式7 \quad\textbf{---\footnotesize{公式7}} —公式7

  • 其中 L L L是一个损失函数,衡量 g ( f ( x ) ) g(f(\boldsymbol{x})) g(f(x))与 x \boldsymbol{x} x的不相似性,如它们不相似度的 L 2 L^2 L2范数。如果模型被赋予足够的容量, L L L仅仅鼓励 g ∘ f g\circ f g∘f学成一个恒等函数。

  • 相反,去噪自编码器 ( denoising autoencoder, DAE \text{denoising autoencoder, DAE} denoising autoencoder, DAE) 最小化: L ( x , g ( f ( x ~ ) ) ) L(\boldsymbol{x},g(f(\tilde{\boldsymbol{x}}))) L(x,g(f(x~))) — 公式8 \quad\textbf{---\footnotesize{公式8}} —公式8
    其中 x ~ \tilde{\boldsymbol{x}} x~是被某种噪声损坏 x \boldsymbol{x} x的副本。因此去噪自编码器必须撤消这些损坏,而不是简单地复制输入。

  • Alain and Bengio (2013) \text{Alain and Bengio (2013)} Alain and Bengio (2013) 和 Bengio et al. (2013d) \text{Bengio et al. (2013d)} Bengio et al. (2013d) 指出去噪训练过程强制 f f f 和 g g g隐式地学习 p data ( x ) p_{\text{data}}(x) pdata​(x) 的结构。

    • 因此去噪自编码器也是一个通过最小化重构误差获取有用特性的例子。
    • 这也是将过完备、高容量的模型用作自编码器的一个例子——只要小心防止这些模型仅仅学习一个恒等函数。

惩罚导数作为正则

  • 另一正则化自编码器的策略是使用一个类似稀疏自编码器中的惩罚项 Ω \Omega Ω:
    L ( x , g ( f ( x ) ) ) + Ω ( h , x ) L(\boldsymbol{x},g(f(\boldsymbol{x})))+\Omega(\boldsymbol{h},\boldsymbol{x}) L(x,g(f(x)))+Ω(h,x) — 公式9 \quad\textbf{---\footnotesize{公式9}} —公式9
    但 Ω \Omega Ω的形式不同: Ω ( h , x ) = λ ∑ i ∥ ∇ x h i ∥ 2 \Omega(\boldsymbol{h},\boldsymbol{x})=\lambda\sum\limits_i \Vert \nabla_x h_i \Vert^2 Ω(h,x)=λi∑​∥∇x​hi​∥2 — 公式10 \quad\textbf{---\footnotesize{公式10}} —公式10
  • 这迫使模型学习一个在 x \boldsymbol{x} x 变化小时目标也没有太大变化的函数。
    • 因为这个惩罚只对训练数据适用,它迫使自编码器学习可以反映训练数据分布信息的特征。
  • 这样正则化的自编码器被称为收缩自编码器 ( contractive autoencoder, CAE \text{contractive autoencoder, CAE} contractive autoencoder, CAE)。
  • 这种方法与去噪自编码器、流形学习和概率模型存在一定理论联系。

总结

  • 正则自编码器通过巧妙地结合传统自编码器的重构能力与正则化策略,成功地在无标签数据的情况下挖掘出了数据的内在结构和特征。其设计核心在于通过正则化项对编码过程施加限制,迫使模型学习到的表示更加稀疏、平滑或具有特定的统计特性,从而有效减少了模型复杂度,提高了数据的表示效率和模型的泛化能力。无论是在图像处理、自然语言处理还是其他领域,正则自编码器都展现出了广阔的应用前景和巨大的研究价值。
  • 随着深度学习技术的不断发展,正则自编码器及其变体将继续在数据科学领域发挥重要作用,推动更多创新应用的诞生。

往期内容回顾

应用数学与机器学习基础 - 贝叶斯统计篇
线性因子模型 - 稀疏编码篇

标签:编码器,log,text,boldsymbol,正则,深度,model
From: https://blog.csdn.net/benny_zhou2004/article/details/142070061

相关文章

  • Arduino ESP32 oled显示,增量式编码器测距程序
      ESP3214引脚接编码器A,13引脚接编码器B,21、22为I2C默认引脚,程序根据编码器A触发ESP32的22脚中断,然后判断编码器B在ESP32的21脚状态是高电平还是低电平,来决定编码器是正转还是反转,也就是数值应该加还是减。   程序设计为编码器转一圈为1000个脉冲也就是编码器分辨率......
  • 深度学习-神经网络构造
    文章目录一、正则化惩罚1.L1正则化2.L2正则化二、梯度下降(GradientDescent)1.基本原理2.注意事项三、BP神经网络1.基本原理2.网络结构3.特点四、总结一、正则化惩罚正则化惩罚(RegularizationPenalty)是机器学习中常用的一种技术,用于减少模型的复杂度,防止模型过拟......
  • 【洛谷 P1596】[USACO10OCT] Lake Counting S 题解(深度优先搜索)
    [USACO10OCT]LakeCountingS题面翻译由于近期的降雨,雨水汇集在农民约翰的田地不同的地方。我们用一个的网格图表示。每个网格中有水(W)或是旱地(.)。一个网格与其周围的八个网格相连,而一组相连的网格视为一个水坑。约翰想弄清楚他的田地已经形成了多少水坑。给出约翰田地的示意图,......
  • 深度!程序员生涯的垃圾时间(上)
    1很多程序员对互联网行业中广泛讨论的“35岁危机”表示不满,似乎所有的程序员都有着35岁的职业保质期。然而,随着AI技术的兴起,这场翻天覆地的技术革命正以更加残酷且直接的方式渗透到各行各业。程序员的核心价值正在被自动化和智能工具所取代。程序员不再面临传统意义上的35岁年龄......
  • 【二叉树的最大深度】带你理解递归奥妙!
    ......
  • 个人学习笔记6-2:动手学深度学习pytorch版-李沐
    #深度学习##人工智能##神经网络#现代卷积神经网络7.5批量规范化可持续加速深层网络的收敛速度,是一种线性变化。批归一化原理公式思想:(B表批量大小,μB、B表示根据输入的小批量数据随机计算的均值和方差;γ和β是新学习到的新方差和均值)批量归一化固定小批量中的均值和......
  • 个人学习笔记7-5:动手学深度学习pytorch版-李沐
    #人工智能##深度学习##语义分割##计算机视觉##神经网络#计算机视觉13.10转置卷积例如,卷积层和汇聚层,通常会减少下采样输入图像的空间维度(高和宽)。然而如果输入和输出图像的空间维度相同,在以像素级分类的语义分割中将会很方便。转置卷积(transposedconvolution)可以增加......
  • 深度学习YOLO人员抽烟AI检测算法在智慧安防领域的创新应用
    随着人工智能技术的飞速发展,计算机视觉和深度学习算法在各个领域的应用日益广泛。其中,人员抽烟AI检测算法以其高效、精准的特点,成为公共场所、工厂、学校等场景中的得力助手。本文将介绍TSINGSEE青犀AI智能分析网关V4人员抽烟检测算法的基本原理、实现步骤以及其在多个实际场景......
  • apple m芯片的深度学习框架 MLX 安装
    概述二手淘到一个M1MAX64g512g的applestudio。看了一下专为它开发的框架MLX,还有一堆例子。在官方网站的帮助文件中,找到了安装方法。官网安装PythonAPITobuildandinstalltheMLXpythonlibraryfromsource,first,cloneMLXfromitsGitHubrepo:gitclone......
  • 数据结构与算法-求数的最小深度是多少?
    给定一颗二叉树的头节点head求以head为头的树中,最小深度是多少?publicclassMinHeight{publicstaticclassTreeNode{publicintval;publicTreeNodeleft;publicTreeNoderight;publicTreeNode(intx){val=x;......