Processing math: 100%

【Deep Learning】第17章 蒙特卡罗方法

Posted by Cao Zihang on December 20, 2022 Word Count: 1886

第17章 蒙特卡罗方法

随机算法可大致分为Las Vegas算法和蒙特卡罗算法

  • Las Vegas算法精确地返回一个正确答案或失败
    • 占用随机量的计算资源
  • 蒙特卡罗算法消耗固定的计算量返回具有随机大小的错误
    • 增大计算量消耗能减少随机错误

蒙特卡罗采样基础

当我们需要以较小的代价近似许多项的和或某个积分时,采样是一种灵活的选择 当无法精确计算和或积分(如具有指数数量项的和),常用蒙特卡罗采样近似 蒙特卡罗采样把和或积分视作某分布下的期望,通过估计对应的平均值近似这个期望

待估计和/积分: s=xp(x)f(x)=Ep[f(x)]s=p(x)f(x)dx=Ep[f(x)] 写成期望形式,其中p为随机变量x的概率分布或概率密度分布

通过从p中抽取n个样本x1,,xn近似s并得到一个经验平均分布 $\hat{s}{n}= \frac{1}{n}\sum\limits{i=1}^{n}f(x^{i})$

  • 无偏估计$E[\hat{s}{n}]= \frac{1}{n}\sum\limits{i=1}^{n}\mathbb{E}[f(x^{i})]= \frac{1}{n}\sum\limits_{i=1}^{n}s=s$
  • 由大数定律,若xii.i.d. limnˆsn=s
  • 由中心极限定理$\hat{s}{n}s\frac{Var[f(x)]}{n}\hat{s}{n}$的置信区间

重要采样

蒙特卡罗方法中,对和/积分分解,确定积分中哪一部分作为概率分布p(x)以及哪一部分作为被积函数f(x)很关键

p(x)f(x)不存在唯一分解,总可以写成p(x)f(x)=q(x)p(x)f(x)q(x)

考虑达到某给定精度所需样本数量,问题最初的分解不是最佳选择 最优的选择q可以被简单推导——最优重要采样

任意蒙特卡罗估计$\hat{s}{p}= \frac{1}{n}\sum\limits^{n}{i=1,x^{i}~p}f(x^{i})= \frac{1}{n}\sum\limits^{n}{i=1,x^{i}~q} \frac{p(x^{i})f(x^{i})}{q(x^{i})}$ 估计期望与q分布无关 重要采样的方差对q非常敏感$Var[\hat{s}{q}]=\frac{Var[\frac{p(x)f(x)}{q(x)}]}{n}$ 最小化方差:$q^{}(x)= \frac{p(x)|f(x)|}{Z}ZZ使q^{}(x)/1f(x)$较大的地方

对重要采样而言,任意q分布都是可行的,从q中采样往往不可行,但其他q可以选择

q使p(x)f(x)q(x)很大,那么估计的方差也很大 若q(xi)p(xi)|f(xi)|,重要采样采到很多无用的样本(0或极小值)

有偏重要采样

优势:不需要归一化的pq分布 $\hat{s}{BIS}= \frac{\sum\limits{i=1}^{n} \frac{p(x^{i})}{q(x^{i})}f(x^{i})}{\sum\limits_{i=1}^{n} \frac{p(x^{i})}{q(x^{i})}}=\frac{\sum\limits_{i=1}^{n} \frac{p(x^{i})}{\tilde{q}(x^{i})}f(x^{i})}{\sum\limits_{i=1}^{n} \frac{p(x^{i})}{\tilde{q}(x^{i})}}=\frac{\sum\limits_{i=1}^{n} \frac{\tilde{p}(x^{i})}{\tilde{q}(x^{i})}f(x^{i})}{\sum\limits_{i=1}^{n} \frac{\tilde{p}(x^{i})}{\tilde{q}(x^{i})}}$ 非无偏估计;渐进无偏

马尔可夫链蒙特卡罗方法MCMC

有时希望采用蒙特卡罗方法,但又没有简单的可以从目标分布中精确采用或一个好的重要采样分布,引入了MCMC

MCMC技术最标准、最一般的理论保证只适用于各状态概率不为0的模型 包含0概率状态的MCMC方法性能的理论保证只能依据不同类型的分布具体分析证明

马尔可夫链核心思想是从某个可取任意值的状态x出发,随时间推移,随机地反复更新状态x,最终x成为了一个从p(x)中抽出的接近比较一般的样本 马尔可夫链由一个随机状态x和一个转移分布T(x|x)定义而成 T(x|x)说明了给定状态x的情况下随机地转移到x的概率

并行运行无穷多个马尔可夫链,不同马尔可夫链的所有状态都采样自某一分布qt(x)t为消耗时间数 开始时采用分布q0来任意地初始化

考虑随机变量x有可数个状态,使用正整数x重参数化原始问题中x的不同状态 使用向量v描述概率分布q(x=i)=vi

考虑更新单一的马尔可夫链,从状态x到新状态x的概率$q^{t+1}(x’)=\sum\limits_{x}q^{t}(x)T(x’ x)$

将转移算子T表示为随机矩阵AA的每一列代表一个概率分布 Ai,j=T(x=i|x=j) 并行运算地更新不同马尔可夫链上整个分布vt=Avt1=Atv0

若对任意状态x到任意其他状态x存在一个t使转移概率不为0,Perron-Frobenius定理保证了矩阵的最大特征值是实数且为1 特征值随时间呈指数变化vt=V diag(λ)tV1v0导致所有不等于1的特征值都衰减为0——收敛到平稳分布(均衡分布) 收敛时:v=Av=v 若正确选择了转移算子T,最终的平稳分布q会等于所希望采样的分布p 通过Gibbs采样选择T

离散状态马尔可夫链的多数性质可以推广到连续状态的马尔可夫链(哈里斯链)中 在宽松条件下,一个带有转移算子T的马尔可夫链都会收敛到不动点q(x)=ExqT(x|x)

马尔可夫链的磨合过程:运行马尔可夫链直到达到均衡分布的过程 马尔可夫链达到均衡分布后,可以从均匀分布中抽取无限多的样本序列

  • 这些样本服从同一分布,但两个连续的样本之间会高度相关
  • 间隔采样可使均衡分布的统计量估计不会被MCMC的样本间相关性干扰

欲得到完全独立的样本,可同时并行运行多个马尔可夫链 深度学习从业者常选取的马尔可夫链数目与小批量中的样本数相近,然后从这些固定的马尔可夫链集合中抽取所需要的样本 马尔可夫链的数目通常为100

马尔可夫链达到均衡分布需要混合时间,很难检测马尔可夫链是否达到平衡 概率模型所能达到的状态是变量数的指数级别,表达vAA的特征值不现实;只能运行一定量时间的马尔可夫链粗略估计是否足够,之后使用启发式方法(手动检查样本、衡量前后样本之间的相关性)判断马尔可夫链是否混合成功