NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

一文看懂 AutoEncoder 模型演进图谱

  • 2019-08-22
  • 本文字数:2788 字

    阅读完需:约 9 分钟

一文看懂AutoEncoder模型演进图谱

本文来自“深度推荐系统”专栏,这个系列将介绍在深度学习的强力驱动下,给推荐系统工业界所带来的最前沿的变化。本文则结合作者在工作中的经验总结,着重于串讲 AutoEncoder 模型框架的演进图谱。


AutoEncoder 作为 NN 里的一类模型,采用无监督学习的方式对高维数据进行高效的特征提取和特征表示,并且在学术界和工业界都大放异彩。本文主要介绍 AutoEncoder 系列模型框架的演进,旨在梳理 AutoEncoder 的基本原理。首先上图,然后再对他们进行逐一介绍。



AutoEncoder 的思想最早被提出来要追溯到 1988 年[1],当时的模型由于数据过于稀疏高维计算复杂度高很难优化,没能得到广泛的引用。直到 2006 年,Hinton 等人[2]采用梯度下降来逐层优化 RBM 从而实现对原始样本/特征的抽象表示,并在特征降维上取得显著效果。这才使得采用神经网络来构建 AutoEncoder 的方法得到广泛关注。

AutoEncoder

在介绍经典的基于神经网络的 AutoEncoder 模型之前,先来整体看一下 AutoEncoder 框架的基本思想,如下图所示。AutoEncoder 框架包含两大模块:编码过程和解码过程。通过 encoder(g)将输入样本 x 映射到特征空间 z,即编码过程;然后再通过 decoder(f)将抽象特征 z 映射回原始空间得到重构样本 x’,即解码过程。优化目标则是通过最小化重构误差来同时优化 encoder 和 decoder,从而学习得到针对样本输入 x 的抽象特征表示 z。



这里我们可以看到,AutoEncoder 在优化过程中无需使用样本的 label,本质上是把样本的输入同时作为神经网络的输入和输出,通过最小化重构误差希望学习到样本的抽象特征表示 z。这种无监督的优化方式大大提升了模型的通用性。


对于基于神经网络的 AutoEncoder 模型来说,则是 encoder 部分通过逐层降低神经元个数来对数据进行压缩;decoder 部分基于数据的抽象表示逐层提升神经元数量,最终实现对输入样本的重构。


这里指的注意的是,由于 AutoEncoder 通过神经网络来学习每个样本的唯一抽象表示,这会带来一个问题:当神经网络的参数复杂到一定程度时 AutoEncoder 很容易存在过拟合的风险。

Denoising AutoEncoder

为了缓解经典 AutoEncoder 容易过拟合的问题,一个办法是在输入中加入随机噪声;Vincent 等人[3]提出了 Denoising AutoEncoder,在传统 AutoEncoder 输入层加入随机噪声来增强模型的鲁棒性。另一个办法就是结合正则化思想,Rifai 等人[4]提出了 Contractive AutoEncoder,通过在 AutoEncoder 目标函数中加上 encoder 的 Jacobian 矩阵范式来约束使得 encoder 能够学到具有抗干扰的抽象特征。


下图是 Denoising AutoEncoder 的模型框架。目前添加噪声的方式大多分为两种:添加服从特定分布的随机噪声;随机将输入 x 中特定比例置为 0。有没有觉得第二种方法跟现在广泛石红的 Dropout 很相似,但是 Dropout 方法是 Hinton 等人在 2012 年才提出来的,而第二种加噪声的方法在 08 年就已经被应用了。这其中的关系,就留给你思考一下。



Denoising AutoEncoder 模型框架

Sparse AutoEncoder

为了在学习输入样本表示的时候可以得到稀疏的高维抽象特征表示,Ng 等人[5]在原来的损失函数中加入了一个控制稀疏化的正则项。稀疏约束能迫使 encoder 的各层只有部分神经元被激活,从而将样本映射成低维稀疏特征向量。


具体来说,如果单个神经元被激活的概率很小,则可认为该网络具有稀疏性。神经元是否被激活可以看做服从概率的伯努利分布。因此可以使用 KL 散度来衡量神经元被激活的概率ρ^与期望概率ρ之间的 loss:



