机器学习读书笔记: 概率图模型
文章目录
- 几种模型
- 隐马尔可夫模型
- 马尔科夫随机场
- 条件随机场(CRF:Conditional Random Field)
- 模型推断
几种模型
机器学习的重要任务,是根据 一些已观察到的证据(训练样本)来对感兴趣的未知变量(分类,回归的值)进行估计和推测。之前也提到了两种不同的模型:生成式模型(观察与未知变量的联合模型);判别式模型(位置变量的后验概率模型)。
概率图模型则是一类用图来表达变量相关关系的概率模型。
讲线面几个马尔科夫模型之前,先提一下几个概念(都是自己的理解,不怎么严谨)。
马尔科夫过程:它指的是一个随机变量序列按时间先后关系依次排开的时候,第N+1时刻的分布特性,与N时刻以前的随机变量的取值无关。拿天气来打个比方。如果我们假定天气是马尔可夫的,其意思就是我们假设今天的天气仅仅与昨天的天气存在概率上的关联,而与前天及前天以前的天气没有关系。其它如传染病和谣言的传播规律,就是马尔可夫的。我个人对这个东西的理解就是,一个变量只跟某个或者某些变量相关,这个过程就成为马尔科夫过程,把过程中的每个环节用一个节点来表示,这个依赖的链条就叫做马尔科夫链。
如果某种过程模型可以用这个过程来描述,那么就说这个过程或者系统有马尔科夫性质。
而下面提到的两种模型,一个使用有向图来描述变量之间马尔科夫过程,一个是用无向图来描述。
隐马尔可夫模型
隐马尔可夫模型是一种用于时序数据的建模工具,在语音识别、自然语言处理(都是有先后顺序的)领域非常有用。好像有时也去掉第一个字,就叫马尔科夫模型。
隐马尔可夫模型参照下面这张图:
其中有两部分变量:
状态变量{y1,y2…yn}\lbrace y_1,y_2\dots y_n\rbrace{y1,y2…yn},在模型中,某个状态变量yiy_iyi是一个有N个状态的变量: {s1,s2…sN}\lbrace s_1,s_2\dots s_N\rbrace{s1,s2…sN},状态yiy_iyi可以在这N个状态之间切换。在某个时间点ttt是一个确定的状态。
观测变量{x1,x2…xn}\lbrace x_1,x_2\dots x_n\rbrace{x1,x2…xn},在模型中,某个观测变量xix_ixi是一个有M个状态的变量: {o1,o2…oM}\lbrace o_1,o_2\dots o_M\rbrace{o1,o2…oM},状态xix_ixi可以在这M个状态之间切换。
图中的箭头表示依赖关系。可以看出,某个时间点ttt的观察变量是依赖于状态变量的,因为有什么样的状态,你才能有什么样的观测值。
另外的一个依赖关系就是t+1t+1t+1时刻的状态只依赖于ttt时刻的状态值,和其他的变量均无关,这种依赖关系也被称为马尔科夫链。
因为状态值yyy是不可见的,只能通过观测值xxx去进行估计和推断,索引被称为隐变量,模型也就称为隐马尔科夫模型。
根据上面的模型,所有状态的联合分布为:
P(x1,y1…,xn,yn)=P(y1)P(x1∣y1)∏i=2nP(yi∣yi−1)P(xi∣yi)P(x_1,y_1\dots,x_n,y_n) = P(y_1)P(x_1|y_1)\prod_{i=2}^n{P(y_i|y_{i-1})P(x_i|y_i)} P(x1,y1…,xn,yn)=P(y1)P(x1∣y1)i=2∏nP(yi∣yi−1)P(xi∣yi)
一个马尔科夫模型还需要确认下面几个信息,才能计算出上面的概率:
状态转移概率,也就是状态yyy从sis_isi转移到sjs_jsj的概率,这肯定是一个N∗NN*NN∗N(N为状态的数目)的矩阵,记为:
A=[aij]N∗Naij=P(yt+1=sj∣yt=si)A=[a_{ij}]_{N*N} \\ a_{ij}=P(y_{t+1}=s_j|y_t=s_i) A=[aij]N∗Naij=P(yt+1=sj∣yt=si)输出观测概率,也就是状态值确定,该状态值对应的各种观测值出现的概率,为一个N∗MN*MN∗M的矩阵,记为:
B=[bij]N∗Mbij=P(xt=oj∣yt=si)B=[b_{ij}]_{N*M} \\ b_{ij}=P(x_t=o_j|y_t=s_i) B=[bij]N∗Mbij=P(xt=oj∣yt=si)初始状态概率,也就是最初每个状态出现的概率,为一个1∗N1*N1∗N的向量,记为;
πi=P(y1=si)\pi_i=P(y_1=si) πi=P(y1=si)上面三个参数行程一个三元组:λ=[A,B,π]\lambda=[A,B,\pi]λ=[A,B,π]就可以唯一确定一个隐马尔可夫模型。
在实际应用中,隐马尔可夫模型用于下面三个领域:
- 给定模型λ\lambdaλ,如何产生最符合模型的观测变量{x1,x2…xn}\lbrace x_1,x_2\dots x_n\rbrace{x1,x2…xn},一般是用来预测,预测下一个观测变脸xnx_nxn
- 给定模型λ\lambdaλ,有一组观测变量{x1,x2…xn}\lbrace x_1,x_2\dots x_n\rbrace{x1,x2…xn},去推测隐变量yyy。在语音识别中,讲语音作为观测变量,文字作为隐藏变量。用模型去推断隐藏变量。
- 有一组观测变量{x1,x2…xn}\lbrace x_1,x_2\dots x_n\rbrace{x1,x2…xn},学习到一个模型λ\lambdaλ去描述这组变量,目标就是让这组变量出现的概率最大。λ\lambdaλ模型一般都无法直接给定,都需要根据一些观测变量和隐藏变量去学习一个模型,这时候就是这种情况。
马尔科夫随机场
上面的图是一个有向无环图,而马尔科夫随机场是用无向图来描述随机变量。比如:
这个无向图中的每个节点是一个变量,以前讲贝叶斯网的时候提到过,当时是每个变量都是一个属性。而这个随机场中的变量可以代表其他的意思,统称为变量,可以是一个属性,可以是一个样本等等。在这个随机场模型中,有几个概念:
团。如果图的子集中,任意的两个节点都有边连接,就称这个子集为一个“团”。任意的两个节点,只有一条表相连,就是一个团。上图中的{x2,x5,x6}\lbrace x_2,x_5,x_6\rbrace{x2,x5,x6}为一个团。而{x1,x2,x3,x5}\lbrace x_1,x_2,x_3,x_5\rbrace{x1,x2,x3,x5}则不是团,因为x2,x3x_2,x_3x2,x3之间没有边相连。
极大团。如果一个团,从图中任意拿一个节点过来增加到团中,都让这个团不再是团了,那么这个团就是极大团。有点绕,仔细看看。
在马尔科夫随机场模型中,多个变量的联合概率分布能基于团分解为多个因子的乘积,每个因子仅与一个团有关。首先定义几个参数:
- 模型中的团用Q表示,这个团中包含的变量为xQx_QxQ
- 模型中团的集合用C表示。
- 上面说到的基于一个团的因子计算为ψQ(xQ)\psi_Q(x_Q)ψQ(xQ),其中ψQ\psi_QψQ称为势函数。
- 那么这个随机场模型的联合概率计算公式就为:
P(x)=1Z∏Q∈CψQ(xQ)P(x)=\frac{1}{Z}\prod_{Q\in C}\psi_Q(x_Q) P(x)=Z1Q∈C∏ψQ(xQ)
- Z为规范化因子:Z=∑x∏Q∈CψQ(xQ)Z=\sum_x{\prod_{Q\in C}\psi_Q(x_Q)}Z=∑x∏Q∈CψQ(xQ)
在变量比较多的时候,团的数量会比较多,而团一般都被包含在一个极大团中,所以这个公式可以被改成:
P(x)=1Z∗∏Q∈C∗ψQ(xQ)P(x)=\frac{1}{Z^*}\prod_{Q\in C^*}\psi_Q(x_Q) P(x)=Z∗1Q∈C∗∏ψQ(xQ)
Z=∑x∏Q∈C∗ψQ(xQ)Z=\sum_x{\prod_{Q\in C^*}\psi_Q(x_Q)}Z=∑x∏Q∈C∗ψQ(xQ)也就是说需要为每个极大团定义一个势函数。
势函数用于描述团中间的变量的关系,如果团是一个只有两个变量。那么书中提到的例子:
其中团(xA,xB)(x_A,x_B)(xA,xB)的势函数定义为:
ψAC(xA,xB)={1.5,ifxA=xB0.1,otherwise\psi_{AC}(x_A,x_B)=\begin{cases} 1.5, if\quad x_A=x_B \\ 0.1, otherwise \end{cases} ψAC(xA,xB)={1.5,ifxA=xB0.1,otherwise
团(xB,xC)(x_B,x_C)(xB,xC)的势函数定义为:
ψBC(xB,xC)={0.2,ifxB=xC1.3,otherwise\psi_{BC}(x_B,x_C)=\begin{cases} 0.2, if\quad x_B=x_C \\ 1.3, otherwise \end{cases} ψBC(xB,xC)={0.2,ifxB=xC1.3,otherwise
那么说明,这个模型偏好A和B相同,而B和C不同,会使得整个模型的联合分布概率比较高。
更一般地,定义团中的势函数是使用下面的方式:
ψQ(xQ)=e−HQ(xQ)HQ(xQ)=∑u,v∈Q,u≠vαuvxuxv+∑v∈Qβvxv\psi_Q(x_Q) = e^{-H_Q(x_Q)} \\ H_Q(x_Q)=\sum_{u,v\in Q, u\neq v}{\alpha_{uv}x_ux_v}+\sum_{v\in Q}\beta_v{x_v} ψQ(xQ)=e−HQ(xQ)HQ(xQ)=u,v∈Q,u=v∑αuvxuxv+v∈Q∑βvxv
- 用无向图怎么来描述马尔科夫链呢,书中提到的是用分离集的概念,参考下图。
- 图中的一个顶点vvv通过他的邻接顶点集n(v)n(v)n(v)与图中的其他顶点相对独立。
- 两个非邻接变量条件独立。
- 我自己的理解是想将极大团形成一个马尔科夫链。
条件随机场(CRF:Conditional Random Field)
上面两种都是计算所有变量的联合分布概率,为生成式的模型。条件随机场是计算后验概率,为判别式模型。也就是说是计算条件概率P(y∣x)P(y|x)P(y∣x)。
书上提出的条件随机场必须满足条件:
P(yv∣x,yV/v)=P(yv∣x,yn(v))P(y_v|x,y_{V/{v}}) = P(y_v|x,y_{n(v)}) P(yv∣x,yV/v)=P(yv∣x,yn(v))
其中n(v)n(v)n(v)表示节点v的邻接点。我理解这个东西和上面的马尔科夫随机场是一个意思,都是满足马尔科夫性,也就是每个点的标记yyy只和邻接点有关。只是一个通过这个模型使用上面的计算联合概率,条件随机场是计算条件概率。
然后就是给出了条件概率的计算方式:
P(y∣x)=1Z(∑j∑i=1n−1λjtj(yi+1,yi,x,i)+∑k∑i=1nμksk(yi,x,i)P(y|x)=\frac{1}{Z}(\sum_j\sum_{i=1}^{n-1}{\lambda_jt_j(y_{i+1},y_i,x,i)}+\sum_k\sum_{i=1}^n\mu_ks_k(y_i,x,i) P(y∣x)=Z1(j∑i=1∑n−1λjtj(yi+1,yi,x,i)+k∑i=1∑nμksk(yi,x,i)
- tj(yi+1,yi,x,i)t_j(y_{i+1},y_i,x,i)tj(yi+1,yi,x,i)表示相邻两个节点的转移特征函数,在语义识别的场景里就是两个挨着的单词的概率,我自己理解就是某个单词(第i个单词)后面接另外单词的概率。
- sk(yi,x,i)s_k(y_i,x,i)sk(yi,x,i)为特征函数,用于描述观测变量对标记变量的影响,我理解就是观测到某个值,这个值属于某种标记y的概率,也就是马尔科夫模型里的BBB。
- λ\lambdaλ和μ\muμ为参数。
书中给出了一个例子:
tj(yi+1,yi,x,i)={1,ifyi+1=[P],yi=[V]andxi="knock"0,otherwiset_j(y_{i+1},y_i,x,i) = \begin{cases} 1, if\quad y_{i+1}=[P],y_i=[V]\quad and \quad x_i="knock" \\ 0, otherwise \end{cases} tj(yi+1,yi,x,i)={1,ifyi+1=[P],yi=[V]andxi="knock"0,otherwise
也就是说,如果第iii个单词为knock且为动词,下一个单词为P:代词的概率为1。其他的概率为0.
sk(yi,x,i)={1,ifyi=[V]andxi="knock"0,otherwises_k(y_i,x,i)=\begin{cases} 1, if\quad y_i=[V] \quad and \quad x_i="knock" \\ 0, otherwise \end{cases} sk(yi,x,i)={1,ifyi=[V]andxi="knock"0,otherwise
是说knock观测值为动词的概率为1,为其他的词性概率为0.
模型推断
书中后面提到了用概率图模型去进行推断的一些基本知识,因为本人主要是想做图像相关的算法,这块估计用的少,再加上实在是看不动了,就先不管了,后续有需要再说吧。
机器学习读书笔记: 概率图模型相关推荐
- Bishop 模式识别与机器学习读书笔记_ch1.1 机器学习概述
模式识别与机器学习-读书笔记 第一章 机器学习概述(I) 数据模式搜索问题是一个基础性的问题,有着悠久而成功的历史. 16世纪对第谷布拉赫的广泛天文观测使约翰内斯开普勒发现了行星运动的经验定律,从而为 ...
- 【机器学习系列】概率图模型第三讲:深入浅出无向图中的条件独立性和因子分解
作者:CHEONG 公众号:AI机器学习与知识图谱 研究方向:自然语言处理与知识图谱 阅读本文之前,先注意一下两点: 1. 机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文 ...
- 机器学习读书笔记(开篇)
新近到手一本<机器学习实战>(Peter Harringtom),兴奋之余,本着好记性不如烂笔头的真理,打算将读书的过程记录下来,形成读书笔记,重点记录自己所理解的算法思想与应用示例.本人 ...
- [Mitchell 机器学习读书笔记]——人工神经网络
1.简介 神经网络学习方法对于逼近实数值.离散值或向量值的目标函数提供了一种健壮性很强的方法.在现实中,学习解释复杂的现实世界中的传感器数据,人工神经网络(Artificial Neural Netw ...
- 【机器学习系列】概率图模型第一讲:从概率和图的角度理解概率图模型
作者:CHEONG 公众号:AI机器学习与知识图谱 研究方向:自然语言处理与知识图谱 前言: 文中含有大量公式,若需获取本文全部的手书版原稿资料,扫码关注公众号[AI机器学习与知识图谱],回复: 概率 ...
- 【机器学习系列】概率图模型第二讲:深入浅出有向图中的条件独立性和D划分
作者:CHEONG 公众号:AI机器学习与知识图谱 研究方向:自然语言处理与知识图谱 前言: 文中含有大量公式,若需获取本文全部的手书版原稿资料,扫码关注公众号[AI机器学习与知识图谱],回复: 概率 ...
- Bishop 模式识别与机器学习读书笔记 || 线性分类模型之判别函数的几何建模
线性分类模型之判别函数的几何建模 文章目录 线性分类模型之判别函数的几何建模 1. 判别函数 1.1 两类问题 1.2 多类问题 1.3 Fisher 线性判别 LDA 算法 1.3 代码实现 1.4 ...
- 李宏毅机器学习—读书笔记
李宏毅机器学习笔记(LeeML-Notes) leeml-notes 机器学习 人工智慧(Artificial Intelligence)是我们想要达成的目标,希望机器可以跟人一样的聪明.机器学习(M ...
- 掌握Python 机器学习 读书笔记 9 (流水线 算法保存)
为什么80%的码农都做不了架构师?>>> cha14 流水线 在机器学习里可以看到有一些必要的步骤, 这些步骤是可以作为workflow 自动化的. 而且流水线可以对每个fol ...
- 掌握python机器学习-读书笔记8 (抽样回归算法)
为什么80%的码农都做不了架构师?>>> 12 抽查回归算法 今天来学习如何使用python scikit learn 来进行一些回归算法的使用. 篇幅限制, 不会对具体算法做 ...
最新文章
- C#利用lambda在函数中创建内部函数
- 苹果前置摄像头拍出来是反的怎么调_不用等了!屏下摄像头难攻克,明年还是挖孔屏...
- RxJava from 处理list时,其中有一个出错时如何继续发送下面的list内容。
- 互联网协议入门(一)
- Spring Boot 2.X 使用@Cacheable时注意事项
- 一文速学-最小二乘法曲线拟合算法详解+项目代码
- 计算机中常用计算公式,计算机常用计算公式汇总.doc
- 小心!使用网页版的WhatsApp时,请选择隐私模式
- C语言 枚举——熄灯问题
- 新浪微博技术分享:微博短视频服务的优化实践之路
- 将汉字转化为拼音的js插件
- java双开_修改Android源码实现原生应用双开,应用多开
- ICWPT 2022 | 从技术突破到生态构建,小米坚持做充电领域的拓荒者和领先者
- 为Array对象添加一个去除重复项的方法
- python断网重联_Python实现WiFi断线自动重连的方法详解
- Python实现TOPSIS分析法(优劣解距离法)
- Android 8.1/GO GMS认证 (GMS认证群:738320435)
- 用django开发一个报修系统
- 用加密锁实现网站身份认证
- CET-4 week8# 细枝末节