机器学习课程学习周报十五
文章目录
- 机器学习课程学习周报十五
-
- 摘要
- Abstract
- 一、机器学习部分
-
-
- 统计推断与贝叶斯推断
-
- GMM和EM算法补充
-
- 马尔可夫链蒙特卡罗法
-
- 3.1 蒙特卡罗法
- 3.2 马尔可夫链
- 3.3 Diffusion模型中的马尔可夫链
-
- 总结
摘要
本周的学习涵盖了统计推断和贝叶斯推断的基本概念,深入探讨了高斯混合模型中的EM算法及其有效性证明。此外,还介绍了马尔可夫链蒙特卡罗方法中的蒙特卡罗法及其应用。最后,通过Diffusion模型中的马尔可夫链,理解了如何实现图像生成的降噪过程。
Abstract
This week's study covered fundamental concepts of statistical and Bayesian inference, with an in-depth exploration of the EM algorithm in Gaussian Mixture Models and its effectiveness. Additionally, the Monte Carlo method within Markov Chain Monte Carlo techniques was introduced and applied. Finally, the denoising process in image generation was understood through the Markov chain in the Diffusion model.
一、机器学习部分
1. 统计推断与贝叶斯推断
统计推断 (Statistical Inference)指的是根据观察样本去推断总体特征(即模型/分布的参数),它的方法包括参数估计和假设检验等。
贝叶斯推断 (Bayesian Inference)是一种基于贝叶斯定理的统计推断方法,它的核心思想是要建立对参数的主观信念("验"),并要根据观察去完成从初始信念("先验")到校正信念("后验")的更新。这种主观信念是参数的分布,而推断最终还要从后验分布中选择一个确定的参数值。
例如:如果取分布最高点的对应参数值(通常被称为后验众数),就称为极大后验估计(MAP, Maximum A Posteriori)。
从贝叶斯公式来看:
p ( z ∣ x ) = p ( z ) ⋅ p ( x ∣ z ) p ( x ) p(z|x) = p(z) \cdot \frac{{p(x|z)}}{{p(x)}} p(z∣x)=p(z)⋅p(x)p(x∣z)
z z z是要估计的参数(也包括隐变量), p ( z ) p(z) p(z)是先验分布(初始信念), p ( z ∣ x ) p(z|x) p(z∣x)是后验分布(校正信念)。这种校正是通过在先验上乘了一个校正因子 p ( x ∣ z ) p ( x ) \frac{{p(x|z)}}{{p(x)}} p(x)p(x∣z)得到的。其中,分子 p ( x ∣ z ) {p(x|z)} p(x∣z)是条件似然,是校正因子的关键部分,决定着先验到后验的形状变化;而分母 p ( x ) {p(x)} p(x)是边际似然,又叫证据(因为只跟观察 x x x有关),它与我们关心的 z z z无关,因此也常被称为归一化因子(因为就算我们不去管分母,等号左右的函数形状也已经一致,只需要把等号右边归一化到积分为1的概率分布即可。不过实际上,归一化也并不好计算,因为显然我们不知道 x x x的分布,而积分 p ( x ) = ∫ z p ( x ∣ z ) d z p(x) = \int_z {p(x|z)dz} p(x)=∫zp(x∣z)dz又是难以计算的,许多方法都试图绕过计算归一化因子这个点,如GAN模型。
2. GMM和EM算法补充
为了证明EM算法的迭代是有效的,先引入凸函数和琴生不等式的预备知识。
利用GMM中的概率表达式代入EM算法中。
EM算法的第一步:E-step求期望
EM算法的第二步:M-step求参数的最大(条件极值,使用拉格朗日乘数法)
3. 马尔可夫链蒙特卡罗法
3.1 蒙特卡罗法
蒙特卡罗法 (Monte Carlo method ),也称统计模拟方法,是通过从概率模型的随机抽样进行近似数值计算的方法。统计学和机器学习的目的是基于数据对概率分布的特征进行推断,蒙特卡罗法要解决的问题是,假设概率分布的定义已知,通过抽样或者概率分布的随机样本,并通过得到的随机样本对概率分布的特征进行分析。比如,从样本得到经验分布,从而估计总体分布;或者从样本计算出样本均值,从而估计总体期望,所以蒙特卡罗法的核心是随机抽样 (random sampling)。
一般的蒙特卡罗法有直接抽样法、接受-拒绝抽样法、重要性抽样法等。接受-拒绝抽样法、重要性抽样法适合于概率密度函数复杂(如密度函数含有多个变量,各变量相互不独立,密度函数形式复杂),不能直接抽样的情况。
这里介绍接受-拒绝抽样法 (accept-reject sampling method ),随机变量为 x x x,其概率密度函数为 p ( x ) p(x) p(x)。目的是得到该概率分布的随机样本,以对这个概率分布进行分析。基本思想如下:若 p ( x ) p(x) p(x)不可以直接抽样,找一个可以直接抽样的分布,称为建议分布 (proposal distribution )。假设 q ( x ) q(x) q(x)是建议分布的概率密度函数,并且有 q ( x ) q(x) q(x)的 c c c倍一定大于等于 p ( x ) p(x) p(x),其中 c > 0 c > 0 c>0。按照 q ( x ) q(x) q(x)进行抽样,假设得到的结果是 x ∗ {x^*} x∗,再按照 p ( x ∗ ) c q ( x ∗ ) \frac{{p({x^*})}}{{cq({x^*})}} cq(x∗)p(x∗)的比例随机决定是否接受 x ∗ {x^*} x∗。
直观上,落到 p ( x ∗ ) p({x^*}) p(x∗)范围内的就接受(蓝色),落到 p ( x ∗ ) p({x^*}) p(x∗)范围外的就决绝(红色)。接受-拒绝法实际是按照 p ( x ) p(x) p(x)的涵盖面积(或涵盖体积)占 c q ( x ) {cq({x})} cq(x)的涵盖面积(或涵盖体积)的比例进行抽样。
接受拒绝法的优点是很容易实现,缺点是效率可能不高。如果 p ( x ) p(x) p(x)的涵盖体积占 c q ( x ) {cq({x})} cq(x)的涵盖体积的比例很低,就会导致拒绝的比例很高,抽样的效率很低。并且落入蓝色范围内的样本不是一定会被接受,还要经过随机检验才会被接受。
3.2 马尔可夫链
考虑一个随机变量的序列 X = { X 0 , X 1 , ⋯ , X t , ⋯ } X = \left\{ {{X_0},{X_1}, \cdots ,{X_t}, \cdots } \right\} X={X0,X1,⋯,Xt,⋯},这里 X t {{X_t}} Xt表示时刻 t t t的随机变量, t = 0 , 1 , 2 , ⋯ t = 0,1,2, \cdots t=0,1,2,⋯。每个随机变量 X t {{X_t}} Xt的取值集合相同,称为状态空间,表示为 S S S。随机变量可以是离散的,也可以是连续的。以上随机变量的序列构成随机过程 (stochastic process)。
假设在时刻0的随机变量 X 0 {{X_0}} X0遵循概率分布 P ( X 0 ) = π 0 P\left( {{X_0}} \right) = {\pi 0} P(X0)=π0,称为初始状态分布。在某个时刻 t ≥ 1 t \ge 1 t≥1的随机变量 X t {{X_t}} Xt与前一个时刻的随机变量 X t − 1 {X{t - 1}} Xt−1之间有条件分布 P ( X t ∣ X t − 1 ) P({X_t}|{X_{t - 1}}) P(Xt∣Xt−1),如果 X t {X_t} Xt只依赖于 X t − 1 {X_{t - 1}} Xt−1,而不依赖于过去的随机变量 { X 0 , X 1 , ⋯ , X t − 2 } \left\{ {{X_0},{X_1}, \cdots ,{X_{t - 2}}} \right\} {X0,X1,⋯,Xt−2},这一性质称为马尔可夫性,即:
P ( X t ∣ X 0 , X 1 , ⋯ , X t − 1 ) = P ( X t ∣ X t − 1 ) , t = 1 , 2 , ⋯ P({X_t}|{X_0},{X_1}, \cdots ,{X_{t - 1}}) = P({X_t}|{X_{t - 1}}),t = 1,2, \cdots P(Xt∣X0,X1,⋯,Xt−1)=P(Xt∣Xt−1),t=1,2,⋯
具有马尔可夫性的随机序列 X = { X 0 , X 1 , ⋯ , X t , ⋯ } X = \left\{ {{X_0},{X_1}, \cdots ,{X_t}, \cdots } \right\} X={X0,X1,⋯,Xt,⋯}称为马尔可夫链 (Markov chain ),或马尔可夫过程 (Markov process )。条件概率分布 P ( X t ∣ X t − 1 ) P({X_t}|{X_{t - 1}}) P(Xt∣Xt−1)称为马尔可夫链的转移概率分布。转移概率分布决定了马尔可夫链的特性。
马尔可夫的直观解释是"未来只依赖于现在(假设现在已知),而与过去无关"。这个假设在许多应用中是合理的。
若转移概率分布 P ( X t ∣ X t − 1 ) P({X_t}|{X_{t - 1}}) P(Xt∣Xt−1)与 t t t无关,即
P ( X t + s ∣ X t − 1 + s ) = P ( X t ∣ X t − 1 ) , t = 1 , 2 , ⋯ , s = 1 , 2 , ⋯ P({X_{t + s}}|{X_{t - 1 + s}}) = P({X_t}|{X_{t - 1}}),t = 1,2, \cdots ,s = 1,2, \cdots P(Xt+s∣Xt−1+s)=P(Xt∣Xt−1),t=1,2,⋯,s=1,2,⋯
则称该马尔可夫链为时间齐次的马尔可夫链 (time homogenous Markov chain)
以上定义的是一阶马尔可夫链,可以扩展到n阶马尔可夫链,满足n阶马尔可夫性
P ( X t ∣ X 0 , X 1 , ⋯ , X t − 2 , X t − 1 ) = P ( X t ∣ X t − n , ⋯ , X t − 2 , X t − 1 ) P({X_t}|{X_0},{X_1}, \cdots ,{X_{t - 2}},{X_{t - 1}}) = P({X_t}|{X_{t - n}}, \cdots ,{X_{t - 2}},{X_{t - 1}}) P(Xt∣X0,X1,⋯,Xt−2,Xt−1)=P(Xt∣Xt−n,⋯,Xt−2,Xt−1)
3.3 Diffusion模型中的马尔可夫链
对于计算机而言,实现图像生成,一副图像就是一个 H × W × C H \times W \times C H×W×C维的矩阵,如何生成这样的一个矩阵?Diffusion的做法是先随机创建一个噪点图,有没有可能让一幅噪点图变成"米老鼠"呢?显然想要做到这点似乎非常困难。
我们换个思路:现在假如我们已经有一组噪点图 X T {X_T} XT和"米老鼠" X 0 {X_0} X0之间的过渡图片,如下:
从直觉上来说,将过渡序列中的上一张图片转变成下一张图片,显然要比直接从噪点图 变成 "米老鼠"要容易得多。这个直观的认知其实是Diffusion模型区别于其他生成模型(如GAN)的特别之处。
由于这个序列当中,每一张图都比上一张图要更清晰(噪点更少),因此我们称这个过程为降噪 (denoise )。 X t → X t − 1 {X_t} \to {X_{t - 1}} Xt→Xt−1的降噪过程,在概率论中可以通过采样实现。为了从 X t {X_{t}} Xt采样得到 X t − 1 {X_{t - 1}} Xt−1,我们需要知道条件概率:
q ( x t − 1 ∣ x t ) q({x_{t - 1}}|{x_t}) q(xt−1∣xt)
假如任意 t = 1 , 2 , ⋯ , T t = 1,2, \cdots ,T t=1,2,⋯,T的 q ( x t − 1 ∣ x t ) q({x_{t - 1}}|{x_t}) q(xt−1∣xt)都是已知的。我们记号 ∼ \sim ∼表示"依概率采样",那么将噪点图 X T {X_T} XT转变为"米老鼠" X 0 {X_0} X0的整个采样过程,可以形式化表示为,给定噪点图 X T {X_T} XT:
X T − 1 ∼ q ( x T − 1 ∣ X T ) ⋯ X 2 ∼ q ( x 2 ∣ X 3 ) , X 1 ∼ q ( x 1 ∣ X 2 ) , X 0 ∼ q ( x 0 ∣ X 1 ) {X_{T - 1}} \sim q({x_{T - 1}}|{X_T}) \cdots {X_2} \sim q({x_2}|{X_3}),{X_1} \sim q({x_1}|{X_2}),{X_0} \sim q({x_0}|{X_1}) XT−1∼q(xT−1∣XT)⋯X2∼q(x2∣X3),X1∼q(x1∣X2),X0∼q(x0∣X1)
整个采样过程,构成了一个马尔可夫链,假如我们有了 q ( x t − 1 ∣ x t ) q({x_{t - 1}}|{x_t}) q(xt−1∣xt)这个转移概率,就能按步骤将噪点图转化为"米老鼠",所以问题是如何求出 q ( x t − 1 ∣ x t ) q({x_{t - 1}}|{x_t}) q(xt−1∣xt)这个函数?答案就是机器学习。
机器学习的训练数据是什么?虽然"降噪"似乎很难,但是添加噪点却挺容易。比如给定一张原始图片 X 0 {X_0} X0我们总可以通过朝原始图增加噪点生成图片 X 1 {X_1} X1,然后进一步增加噪点,直到图片变成一幅完全随机的噪点图 X T {X_{T}} XT。这个过程也是通过随机过程的采样来实现,我们记这个随机过程对应的"转移概率"是 q ( x t ∣ x t − 1 ) q({x_t}|{x_{t - 1}}) q(xt∣xt−1),那么整个添加噪点的过程就可以形式化表示为,给定米老鼠图 X 0 {X_0} X0:
X 1 ∼ q ( x 1 ∣ X 0 ) , X 2 ∼ q ( x 2 ∣ X 1 ) , X 3 ∼ q ( x 3 ∣ X 2 ) , ⋯ , X T ∼ q ( x T ∣ X T − 1 ) {X_1} \sim q({x_1}|{X_0}),{X_2} \sim q({x_2}|{X_1}),{X_3} \sim q({x_3}|{X_2}), \cdots ,{X_T} \sim q({x_T}|{X_{T - 1}}) X1∼q(x1∣X0),X2∼q(x2∣X1),X3∼q(x3∣X2),⋯,XT∼q(xT∣XT−1)
给定一个图片数据集,我们对其中的任一图片进行一次这种采样操作,我们就得到了一组连续过渡的图片序列,也就是一条训练数据。
总结
本周完善了上周学习的EM算法,并且开始学习马尔可夫链蒙特卡罗法,马尔可夫链在Diffusion模型中有特别重要的应用。接来的一周将从理论继续学习马尔可夫链蒙特卡罗法,并结合着实际应用中的Diffusion模型进行参照。