写点什么

一文看懂 AutoEncoder 模型演进图谱

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

    阅读完需:约 9 分钟

一文看懂AutoEncoder模型演进图谱

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

本文来自“深度推荐系统”专栏,这个系列将介绍在深度学习的强力驱动下,给推荐系统工业界所带来的最前沿的变化。本文则结合作者在工作中的经验总结,着重于串讲 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


公众号推荐:

AIGC 技术正以惊人的速度重塑着创新的边界,InfoQ 首期《大模型领航者AIGC实践案例集锦》电子书,深度对话 30 位国内顶尖大模型专家,洞悉大模型技术前沿与未来趋势,精选 10 余个行业一线实践案例,全面展示大模型在多个垂直行业的应用成果,同时,揭秘全球热门大模型效果,为创业者、开发者提供决策支持和选型参考。关注「AI前线」,回复「领航者」免费获取电子书。

2019-08-22 13:0012371

评论

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

多模态对比语言图像预训练CLIP:打破语言与视觉的界限

汀丶人工智能

人工智能 自然语言处理 计算机视觉 GPT 多模态大模型

ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑

汀丶人工智能

Elastic Search 搜索系统

Downie 4 for Mac(视频下载软件) 4.6.33和谐直装版

mac

视频下载工具 Downie4 苹果mac Windows软件

第18期 | GPTSecurity周报

云起无垠

中企出海 | 中建材、红狮、华润、华新都在做的事儿!

用友BIP

中企出海

独家特性 | 腾讯云大数据ES:一站式索引全托管,自治索引大揭秘!

腾讯云大数据

百度AICA首席AI架构师培养计划第七期毕业,大模型深入产业见成果

飞桨PaddlePaddle

架构师 大模型 AICA

浅析Redis大Key | 京东云技术团队

京东科技开发者

redis key redis 底层原理 企业号10月PK榜

专业好用的多媒体播放器Infuse 最新版中文

胖墩儿不胖y

Mac软件 多媒体播放器

苹果mac电脑矢量插画设计推荐 Illustrator 2024 补丁激活版中文

mac大玩家j

Mac软件 矢量设计 Mac软件矢量工具

3D模型如何添加金属贴图?

3D建模设计

材质 纹理 金属贴图

数字化转型如何落地?

优秀

数字化转型 数字化业务转型

可视化(Visual) SQL初探

数新网络官方账号

数据库 sql #数据库

企业内部外网向内网传输文件如何实现高效安全?

镭速

内外网数据交换 内部外网隔离

如何选择安全又可靠的文件数据同步软件?

镭速

数据实时同步

企业通关必备,iPaaS应该这样搭建

RestCloud

应用集成 ipaas 应用与数据集成

后期云端制作:激发影视行业创新力的新时代

Finovy Cloud

影视制作 云渲染 后期制作

EVE-NG的环境导入IOL组件

小魏写代码

Hazelcast IMDG 概览

数新网络官方账号

数据库 #数据库

去中心化应用程序(DAPPS)开发

西安链酷科技

分布式 dapp 去中心化 交易所

用友BIP,IoT在光伏行业的应用

用友BIP

物联网 智能制造

40 + 专家齐聚共谋数据未来,StarRocks Summit 2023 议程公布!更多精彩议题等你探索...

StarRocks

数据库 OLAP StarRocks

Hadoop RPC简介

数新网络官方账号

大数据 hadoop hadoop rpc

QCN9024 with IPQ4019|Wallys Dual Band Card DR9074E: Unleash the Power of Open Source Networking

wallyslilly

IPQ4019 QCN9074

写出一个复杂的SQL步骤

程序员万金游

#数据库 #java #Mysql #SQL

涛思数据与胜软科技达成战略合作,共同赋能石油行业数字化转型

TDengine

tdengine 时序数据库

面向Three.js开发者的3D自动纹理化开发包

3D建模设计

AI 3D模型 three.js AI自动纹理

如何为模型添加光照效果?

3D建模设计

材质 纹理 光照贴图

全球业务 | 用友废钢智能判级系统在日本成功通过验收

用友BIP

废钢智能判级

代币开发工具:从 Truffle 到 Hardhat

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 NFT开发

多链多签名数字货币加密货币

西安链酷科技

区块链 软件开发 dapp 去中心化 钱包

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