线性链条件随机场与HMM在viterbi算法中的图解对比

先整理下相关概念:

条件随机场P(Y|X):
表示的是给定一组输入随机变量 X 的条件下另一组输出随机变量 Y 的马尔可夫随机场,也就是说 CRF 的特点是假设输出随机变量构成马尔可夫随机场。

什么是随机场?
官方定义:
随机场就是随机过程在空间上的推广。随机过程的基本参数是时间变量,而随机场的变量是位置向量u(x,y,z).所以随机场就是定义在一个场域参数集合上的随机变量系。对于场域内的任一点,都有随机变量与它对应。
讲人话:就是多维的随机过程.

什么是马尔科夫随机场:
马尔科夫随机场就是概率无向图模型,就是联合概率分布.
讲人话:就是多维随机变量的联合分布.

为什么引入无向图:
为了直观、便于分析,学术上,图论的东西可以用于概率,概率的东西可以用于图论,方便多学科促进.
讲人话:就是为了好看.

什么是生成式模型和判别式模型?
https://blog.csdn.net/appleyuchi/article/details/85319921

什么是线性链随机场?
李航的书P195页有定义:
P ( Y i ∣ X , Y 1 , ⋅ ⋅ ⋅ , Y i − 1 , Y i + 1 , ⋅ ⋅ ⋅ , Y n ) = P ( Y i ∣ X , Y i − 1 , Y i + 1 ) P(Y_i|X,Y_1,···,Y_{i-1},Y_{i+1},···,Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1}) P(YiX,Y1,,Yi1,Yi+1,,Yn)=P(YiX,Yi1,Yi+1)
这个判别式是什么意思呢?
也就是说:这个 Y i Y_i Yi只和前一个词语 Y i − 1 Y_{i-1} Yi1或者后一个词语 Y i + 1 Y_{i+1} Yi+1以及输入X相关
讲人话,举个可能不太恰当的例子哈:
“我要犒赏你们”
这里的你们如果放在一句话的开头,那么词性就是"主语"
由于上面这个桔子中的"你们"放在"犒赏后面",那么"你们"的词性就是"宾语"
所以这里的:
Y i − 1 Y_{i-1} Yi1=动词
Y i Y_{i} Yi=宾语
上面这个例子,举得不是太合适,只是想表明一个"词性标注"的观点:
一个词语被标注为那种词性是和前后的词语是相关的.,而这种相关性也刚好和"马尔科夫性"相吻合,所以一拍即可,crf就被拿来对词语进行标注了.

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
下面是重点,linear-CRF的具体举例:
李航书上的P196的例11.1有些问题,没有提供输入的x的具体的值是什么.
刘建平的博客园也是照抄了李航书上的东西,他似乎也是没有完全搞懂.

下面我们详细讲讲这个"词性标注"的例子.

借用一张分词的图:

!!!!!!!!!!!!!!!!!!!!!!!!!

我们的目的:
输入一段分词后的话,
输出每个词语的词性标注.

我们先回顾下HMM,每次计算的概率这样的:
当前计算的概率·转移概率·摸到红(白)球的概率
然后获取总积累概率最大的一条路径作为"状态序列",讲人话,就是想知道,这些小球是从哪几个盒子里面摸到的.

与此对应的linear-CRF,viterbi计算最优路径问题是这样的:
∑ i = 1 3 w ⋅ F i ( y i − 1 , y i , x ) \sum_{i=1}^{3}w·F_i(y_{i-1},y_i,x) i=13wFi(yi1,yi,x)
那么根据上面的图,每一层发生了什么呢?
我们知道,如果是HMM,那么每一层表示:跳转到某个盒子+抽取小球
对于linear-CRF而言,每一层表示:跳转到某个盒子(词性)+抽取小球(具体的词语)
但是呢,linear-CRF计算公式换了换,例如,计算第二层时,
公式变成:
δ 2 ( l ) = m a x j { θ 1 ( j ) + w ⋅ F 2 ( j , l , x ) } \delta_2(l)=max_j\{\theta_1(j)+w·F_2(j,l,x)\} δ2(l)=maxj{θ1(j)+wF2(j,l,x)}

讲得有点乱,我们来个表格对比下上面的内容:

计算过程HMM的例子linear-CRF的例子
算法viterbiviterbi
算法目标 P ∗ = m a x 1 ≤ i ≤ 3 δ 3 ( i ) P^*=max_{1≤i≤3}\delta_3(i) P=max1i3δ3(i) m a x i = 1 3 w ⋅ F i ( y ( i − 1 ) , y i , x ) max_{i=1}^3w·F_i(y_{(i-1)},y_i,x) maxi=13wFi(y(i1),yi,x)
计算思路跳转到每一层的盒子中
然后抽红白球(放回抽取)
跳转到每一层的盒子(词性)中
然后生成某个词语(放回生成)
算法输入摸到的小球颜色序列,
例如:(红,白,红)
生成的词语序列,
例如:(我,要,去,吃,饭)
算法输出(第三个盒子,第三个盒子,第三个盒子)(名词,谓语,动词,动词,名词)
算法第2层,
状态为l的计算
δ 2 ( l ) = max ⁡ 1 ≤ j ≤ 3 [ δ 1 ( j ) a j l ] b l ( o 2 ) \delta_2(l)=\max_{1≤j≤3}[\delta_1(j)a_{jl}]b_l(o_2) δ2(l)=max1j3[δ1(j)ajl]bl(o2) δ 2 ( l ) \delta_2(l) δ2(l)=
m a x j { δ 1 ( j ) + w F 2 ( j , l , x ) } max_j\{\delta_1(j)+wF_2(j,l,x)\} maxj{δ1(j)+wF2(j,l,x)}
上图中的圆圈含义每个圆圈代表放小球的盒子
每个盒子中都有不同颜色的小球
每个圆圈代表不同的词性
每个词性都可以依据概率生成不同的词语

其他参考链接:
https://www.cnblogs.com/Determined22/p/6915730.html
https://zhuanlan.zhihu.com/p/28343520

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值