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

序言

深度学习领域中,自编码器( 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(xh)
    • 我们将 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(xh) — 公式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)=λihi — 公式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(λhilog2λ)=Ω(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)=Z1p~(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(xh)中的 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 中实现真正为零的方式。该想法是使用整流线性单元产生编码层。基于将表示真正推向零(如绝对值惩罚)的先验,可以间接控制表示中零的平均数量。

去噪自编码器

惩罚导数作为正则

  • 另一正则化自编码器的策略是使用一个类似稀疏自编码器中的惩罚项 Ω \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)=λixhi2 — 公式10 \quad\textbf{---\footnotesize{公式10}} 公式10
  • 这迫使模型学习一个在 x \boldsymbol{x} x 变化小时目标也没有太大变化的函数。
    • 因为这个惩罚只对训练数据适用,它迫使自编码器学习可以反映训练数据分布信息的特征。
  • 这样正则化的自编码器被称为收缩自编码器 ( contractive autoencoder, CAE \text{contractive autoencoder, CAE} contractive autoencoder, CAE)。
  • 这种方法与去噪自编码器、流形学习和概率模型存在一定理论联系。

总结

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

往期内容回顾

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/54385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES5 在 Web 上的现状

最后一个支持 ES5 的浏览器 IE 11 在 2022 年被微软停止支持,那么今天 Web 上的 ES5 现状如何?在构建生产代码时,Web 开发者的最佳实践是什么? 本文将通过数据来回答这些问题,并基于这些数据为网站开发者和库作者提供一…

Delta Lake如何使用

