概率图模型 整理
在看一些概率图模型相关的内容,先简单整理一下吧。
# 资料
- 机器学习周志华 概率图模型章节
- 神经网络与深度学习 在线电子书 https://nndl.github.io/ 概率图模型章节
- 统计学习方法 李航 最大熵模型、EM算法、HMM模型、CRF模型章节
补充一个徐亦达老师的视频课: https://www.youtube.com/channel/UConITmGn5PFr0hxTI2tWD4Q/videos 先mark住还没看,后面看过再来补充。
西瓜书和电子书都是比较概览性质的,梳理了纲要内容,而小蓝书则更加细节地讲了一些具体的模型。相互对照来看会好一点,但这块内容也是挺多的,看不懂TAT。。。
# 概要
# 分类
概率图模型:用图的结构来描述多元随机变量之间的条件独立关系。
有向图模型(贝叶斯网络或信念网络):例如 朴素贝叶斯,隐马尔可夫模型,深度信念网络等
无向图模型(马尔可夫随机场或马尔可夫网络):例如最大熵模型、条件随机场、玻尔兹曼机等。
# 推断
推断是指观测到部分变量e时,计算其他变量的某个子集q的后验概率p(q|e)
精确推断:变量消除法、信念传播算法 近似推断:变分法、采样法(蒙特卡洛方法)
# 学习
已知网络结构,学习网络参数
不含隐变量:最大似然 含有隐变量:EM算法(E步固定参数,计算对隐变量z的分布,M步根据隐变量z的分布来优化更新参数)
# HMM
生成式模型,整个模型可以用 p(X, Y) = ... 来表示。
三要素:初始状态概率,转移概率,输出概率
三个基本问题:(1)概率计算:已知模型和一个观测序列,求该观测序列的概率 (2)学习:已知一些观测序列,学习参数 (3)解码问题:已知观测序列和模型,求对应该观测序列的状态序列
概率计算方法 穷举所有状态来计算;前向或后向方法来计算
学习 监督学习:已有观测序列及对应的状态序列,可以直接通过极大似然估计来估计参数,也就是通过计数的方式来算出概率
无监督学习:只给定观测序列。则可以通过Baum-Welch算法(也即EM算法)来学习。E步来使用参数计算隐变量的分布,M步使用隐变量的分布来优化更新参数
解码问题 维特比算法(动态规划法),从前往后。已知观测序列,求最优状态序列。 对每一个时刻,计算在该时刻的观测下,该时刻各个状态的概率,以及该时刻各个状态对应的最优的上一时刻状态(因为该时刻各个状态均可以由上一时刻各个状态转移而来,该时刻某个状态的概率,是上一时刻各个状态转移过来的概率中取最大值,记下是从谁那里取来的最大值)。向后递推,直到最后时刻找到最大值状态,依次沿路径向前,找到最优状态序列。
# 条件随机场
判别式模型,整个模型可以用 p(Y | X) = ... 来表示。
条件随机场的参数是 各个特征函数(转移特征和状态特征两类特征)及其权重。有了这些参数,通过对各个时刻各个特征函数求值以及用权重加权,就能计算出 p(Y|X)。
概率计算 前向 后向
学习 有监督学习。 极大似然估计。可以用梯度下降或拟牛顿法等。
预测 维特比算法。
关于CRF模型的一些讲解资料 后续再汇总出一篇详细的文章吧
- https://www.zhihu.com/question/35866596
- https://www.jianshu.com/p/55755fc649b1
- https://cloud.tencent.com/developer/article/1088999
- https://applenob.github.io/crf.html