概率图基础
概率图模型分类
- 有向图:静态贝叶斯、动态贝叶斯(隐马尔可夫模型)
- 无向图:马尔可夫网络(条件随机场、玻尔兹曼机)
隐马尔可夫模型
评估问题
$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