1. 安装 Java 确保你的系统上安装了 Java 8 或更高版本。可以通过以下命令检查 Java 是否已安装: java -version2. 安装 Apache Spark 下载 Spark: 从 Apache Spark 官方网站 下载适合的版本,建议下载预编译的版本(例如&#xf…

如何有效检测住宅IP真伪?

在当今的互联网时代,住宅IP(即家庭用户通过宽带服务提供商获得的IP地址)在跨境电商、广告投放、网络安全等多个领域扮演着重要角色。然而,随着网络环境的复杂化和欺诈行为的增多,如何有效检测和辨别住宅IP的真伪成为了…

Spring:统一结果私有属性造成的前端无法访问异常报错问题

用户未填写任何评价 1.问题复现 (1)看一段代码 controller: import lombok.extern.slf4j.Slf4j; import org.ljy.testdemo.common.Result; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.w…

深入解析 SQLSugar:从基础 CRUD 到读写分离与高级特性详解

SQLSugar 使用指南:从入门到进阶及高级特性详解 SQLSugar 是一款功能丰富的 .NET ORM 框架,它支持多种数据库、简洁的 API 和优雅的编程体验。相较于其他 ORM,SQLSugar 提供了很多开发者友好的功能,比如自动创建表结构、灵活的查…

在HTML中添加图片

在HTML中添加图片&#xff0c;你需要使用<img>标签。这个标签用于在网页上嵌入图像。<img>是一个空元素&#xff0c;它只包含属性&#xff0c;并且没有闭合标签。要在<img>标签中指定要显示的图像&#xff0c;你需要使用src&#xff08;source的缩写&#xf…

Centos中关闭swap分区,关闭内存交换

概述&#xff1a; Swap 分区是 Linux 系统中扩展物理内存的一种机制。Swap的主要功能是当全部的RAM被占用并需要更多内存时&#xff0c;用磁盘空间代理RAM内存。Swap对虚拟化技术资源损耗非常大&#xff0c;一般虚拟化是不允许开启交换空间的&#xff0c;如果不关闭Swap&…

【Linux课程学习】make/Makefile:Linux项目自动化构建工具

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f349;一.make/Makefile的理解&#xff1a; …

关于STM32项目面试题02:ADC与DAC篇(输入部分NTC、AV:0-5V、AI:4-20mA和DAC的两个引脚)

博客的风格是&#xff1a;答案一定不能在问题的后面&#xff0c;要自己想、自己背&#xff1b;回答都是最精简、最精简、最精简&#xff0c;可能就几个字&#xff0c;你要自己自信的展开。 面试官01&#xff1a;什么是模数转换/ADC&#xff1f;说说模数转换的流程&#xff1f; …

mysql5.7常用操作命令手册

文章目录 前言一、关闭mysql服务1.mha节点,关闭MHA高可用2.主节点&#xff0c;摘掉vip&#xff0c;停掉mysql服务3.从节点&#xff0c;停掉mysql服务 二、启动mysql1.启动数据库顺序2.主节点&#xff0c;登陆数据库检查主库状态,将主库改成读写状态3.从节点启动配置数据库&…

基于SpringBoot+Vue+MySQL的手机销售管理系统

系统展示 用户前台界面 管理员后台界面 商家后台界面 系统背景 随着智能手机的普及和市场竞争的日益激烈&#xff0c;手机销售行业面临着前所未有的挑战与机遇。传统的手工记录和简单的电子表格管理方式已难以满足现代手机销售业务的需求&#xff0c;销售数据的混乱和管理效率低…

Python基础知识——字典排序(不断补充)

目录 专栏导读代码1&#xff1a;value是多个字符拼接(含拼接符号)(升序)代码2&#xff1a;value是单个值(升序)代码3&#xff1a;按值排序(升序)代码4&#xff1a;按值排序(降序)总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放…

技术成神之路:设计模式(十四)享元模式

介绍 享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构性设计模式&#xff0c;旨在通过共享对象来有效地支持大量细粒度的对象。 1.定义 享元模式通过将对象状态分为内部状态&#xff08;可以共享&#xff09;和外部状态&#xff08;不可共享&#xff09;&#xf…

C语言-文件操作-一些我想到的、见到的奇怪的问题

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【C语言】 欢迎点赞&#x1f44d;收藏⭐关注❤️ C语言-文件操作-一些我想到的、见到的奇怪的问题 前言1.在不关闭文件的情况下&#xff0c;连续多次调用 fopen() 打开同一个文件&#xff0c;会发生什么&#xff1f;1.1过…

Cursor火出圈,未来程序员还有出路吗?

大家好&#xff0c;我是凡人。 今天我表弟家邻居的阿姨&#xff0c;托他问问我目前程序员还有前景吗&#xff0c;希望我根据十几年的经验给出点建议&#xff0c;看看程序员这条路未来能不能走。 一下子不知道该怎么回复他了&#xff0c;如果是三年前问我&#xff0c;肯定毫不…

【React】React18.2.0核心源码解读

前言 本文使用 React18.2.0 的源码&#xff0c;如果想回退到某一版本执行git checkout tags/v18.2.0即可。如果打开源码发现js文件报ts类型错误请看本人另一篇文章&#xff1a;VsCode查看React源码全是类型报错如何解决。 阅读源码的过程&#xff1a; 下载源码 观察 package…

消息队列的幂等问题解决方案

消息队列的幂等性问题是指在处理重复消息时&#xff0c;保证消息被多次消费但只产生一次影响。由于网络延迟、消费端异常等原因&#xff0c;消息可能会被重复投递或消费&#xff0c;因此消息处理的幂等性是保证系统数据一致性的重要环节。 1. 解决幂等问题常见方案 1.1 唯一请…

解决【WVP服务+ZLMediaKit媒体服务】加入海康摄像头后,能发现设备,播放/点播失败,提示推流超时!

环境介绍 每人搭建的环境不一样&#xff0c;情况不一样&#xff0c;但是原因都是下面几种&#xff1a; wvp配置不当网络端口未放开网络不通 我搭建的环境&#xff1a; WVP服务&#xff1a;windows下&#xff0c;用idea运行的源码 ZLM服务&#xff1a;虚拟机里 问题描述 1.…

【人工智能学习笔记】5 计算机视觉基础

计算机视觉概述 定义&#xff1a;计算机视觉&#xff08;Computer Vision&#xff09;是一门研究如何使机器“看”的科学&#xff0c;也可以看作是研究如何使人工系统从图像活多维数据中“感知”的科学终极目标&#xff1a;计算机视觉成为机器认知世界的基础&#xff0c;终极目…

superset 解决在 mac 电脑上发送 slack 通知的问题

参考文档: https://superset.apache.org/docs/configuration/alerts-reports/ 核心配置: FROM apache/superset:3.1.0USER rootRUN apt-get update && \apt-get install --no-install-recommends -y firefox-esrENV GECKODRIVER_VERSION0.29.0 RUN wget -q https://g…