zoukankan      html  css  js  c++  java
  • 概率图模型课堂笔记:2.4 取样方法

    从前一章可知,用精确推理来获得系统的整体或局部概率分布(比如某些选定变量的边缘分布,比如某种条件分布),往往计算量过于庞大,而采样往往是一种代价更低的近似方法。

    1.1 简单取样

    1. 用独立等概率取样的方式取M个样本D,$E_p[f]approx frac1M sum_{m=1}^{M}f(x[m])$

    2. 对离散分布生成采样的方法,设$Xin {x_1,x_2,cdots,x_M}, P(X=X_i)= heta_i$, 把$[0,1]$分成M个区间, $I_1=[0, heta_1), I_2=[ heta_1, heta_1+ heta_2),cdots$,生成$[0,1]$随机数,落在$I_k$表示抽样$x_k$

    3. 大数定律两个Bound

    (1) 取样落在$[p-epsilon, p+epsilon]$之外的概率小于等于$2e^{-2Mepsilon^2}$

         若要取样落在$[p-epsilon, p+epsilon]$之外的概率小于$delta$,则$Mge=frac{ln(2/delta)}{2epsilon^2}$

    (2) 取样落在$[p(1-epsilon), p(1+epsilon)]$之外的概率小于等于$2e^{-2Mpepsilon^2/3}$

         若要取样落在$[p(1-epsilon), p(1+epsilon)]$之外的概率小于$delta$,则$Mge=frac{3ln(2/delta)}{pepsilon^2}$

    所以对于p很小的情况,都会造成需要大量样本。

    4. 采样生成方法:对于贝叶斯图来说,生成样本自顶向下就可以了。

    (1)对root结点$X$,直接根据$X$的概率分布$P(X)$来生成

    (2)对于非root结点$X$,因为其父亲结点已经生成,所以在条件概率$P(X|Pa_X)$中选择相应的行来生成。

    (3)所有变量生成完成后,一个样本就生成出来了。

    (4)重复(1)-(3), 生成M个样本

    (5)要估算$P(Y=y)$,用所有样本中$Y=y$样本个数除以M。注意M要满足大数定律的Bound

    (6)要估算$P(Y=y|E=e)$,方法和(5)一样,遇到$E e e$的样本,直接抛弃。这样生成的样本都是$E=e$的。如果$E=e$的概率很小,那么生成会很费时间。因为最后能保留的样本只有$MP(e)$个。

    5. 对马尔科夫图来说,4这个方法不能用。因为没有根节点。

    1.2 马尔可夫链蒙特卡洛

    思想是:$mathbf X$每个可能的取值$mathbf x$都是一个状态,状态之间以一定的概率转移。一开始每个状态的分布率(可以认为是一个概率向量)目标概率P很可能是不相等的,但是粒子在马尔科夫网络中进行不断地转移,概率会逼近目标概率,达到稳态(stationary),在此之后,再取样,就是符合P的分布了。

    1. 马尔可夫链定义了:

    (1)每个变量的初始概率$P^0$

    (2)状态之间互相转换的概率$T(x o x')$。且$sum_{x'}T(x o x')=1$

    2. 转移等式(Temporal Dynamics):$P^{(t+1)}(X^{(t+1)}=x')=sum_P^{(t)}(X^{(t)}=x)T(x o x')$

    3. 马尔可夫链收敛的条件:对任意的$x'$,有:$P^{(t+1)}(x')=P^{(t)}(x')=sum_xP^{(t)}(x)T(x o x')$,达到这个状态后的概率我们称为收敛概率。

    所以,如果要证明构造出来的某个马尔科夫链的收敛概率为P,只要把P代入上面的式子,证明$P(x')=sum_xP(x)T(x o x')$

    4. 正则马尔可夫链

    (1)如果存在一个$k$(先选定$k$),通过$k$步,能从任意状态到另一任意状态,我们称这个马尔可夫链是正则(regular)的

    (2)一个正则的马尔可夫链一定可以收敛

    (3)正则的一个充分条件是:任意两个状态之间都有路径,且任意一个状态都有回路。

    1.3马尔科夫链的使用

    1. 假设已经针对某分布$P$(如某马尔科夫网表示的分布)生成了一个收敛概率为$P$的马尔科夫链

    2. 通过一个初始分布$P^{(0)}$生成C个样本$x^{(c,0)}$

    3. 对每个样本$x^{(c,0)}$,同步生成各自的样本序列。直到认为已经收敛。判断收敛的方法:

    (1)针对同一个样本序列,在不同时间段的窗口中,得出来的分布接近一致的

    (2)针对不同的样本序列,在同一个窗口中,它们的分布已经接近一致。

        这个通常更好,因为有可能状态集分为两个区域,跨区的转移可能性很小。

        用多图来描述,C个序列在同一个评价概率(比如选定一个$P(x_i)$)上趋向相等,可以认为收敛

        用单图描述,建立C维坐标,如果发现所有序列的评价概率收拢在对角线上,可以认为收敛

    4. 收敛之后,继续各个样本序列的生成,再生成M个样本(M的大小参照前一节)。拿这M个样本计算概率

    1.4 吉布斯采样

    1. 目标分布:$P_{phi}(X_1,X_2,cdots,X_n)$。步骤:

    (1)初始状态:$mathbf{x}={x_1,x_2,...,x_n}$

    (2)单次迭代过程:for i=1 to n: Sample $x_i$ by $P_{phi}(X_i|x_{-i})$

    2. 这个过程实际上是运行在一个马尔可夫链上,链中各个状态就是目标分布中的$mathbf{X}_i$各个可能的取值,可转移的两个状态之间只有一个变量$x_i$不同,转移概率是$P_{phi}(X_i|x_{-i})$。当然,每个状态向自己也是可以转移的。这个就符合正则马尔科夫链的两个充分条件。

    同时,可以证明这个网络的收敛概率是$P_{phi}$(???)

    3. 这个过程中取样的代价也很低,为$P_{phi}(X_i|x_{-i})=frac{P_{phi}(X_i,x_{-i})}{P_{phi}(x_{-i})}propto prod_{j:X_iin Scope[C_j]}phi_j(X_i,x_{j,-i})$,也就是不用计算整体的联合分布,只要把和$X_i$有关的factor乘起来再代入其他变量。

    4. 对于XOR吉布斯很难收敛,因为给定$Y$的情况下,${x_1,x_2}$从一个状态跳到另外一个状态,不可能像迭代中描述的那样,只改变其中一个变量的值。

    5. 对于图分块来说,也很难,因为很多块都是和相邻块有强相关性,比如某片区域全是水块或者全是天空块的可能性都不小,但如果只改变其中一个,就会导致一块水被天包围,这个联合概率很小,很难取样到。因此一次只改变其中一个变量的值,来把一整片水块变成天空块,也是接近不可能。

    1.5 

    1. 可逆链:对于任何一对状态来说,如果互相迁移的“量”是相等的$P(x)T(x o x')=P(x')T(x' o x)$,则称为可逆链。因为“往来”等量,所以可逆链一定已经收敛,用数学描述:两边对$x$进行求和,就得到了收敛式。

    但是收敛链不一定可逆。考虑一个$A o B o C o A$的顺向转移概率为0.8,反向为0.2的环。

    2. 令$pi(mathbf X)$表示收敛概率,可逆状态用$pi(x)T(x o x')=pi(x')T(x' o x)$表示。

    我们把$T(x o x')$拆为两部分:$Q(x o x')$和$A(x o x')$。$Q$表示提议概率,$A$表示接受度。系统以$Q(x o x')$的概率提出转移,被接受的概率有$A(x o x')$,如果被接受,则转移,否则,留在原地。

    (1)若$x e x'$,则$T(x o x')=Q(x o x')A(x o x')$

    (2)若$x=x'$,则$T(x o x)=Q(x o x)+sum_{y e x}Q(x o y)(1-A(x o y))$

    3. 现在考虑$x e x'$的情形。对可逆链来说,平衡时我们会达到$pi(x)Q(x o x')A(x o x')=pi(x')Q(x' o x)A(x' o x)$,也就是

    $frac{A(x o x')}{A(x' o x)}=frac{pi(x')Q(x' o x)}{pi(x)Q(x o x')}$

    现在假设$A(x o x')<A(x' o x)$,$frac{A(x o x')}{A(x' o x)}= ho<1$。

    那么对$A(x o x')$和$A(x' o x)$来说,只要满足比例$ ho$的任意取值对都是合法的。我们令$A(x o x')= ho,A(x' o x)=1$

    对于这种取值方式,我们可以扩展到一般的情况,定义$A(x o x')=min[1, frac{pi(x')Q(x' o x)}{pi(x)Q(x o x')}]$

    4. Q的取值准则

    (1) Q不能为0,否则计算A会除0

    (2) Q必须广泛分布,这样才能远程跳转。但是对一些不太可能的跳转,A通常会低

    5. 考虑一个最小距离和的二部图匹配问题,每个左侧点$X_i$都要指派唯一的右侧点$v_i=Y_j$,

    (1)如果指派合法,系统概率是$e^(-sum_i dist(i,v_i))$,即总距离越大,概率越小。

    (2)如果指派不合法,概率为0

    一个状态转移算法是:

    (1)为$X_i$随机指派一个$v_i$

    (2)如果$v_i$原来指派给了$X_j$,则原$X_j$执行(1),否则完成。

    对比:

    如果用上一节的吉布斯采样,很难收敛。

    2.1 时间模型的推导

    1. 预备知识:

    (1)贝叶斯定理:$P(A|B)=frac{P(B|A)P(A)}{P(B)}$

    (2)条件贝叶斯定理:$P(A|B,C)=frac{P(B|A,C)P(A|C)}{P(B|C)}$

    条件贝叶斯定理就是在(1)的每个式子的竖线右边都加上C。

    2. 对时间模型来说,我们希望做推断的时候不需要追溯太久之前的状态和数据,否则要维护巨大的状态空间。所幸的是这是可以做到的。考虑一个通用的时间状态模型。

    (1) 标准状态方程:$sigma^{(t)}(S^{(t)})=P(S^{(t)}|o^{(1:t)})$

    (2) 现在要基于$sigma^{(t)}$计算$sigma^{(t+1)}$

    (3) $sigma^{(t+1)}=P(S^{(t+1)}|o^{(1:t)},o^{(t+1)})$

    $=frac{P(o^{(t+1)}|S^{(t+1)})P(S^{(t+1)}|o^{(1:t)})}{P(o^{(t+1)}|o^{(1:t)})}$ // 条件贝叶斯定理

    $=frac{P(o^{(t+1)}|S^{(t+1)})sum_{s^{(t)}}P(S^{(t+1)}|s^{(t)})P(s^{(t)}|o^{(1:t)})}{P(o^{(t+1)}|o^{(1:t)})}$

    $=frac{P(o^{(t+1)}|S^{(t+1)})sum_{s^{(t)}}P(S^{(t+1)}|s^{(t)})sigma^{(t)}(s^{(t)})}{P(o^{(t+1)}|o^{(1:t)})}$

    其中分母只是用来normalize的。

    看到所有运算步骤只是用到前一个状态,说明可以用较少的状态空间来实现推断。

    3. 观察机器人的状态模型。以及这个思想的应用

    4. 对时间模型来说,在同一个时间t里,不同的状态变量并不是独立的,通过追溯到t,t-1或更早,往往能找到它们之间的active trail,所以往往只能对时间t所有的状态变量做一个完全的联合分布。状态空间随着状态数量指数增长。因此精确推导的计算量还是很大。

    5. 对碟子模型来说,也是一样,同一个碟子里不同个体之间也是相关的,往往只能把它们当作一个整体作联合分布。

    6. 考虑一个网页分类的模型,传统机器学习算法一般是根据网页本身内容来,但是用概率图来说,可以定义相互连接的网页之间类别的factor。比如学生和院系之间的连接更多,而学生之间的连接则很少。运用这个可以显著提高性能。

  • 相关阅读:
    Delphi公用函数单元
    Delphi XE5 for Android (十一)
    Delphi XE5 for Android (十)
    Delphi XE5 for Android (九)
    Delphi XE5 for Android (八)
    Delphi XE5 for Android (七)
    Delphi XE5 for Android (五)
    Delphi XE5 for Android (四)
    Delphi XE5 for Android (三)
    Delphi XE5 for Android (二)
  • 原文地址:https://www.cnblogs.com/milaohu/p/6292391.html
Copyright © 2011-2022 走看看