通过将 D_KL 加入到 AutoEncoder 的目标函数中,即可实现对神经网络稀疏性的约束。另外,还有一种方法就是对神经网络各层的输出加入 L1 约束。

CNN/LSTM AutoEncoder

其实无论是 Convolutional Autoencoder[6]、 Recursive Autoencoder 还是 LSTM Autoencoder[7]等等,思路都是将传统 NN 网络的结构融入到 AutoEncoder 中。


以 LSTM AutoEncoder 为例,目标是针对输入的样本序列学习得到抽象特征 z。因此 encoder 部分是输入一个样本序列输出抽象特征 z,采用如下的 Many-to-one LSTM;而 decoder 部分则是根据抽象特征 z,重构出序列,采用如下的 One-to-many LSTM。



将传统 NN 网络的结构引入 AutoEncoder 其实更多是一个大概的思想,具体实现的时候,编码器和解码器都是不固定的,可选的有 CNN/RNN/双向 RNN/LSTM/GRU 等等,而且可以根据需要自由组合。

Variational AutoEncoder

Vairational AutoEncoder(VAE)是 Kingma 等人与 2014 年提出。VAE 比较大的不同点在于:VAE 不再将输入 x 映射到一个固定的抽象特征 z 上,而是假设样本 x 的抽象特征 z 服从(μ,σ^2)的正态分布,然后再通过分布生成抽象特征 z。最后基于 z 通过 decoder 得到输出。模型框架如下图所示:



由于抽象特征 z 是从正态分布采样生成而来,因此 VAE 的 encoder 部分是一个生成模型,然后再结合 decoder 来实现重构保证信息没有丢失。VAE 是一个里程碑式的研究成果,倒不是因为他是一个效果多么好的生成模型,主要是提供了一个结合概率图的思路来增强模型的鲁棒性。后续有很多基于 VAE 的扩展,包括 infoVAE、betaVAE 和 factorVAE 等。

Adversarial AutoEncoder

既然说到生成模型引入 AutoEncoder,那必定也少不了将 GAN 的思路引入 AutoEncoder[9],也取得了不错的效果。


对抗自编码器的网络结构主要分成两大部分:自编码部分(上半部分)、GAN 判别网络(下半部分)。整个框架也就是 GAN 和 AutoEncoder 框架二者的结合。训练过程分成两个阶段:首先是样本重构阶段,通过梯度下降更新自编码器 encoder 部分、以及 decoder 的参数、使得重构损失函数最小化;然后是正则化约束阶段,交替更新判别网络参数和生成网络(encoder 部分)参数以此提高 encoder 部分混淆判别网络的能力。


一旦训练完毕,自编码器的 encoder 部分便学习到了从样本数据 x 到抽象特征 z 的映射关系。


参考文献

[1] Auto-association by multilayer perceptrons and singular value decomposition, Bourlard etc, 1988


[2] Reducing the dimensionality of data with neural networks, Geoffrey Hinton etc, 2006


[3] Extracting and composing robust features with denoising autoencoders, Pascal Vincent etc, 2008


[4] Contractive auto-encoders: Explicit invariance during feature extraction, Rifai S etc, 2011


[5] Sparse autoencoder, Andrew Ng, etc, 2011


[6] Stacked Convolutional Auto-Encoders for Hierarchical Feature, Jonathan Masci, Jurgen Schmidhuber etc, 2011


[7] Unsupervised Learning of Video Representations using LSTMs, Nitish Srivastava etc, 2015


[8] Auto-encoding variational bayes, Diederik Kingma etc, ICLR 2014


[9] Adversarial Autoencoders, Alireza Makhzani, Ian Goodfellow etc, 2015


本文授权转载自知乎专栏“深度推荐系统”。原文链接:https://zhuanlan.zhihu.com/p/68903857


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2019-08-22 13:0012131

评论

发布
暂无评论
发现更多内容

k8s+Docker部署方法

Java你猿哥

Java Docker k8s ssm 架构师

鲸鸿动能广告接入如何高效变现流量?

