变分自编码器VAE自然环境中的数据测控技术秘密揭晓
其实真正的VAE,跟很多教程说的还真不大一样,很多教程写了一大通,都没有把模型的要点写出来。于是,我决定通过下面的文字,来把VAE初步讲清楚。
过去虽然没有细看,但我一直觉得变分自编码器(Variational Auto-Encoder, VAE)是个好东西。趁着最近对概率图模型产生了兴趣,我决定也争取把VAE搞懂。于是乎,我照样翻了网上很多资料,无一例外发现都很含糊,主要感觉是公式写了一大通,还迷迷糊糊的,最终好不容易觉得看懂了,再去看看实现的代码,又感觉实现代码跟理论完全不是一回事啊。
终于,在东拼西凑再加上我这段时间对概率模型的一些积累,并反复对比原论文Auto-Encoding Variational Bayes后,我觉得我应该是想明白了。
分布变换
通常我们会拿VAE跟GAN比较,它们两个的目标基本是一致的——希望构建一个从隐变量Z生成目标数据X的模型,但是实现上有所不同。更准确地讲,它们是假设了服从某些常见的分布(比如正态分布或均匀分布),然后希望训练一个模型X=g(Z),这个模型能够将原来的概率分布映射到训练集的概率分布,也就是说,它们的目的都是进行分布之间的变换。
生成模型的问题就在于判断生成分布与真实分布相似度,因为我们只知道两者的采样结果,不知道它们真正表达的是什么样的结构。这时,我们假设服从标准正态分布,那么我就可以从中采样得到若干个Z1,Z2,…,Zn,然后对它做变换得到X̂1=g(Z1), X̂2=g(Z2),…, X̂n=g(Zn),我们怎么判断这个通过f构造出来数据集,它们是否和我们的目标数据集相同呢?
有读者说不是用KL散度吗?当然不行,因为KL散度是根据两个概率分布表达式来算它们相似度用的,而目前我们并不知道它们真正表达的是什么样的结构。我们只有一批来自构造后的数据{X̂1,X̂2,…,X̂n}还有来自真实distribution采样的数据{X1,X2,…,Xn}(也就是我们想要生成的话题集合)。而且,我们只有样本本身,没有任何关于这些样本可能属于哪个特定类别或潜在空间中的信息,所以当然也就没有方法计算KL散度。
虽然遇到了困难,但还是要想办法解决问题。我看到GAN直接粗犷地使用神经网络来训练出一种合适距离函数,这让我惊讶不已。而VAE则采用了一种精巧又迂回的手法来解决这一难题。
VAE慢谈
这一部分,我们先回顾一般教程是如何介绍VAE,然后再探究其中有什么问题,接着自然地发现了VAE真正面貌。在经典回顾中,我们有一批数据样本{X1,...,xn},其整体用x描述,如果能得到p(x)的话,那么直接根据p(x)来采样,就可以获得所有可能出现的情况(包括{x1,...xn}以外的情况),这是一个理想化但远未实际可行的情景。当这种情景变得更加具体时,我们将其改为:
这里定义的一个重要概念叫做后验q(z|x),它代表给定观测x情况下z向量值得期望值。在实际操作中,这是一个多元高斯函数,其形式如下:
[ q(z|x)=N(\mu(x),\sigma^2I) ]
这里μ(x)和σ^2分别表示均值和方差。但是在现实世界中,每个观测x都会配备一个专属参数组成多元高斯函数,从而使得每次重建过程都尽可能接近原始输入。这意味着对于每个新的输入x',当你尝试重建时,你会基于该输入创建自己的参数组成多元高斯函数,以便输出最接近原始输入x'的事物。如果你让每一次重建过程都依赖同一组固定的参数,那么你的重建结果将无法捕捉到新输入中的变化性质,因此需要调整这组参数以适应不同的输入情况,即使用不同的专属参数组成多元高斯函数。这也是为什么在许多教程或者文档中提到的“引入噪声”或“增加随机性”的概念并不全然正确,因为这些动作实际上是在利用神经网络拟合出满足条件下的最佳噪声水平,而非简单增加随机性。此外,这里的关键在于学习出的后验q(z|x)与先验p(z)之间存在联系,使得vae能够同时优化解码器g和编码器q,同时保持解码器输出与编码器推断出的z之间的一致性,从而达到最优解析释能力。
最后,对于处理这些抽象数学上的挑战,比如如何有效管理无数潜在空间中的可能性,以及如何保证整个系统逻辑清晰、功能健壮等等技术挑战,用到的工具之一就是深层神经网络特别是在CNNs或者RNNs领域内表现出了极大的潜力以及灵活性。
总结一下:vaes之所以能成为强大的分析工具,是因为它既具有自动特征学习能力,同时也具备执行任务级别决策支持系统功能。由于vaes能够以高度压缩方式存储大量信息,同时提供快速查询访问路径,所以它被广泛应用于各种场景,如图像识别、语音识别、自然语言处理等领域。在未来发展趋势预计仍旧如此下去,将继续深入探索vaes及其衍生技术在各类任务上的应用前景。
最后,让我们的理解更加清晰:VaEs通过引入噪声增强其性能,不仅提升了模式分离效果,而且促进了解码过程质量提高,从而进一步提升整个系统效能。此外,由于VaEs自身拥有良好的扩展性,可以轻松适用于各种类型的大规模、高维稠密性的复杂问题,使其成为现代AI研究领域不可或缺的一个工具链。本篇文章旨在帮助读者理解Varitional Autoencoders工作原理,并为那些正在寻找相关知识的人提供指导,让他们能够更好地掌握此领域内最新研究动态及应用前沿技术。