变分自编码器VAE工控数据测控技术在自然环境中的应用原理解析
其实真正的VAE,跟很多教程说的还真不大一样,很多教程写了一大通,都没有把模型的要点写出来。于是,我决定通过下面的文字,来把VAE初步讲清楚。
过去虽然没有细看,但我一直觉得变分自编码器(Variational Auto-Encoder, VAE)是个好东西。趁着最近对概率图模型产生了兴趣,我决定也争取把VAE搞懂。于是乎,我照样翻了网上很多资料,无一例外发现都很含糊,主要感觉是公式写了一大通,还迷迷糊糊的,最终好不容易觉得看懂了,再去看看实现的代码,又感觉实现代码跟理论完全不是一回事啊。
终于,在反复对比原论文Auto-Encoding Variational Bayes后,我觉得我应该是想明白了。其实真正的VAE,与许多教程所描述的是有显著差异,许多教程写了一大堆,却未能突出模型核心要点,因此我撰写这篇文章,以期能够通过以下文字向读者初步解释VAE。
分布变换
通常,我们会将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}和来自真实之中的数据{X1, X2, … , Xn}(即我们想要生成的训练集)。然而,没有任何关于这些预测值和实际值出现频率或概率信息,所以自然也就无法计算KL散度。
尽管遇到了困难,但还是要尽可能解决的问题。GAN采用一种直接而粗犷的手段:既然没有合适方法,就干脆让神经网络自己学会算吧。而WGAN就这样诞生。在这里,请参考《互怼艺术:从零直达WGAN-GP》了解详细过程。而对于VAE,它则使用一种精致且迂回技巧:
慢谈
这一部分,我们先回顾一般教程是如何介绍VAEs,以及探究其中有什么问题,然后再自然地发现了VAEs真正面目。
经典回顾
首先,有一批原始数据样本 {Xi | i= 1 to n},用x表示整体,用p(x)表示整个整体的一个统计学意义上的“全部可能”,如果能获得p(x),那么直接基于p(x)来采样,就可以获取所有潜在可能的情况(包括除了现有 {Xi | i= 1 to n} 之外的一切可能性),这是理想化最好的生成型模式。如果能达到这样的理想状态,那么简单地利用这种理想化情况,可以推断出x给定的条件下所有潜在可能性,并基于此创建一个更为完美、全面可信赖、甚至更接近于理想化状态下的自动编码器,从而避免那些因为需要重建输入空间导致损失信息内容的问题。这是一个非常重要且高效的人工智能工具,而且它具有明确性,即使涉及大量复杂任务,如处理各种各样的图像和文本等,对于分析和理解人类行为模式也是极为有效。
但是,这个理想似乎很难实现,所以我们改变策略,将其改成考虑z用于x制定方案,并假设z遵循一定规则,比如服从标准正态法则,即p(z)=N(0,I)。如果这个计划得以实施,那么我们可以先从标准正态法则中选择一些z项,然后根据z建立一个新的方案x,该方案应满足原始计划要求并保持高质量。这是一种非常强大的创意方式,可帮助人们了解不同类型情境下的行为模式以及发展新技术解决方案。
接下来结合自编码器完成重现工作,同时保证无需丢失关键信息,再加上一系列推导最后形成完整系统框架如下:
▲ VAES传统理解
看到了什么问题吗?如果按照这个流程的话,我们根本不知道经过重新采样的每个zk是否仍然对应原来的xk,所以如果直接最小化D(X̃k,xk)^2是不科学且不可行,而事实上你会看到代码根本不会这么做。此处多次提出概念错误,由于很多教材提及过头却没展开讨论所以引起误解。但实际操作中往往与文档描述背道而驰,让人感到困惑与沮丧。那为什么现在突然又提出重新评估旧有的概念呢?
VIA初现
其实,在整个VIEM结构中,我们并未使用p(z)(先验分配函数)作为参数设置,而是在后续过程中不断调整,使其更加贴近实际需求。当具体应用时,要特别注意区分先验分配函数 p(z|x_i)、后验分配函数q(z|x_i)、以及隐层激活权重w_ki,其中q代表当前系统已知知识集合r代表预测输出结果集合t代表时间序列依赖关系s代表空间依赖关系c代表类别标签a代表属性标签b代表事件触发条件d代表动作触发条件e代表情感标签f代表用户行为g表示机器学习算法h表示深度学习算法i表示机器学习算法j表示深度学习算法k 表示推荐系统l 表示社交网络m 表示数据库n 表示自然语言处理o 表示对象检测p 表示语音识别q 表示图片分类r 图片识别s 图像分类t 时间序列分析u 用户界面v 视觉识别w 文本挖掘
接着进一步研究发现当设计正确时,每个xi都伴随着自己的独立、高维、多元正态前景区域,当设计失败时,则必须尝试修补缺陷以恢复正常功能。在实际应用场景中,大量相关知识积累已经促进了技术创新,为数百万人的生活带来了便利。但对于被忽视或者低估的事物来说,这同样意味着更多挑战需要克服——例如如何平衡个人隐私保护与社会共享价值,以及如何有效管理大量用户生产出的内容?
综述
总结一下,本节内容阐述了VIA及其重要性,同时指出了传统教学材料中的误解,以清晰展示VIEM结构内涵,并揭露存在问题的地方。我认为理解这些基础概念至关重要,因为它们提供了解决实际问题的心智工具和逻辑框架。此外,将理论知识转化为实践技能尤为关键,因它赋予人工智能领域众多专家寻求优质解决方案所需行动能力。本节内容旨在增强读者对于VIEM及其应用领域广泛影响力的认识,并鼓励他们探索进一步阅读以扩展他们专业知识范围。