生成模型概率基础相关学习杂记
2026/6/15归档:这是很早之前的论文阅读笔记了。关于变分推断、扩散模型等比较复杂的知识记到本子上了(当时还没搭博客)
玻尔兹曼分布#
有N个粒子,M种能级,每个粒子处于每个能级的概率均等。在总能量、总数目一定的情况下,能量分布直方图最可能处于的分布,就是玻尔兹曼分布,表现为能量越大粒子数目越少。证明方法是使用拉格朗日数乘法。
最终得到了概率分布 ,也就是softmax函数的形式。
基于能量的模型#
让神经网络给每个输入进行能量评估(学习 ),如果越可能出现,能量就越低。
如果要得到概率,最难的地方在于分母的归一化值。能量模型用近似技术实现。
目标是采样出概率密度更大的那些样本。采用“朗之万动力学”:和梯度下降差不多,求概率密度的梯度,迭代得到概率最大/最小的点。在已经知道是玻尔兹曼分布、知道 的情况下,可以求概率密度对于x的导数,得到梯度,然后更新x,迭代。朗之万动力学还有噪声防止局部最优。
变分推断#
用某分布(由某种参数化得到的)近似某分布,目标是最小化两个分布的KL,一通化简。这个化简非常公式化。
参考:https://www.cnblogs.com/song-lei/p/16210740.html
MCMC#
已知复杂分布 ,怎么得到采样(理解为采样1w个绘制直方图以接近 的密度函数)
一些基础知识:用某分布的CDF对服从该分布的随机变量进行变换可以得到均匀分布
蒙特卡洛方法#
计算机算法可以得到均匀分布。均匀分布经过变换可以得到任意分布。目前已经有了从均匀分布得到常见分布的的变换方法,视为可以直接得到常见分布
- 使用某可以简单采样的分布G,作为建议分布,具有密度函数g。这个分布可以是最简单的均匀分布,也可以是其他分布,最好是和目标分布f接近的,因为这样采样效率高
- 要一个缩放系数c,保证 。c太大了会导致几乎总是拒绝,要采样更多次
- 还要有一个均匀分布U(0,1)
- 从G中采样一个x,从U中采样一个值u,如果 则认为x是f的一个采样
马尔可夫方法#
大多数转移矩阵有平稳状态。所以如果知道某个分布的概率转移,则在其平稳分布上进行状态转移可以得到这个分布的采样。
具体做法是:先从某分布随便采样一个(或几个)点,然后每个点进行数次迭代,视为进入了平稳状态,后面的每次迭代就是对应分布的采样。
以上都对离散而言。连续的用kernel函数代替矩阵,但我不知道此时怎么求平稳状态。
马尔可夫方法的问题是已知平稳分布时,不能获取其转移概率。
所以有了MCMC#
已知转移概率矩阵 和平稳分布 ,关系是 。P可以有很多取法,得不到。
现在引入一个更强的条件——“细致平衡”:。
为什么说更强?满足这个条件的P的稳态分布一定是 ,但平稳分布和转移概率不一定符合细致平衡,很好证明。
MCMC的核心就是在一个已知的可收敛的Q的转移矩阵上,构建满足细致平衡的 ,此时细致平衡条件为:
对称解为 也就是 对应的马尔可夫状态转移矩阵 ,行和一定小于1,缺的部分用对角线补。
但是其实并不能用此方法构造,因为:
- 求不出来,比如分母有配分函数
- 只能用于离散的情况(矩阵形式)
- 即使1和2都克服了,可能对角线的值很大,转移概率小,收敛会很慢
就问题1和3,应该用比值(换一种构造方式);就问题2,应该用接收概率而不是显式构造矩阵;