文章目录
- 概述
- 经典算法
- 自回归模型(Autoregressive model)
- 变分自编码器(VAE)
- 生成对抗网络(GAN)
- 扩散模型(Diffusion model)
- 总结
- 应用
概述
深度生成模型是一类使用深度学习技术构建的模型,能够在给定一些数据后生成新的、类似的数据。
经典算法
自回归模型(Autoregressive model)
- 什么是自回归模型
如果统计模型根据过去的值预测未来值,则它是自回归的。
- 特点
(1)根据过去的值预测未来的值。
(2)隐含的假设未来将与过去相似。 - 优点
所需数据不多,可以根据自身变量数列来预测。 - 缺点
(1)必须是自相关,且自相关系数是关键。如果小于 0.5,则极不准确,不宜使用。
(2)自回归只能适用于预测与自身前期相关的现象,即受自身历史因素影响较大的现象;对于受社会因素影响较大的现象,不宜采用自回归。
这句话本质是说,只能用于预测这种情况:当前状态与自身历史状态有关且受该影响较大。
- 自回归模型应用
(1)NLP 生成:自回归建模是大型语言模型(LLM)的重要组成部分。
(2)图像生成:自回归允许深度学习模型通过分析有限的信息来生成图像。
(3)时间序列预测:自回归模型有助于预测时间序列事件的可能性。天气预报和股票等等
变分自编码器(VAE)
- 什么是变分自编码器
变分自编码器(VAE)是基于变分贝叶斯(VB)推断的生成式网络结构。
传统的自编码器模型主要由两部分构成:编码器(encoder)和解码器(decoder)。
对于自编码器的详细描述可以看《内容安全复习 10 - 异常检测》。
下面用两张图描述传统自编码器和变分自编码器的区别。
可以看到,不同与传统自编码器用一些单值描述特征,变分自编码器选择用概率分布的方式。从分布中取接近的值得到的重构输出是类似的。
- 特点
(1)以概率的方式描述对潜在空间的观察。
(2)数据生成方面有巨大价值。 - 优点
(1)通过编码和解码过程,有良好的数据生成能力。
(2)在统计上具有更好的解释性,可提供数据的概率分布。 - 缺点
(1)生成样本可能较为模糊,质量较低。
(2)设计复杂数学计算,增加难度。
生成对抗网络(GAN)
-
什么是生成对抗网络
生成对抗网络是一种深度学习架构。该架构训练两个神经网络相互竞争,从而从给定的训练数据集生成更真实的新数据。 -
思想
个人感觉就是:
网络1是蓝框,负责生成更加逼真的fake图像,ta的目的是扰乱;网络2是红框,负责判别real和fake,ta的目的是防止扰乱。
理解成一个攻击,一个防守。
这两者互相竞争,从而进行对抗,达到更好的训练结果。
-
特点
(1)一个网络通过获取输入数据样本并尽可能对其进行修改来生成新数据。
(2)另一个网络尝试预测生成的数据输出是否属于原始数据集。 -
流程步骤
(1)Step 1:生成一个生成器和一个判别器,初始化。
(2)Step 2:固定生成器,判别器对原始数据集合生成器生成的样本不断打分、更新。
(3)Step 3:固定判别器,生成器更新,生成新的 fake图像,试图欺骗判别器。 -
目标函数
(1) D ( x ) D(x) D(x) 表示判别器认为 x x x 是 real 的概率,而 1 − D ( G ( x z ) ) 1-D(G(xz)) 1−D(G(xz)) 表示判别器认为合成样本 G ( z ) G(z) G(z) 是 fake 的概率。
(2)判别器希望判断 x x x 是 real,合成样本 G ( z ) G(z) G(z) 是 fake 的概率最大化;生成器反之。简单来说,生成模型要最小化判别模型的准确率;判别模型要最大化自己的准确率。
换句话说,我们希望找到一个生成器G,它可以生成与真实数据相似的数据,同时我们也希望找到一个判别器D,可以准确地区分真实数据和生成数据。
(3)最终理想状态达到一个动态平衡(纳什均衡),此时 G 生成了和真实样本一样的结果,D 再也无法正确判别,准确率为 50%。约等于乱猜。
-
优点
(1)梯度计算只用到了反向传播,不用马尔科夫链。
(2)训练时不需要对隐变量做推断。
(3)理论上只要是可微分函数都能用于构建 D 和 G,因此能与深度学习结合来学习深度产生式网络。
(4)G 的更新不是直接取自原样本,而是 D 的反传梯度。 -
缺点
(1)生成器的分布没有显式的表达。
(2)训练难度大,D 和 G 需要同步。
扩散模型(Diffusion model)
-
什么是扩散模型
扩散模型的原理类似给图片去噪,通过学习给一张图片去噪的过程来理解有意义的图像是如何生成。
就是模拟扩散(从有序到无序的过程),训练一个神经网络来逆这个过程,从而生成数据。
-
优点
(1)高质量的生成。
(2)强大的容量模型。性能强
(3)良好的理论基础。 -
缺点
(1)计算成本高。
(2)训练过程复杂。
(3)样本多样性的局限性。`模型可能倾向于生成相似的样本,降低了多样性。
总结
生成模型的数据生成过程,可以看成是将一个先验分布的采样点 Z 变换成数据分布的采样点 X 的过程,下图是各个模型的示意图。
应用
(1)文本生成。
(2)图像生成。
(3)视频生成。
(4)图像翻译。
(5)人脸属性编辑。
(6)图片质量增强。
(7)药物发现。