概率图基础

概率图模型分类

  • 有向图:静态贝叶斯、动态贝叶斯(隐马尔可夫模型)
  • 无向图:马尔可夫网络(条件随机场、玻尔兹曼机)

隐马尔可夫模型

评估问题

$HMM<S,O,\Theta>, \Theta=<\pi ,A, B>$

隐藏状态S,观测状态O,初始状态的概率分布$\pi$,隐藏状态转移概率A,观测状态转移概率B

计算观测序列概率

  • $p(O|\Theta)=\sum_{S}^{ }p(O,S|\Theta)=\sum_{S}^{ }p(O|S,\Theta)p(S|\Theta)$
  • $p(O|S,\Theta)=\prod_{i}^{ }p(O_i|S_i,\Theta)=\prod_{i}^{ }B(O_i,S_i)$
  • $p(S|\Theta)=\pi(S_0)\prod_{i}^{ }p(S_{i+1}|S_i)$

递归公式(前向算法)

  • $p(O_1^t|\Theta)=\sum_i^{ } p(O_1^t,S_{t+1}=i|\Theta)=\sum_i^{ }\alpha_t(i)$
  • $\alpha_{t+1}(i)=\sum_j^{ } p(O_1^t,O_{t+1},S_t=j,S_{t+1}=i|\Theta)=\sum_j^{ } p(O_{t+1},S_{t+1}=i|S_t=j,O_1^t,\Theta)p(O_1^t,S_t=j|\Theta)$
    • $=\sum_j^{ } p(O_{t+1},S_{t+1}=i|S_t=j,\Theta)\alpha_t(i)=\sum_j^{ } B(O_{t+1},i)A(i,j)\alpha_t(i)$

解码问题

解码问题:求解隐藏序列$\arg\,\max_Sp(S|O,\Theta)$,viterbi/A*算法
  • ­输入为音子时,观察与状态之间为多对一关系
  • ­$\arg\,\max_Sp(S|O,\Theta)=\arg\,\max_Sp(O|S,\Theta)p(S|\Theta)=\arg\,\max_S\prod_{i}^{ }B(O_i,S_i)\pi(S_0)\prod_{i}^{ }A(S_{i+1},S_i)$
  • ­序列空间约束:$given\,S_{n+1}, S_n=\arg\,\max_sB(O_{n+1}, S_{n+1})A(S_{n+1}, s)$
  • ­递归公式:$\delta_i(t)=\max_{q_{1}^{t-1}}p(O_{1}^{t},q_{1}^{t-1},q_t=i)$;$\delta_{i+1}(t)=\max_{i}[\delta_i(t)A(j,i)]B(O_{t+1},j)$

学习问题

参数估计$\arg\,\max_{\Theta}p(O|\Theta)$
  • ­引入中间变量,采用 EM/向前向后算法
  • ­后向变量:$\beta_t(j)=p(O_{t+1}^T |q_t=j,\Theta)$
  • $\xi_t(i,j)=p(q_t=i,q_{t+1}=j|O,\Theta)=\frac{p(q_t=i,q_{t+1}=j,O|\Theta)}{p(O|\Theta)}=\frac{\alpha_t(i)A(j,i)B(O_{t+1},j)\beta_{t+1}(j)}{\sum_{i}^{ }\alpha_T(i)}$
  • $\pi(i)=p(q_1=i|O)=\sum_{i}^{ }\xi_1(i,j)=\gamma_1(i)$
  • $A(j,i)=\frac{\sum_{t}^{ }p(q_t=i,q_{t+1}=j|O)}{\sum_{t}^{ }p(q_t=i|O)}=\frac{\sum_{t}^{ }\xi_t(i,j)}{\sum_{t}^{ }\gamma_t(i)}$
  • $B(O_T,i)=\frac{\sum_{t}^{ }p(q_t=i,O_t|O)}{\sum_{t}^{ }p(q_t=i|O)}=\frac{\sum_{t}^{ }\gamma_t(i)\delta(o=O_t)}{\sum_{t}^{ }\gamma_t(i)}$