HMS Core

HMS Core

零信任是什么意思?与堡垒机有什么区别?

行云管家

网络安全 堡垒机 零信任

在Bamboo上怎么使用iOS的单元测试 | 京东云技术团队

京东科技开发者

ios 单元测试 代码覆盖率 Bamboo 企业号 5 月 PK 榜

阿里官方上线!号称Java面试八股文天花板(2023最新版)首次开源

Java你猿哥

Java redis Spring Boot JVM java面试

构建万物互联,华为云IoT+鸿蒙重燃物体感知

华为云开发者联盟

鸿蒙 物联网 华为云 华为云开发者联盟 企业号 5 月 PK 榜

如何选择正确的压缩方式?

ScaleFlux

智能硬件 数据压缩 计算存储 NVMeSSD

硬核!阿里最新出品架构核心场景实战手册,解决99%的架构问题

Java你猿哥

微服务 架构设计 架构师 架构场景实战 微服务实战

MySQL百万数据深度分页优化思路分析

Java你猿哥

Java MySQL 数据库 ssm 优化技术

基于图神经网络的推荐算法

TiAmo

神经网络 算法 推荐算法

Java并发编程必备:分布式锁的选型和性能对比

做梦都在改BUG

Java 数据库 分布式锁

用户分享 | Dockquery,一个国产数据库客户端的初体验

BinTools图尔兹

用户体验 国产数据库工具

开源之夏 2023 | 与 Databend 一同探索云数仓的魅力

Databend

一路同行,端点科技与海尔集团相伴十年的数字之旅

科技热闻

Webpack5构建性能优化:构建耗时从150s到60s再到10s | 京东云技术团队

京东科技开发者

性能优化 webpack webpack-tapable 企业号 5 月 PK 榜

本周日直播,全链路数据治理实践论坛开放报名

阿里云大数据AI技术

大数据 数据治理

震撼来袭!最具中国特色的微服务组件:新一代SpringCloud Alibaba

做梦都在改BUG

Java 架构 微服务 Spring Cloud spring cloud alibaba

牛掰!阿里架构师熬夜肝了一份JVM必知必会,哪里不会查哪里

做梦都在改BUG

Java 性能优化 JVM

AI 大底座,大模型时代的答卷

百度Geek说

人工智能 百度 文心一言 企业号 5 月 PK 榜

Redis和MySQL扛不住,B站分布式存储系统如何演进?

Java你猿哥

Java MySQL redis ssm kv

如何选择最优权限框架?Sa-Token 和 Shiro 对比

做梦都在改BUG

shiro Sa-Token

责任链模式在复杂数据处理场景中的实战

阿里技术

设计模式 技术实践

重磅发布!阿里巴巴专家亲自撰写,Dubbo 3.0 分布式实战(彩印版)

做梦都在改BUG

Java 分布式 微服务 dubbo

阿里全新推出:微服务突击手册,把所有操作都写出来了|超清PDF

做梦都在改BUG

Java 架构 微服务 Spring Cloud spring cloud alibaba

独家巨献!阿里专家兼Github贡献者,整理的SpringBoot入门到成神

做梦都在改BUG

Java spring 架构 微服务 Spring Boot

云数据库技术沙龙|多云多源下的数据复制技术解读-NineData

NineData

MySQL Clickhouse 数据管理 多云多源 数据存取

精选!字节大佬带你一周刷完Java面试八股文,比啃书效果好多了

Java你猿哥

Java 算法 ssm java面试 java知识点

Java 面试八股文合集:涵盖大厂必考的核心知识点

采菊东篱下

Java 程序员 面试

一周吃透Java面试八股文(2023最新整理)

Java你猿哥

Java kafka Spring Boot JVM java面试

来了!昇腾MindStudio全流程工具链分论坛精彩回顾,助力高效开发和迁移效率提升

科技热闻

从浏览器输入域名开始分析DNS解析过程

华为云开发者联盟

开发 华为云 DNS 华为云开发者联盟 企业号 5 月 PK 榜

一文看懂AutoEncoder模型演进图谱_AI&大模型_深度传送门_InfoQ精选文章