条件随机场

马尔可夫随机场MRF

  • 无向图表示的联合概率分布
  • 成对马尔可夫性:任意不相邻的节点a,b在其它节点已知的条件下概率独立
    •  $p(a,b|C)=p(a|C)p(b|C)$
  • 团:完全子图
  • 联合概率等于所有最大团的联合概率的乘积
    •  $p(x)=\frac{1}{Z}\prod_c\Psi (X_c)$

条件随机场CRF

  • 如果 Y 为 MRF,那么P(Y|X)为CRF
  • 线性链随机场:$p(Y_i|X,Y)=p(Y_i|X,Y_{i-1},Y_{i+1})$
    • $=\frac{1}{Z(x)}exp(\sum_{i,k}^{ } w_kf_k(y_{i-1},y_i,x,i))=\frac{1}{Z(x)}exp( W^TF(y,x))$
  • 预测问题:$\arg\,max_y\frac{1}{Z(x)}exp( W^TF(y,x))=\arg\,max_yexp( W^TF(y,x))$
  • 学习问题:$\arg\,max_w\frac{1}{Z(x)}exp( W^TF(y,x))$

概率采样算法

定理:[细致平稳条件](detailed balance condition)

  • 如果非周期马氏链的转移矩阵P和分布$\pi(x)$满足$\forall i,j\,\pi(i)P_{ij}=\pi(j)P_{ji}$,则$\pi(x)$是马氏链的平稳分布

Metropolis-Hastings

  • 根据转移矩阵P的马氏链,构造平稳分布为p(x)的马氏链
  • 需要串联一个因子$\alpha$,$\pi(i)P_{ij}\alpha_{ij}=\pi(j)P_{ji}\alpha_{ji}$,满足细致平稳条件。相当于修正转移矩阵。
  • $\alpha=min(1,\frac{\pi(i)P_{ij}}{\pi(j)P_{ji}})$

Metropolis/MCMC伪代码

  • 初始化状态x0
  • 根据转移矩阵P ,生成状态y
  • 生成r=uniform(),如果r<α(x,y),接受xn+1=y
  • 迭代直到收敛,采样为分布

模拟退火

  • 避免极小值,逐渐降低温度,使得Metropolis算法快速收敛

玻尔兹曼机

Gibbs采样算法

  • 观察到任意$p(x_1,x_C)p(x_2|x_C)=p(x_2,x_C)p(x_1|x_C)$,满足细致平稳条件
  • 每次按照边缘条件分布概率,改变一个分量
  • 收敛到联合分布,通常为Gibbs分布:$p_x=\frac{1}{Z}e^{-\frac{E_x}{k_BT}}$

Boltzmann机

  • 状态向量分为可见部分$x_a$和隐藏部分$x_b$
  • $p(x)=\frac{1}{Z}e^{-E(x)}$,这里$E(x)=\frac{1}{2}x^TWx$
  • $p(x_j|[x_i|i\neq j])=\phi(x\sum_{i\neq j}^{ } w_{ji}x_i)$
  • 最大化似然函数:$L(w)=\sum log(p(x_a))=-\sum E(x)-\sum log(Z)$
  • 配分函数Z难以计算

受限Boltzmann机

  • 具有随机性的可见层v和一层隐藏层h,无向的二分图
  • 能量定义为:$E(v,h)=-a^Tv-b^Th-h^TWv$
  • p(h|v)与 p(v|h)易于计算和采样,因此可以采用CD、SML(PCD)、比率匹配等技术。

CD算法

  • 取 m 个样本,得到 ML 的正项
  • Gibbs 采样到平衡,得到负项估计
  • 得到上升梯度

参考文献

  • Deep learning, www.deeplearning.net
  • 俞栋、邓力,解析深度学习:语言识别实践,电子工业出版社,2016.7
posted @ 2017-12-22 14:11  yunfeng_net  阅读(318)  评论(0编辑  收藏  举报