线性链条件随机场与HMM在viterbi算法中的图解对比
先整理下相關概念:
條件隨機場P(Y|X):
表示的是給定一組輸入隨機變量 X 的條件下另一組輸出隨機變量 Y 的馬爾可夫隨機場,也就是說 CRF 的特點是假設輸出隨機變量構成馬爾可夫隨機場。
什么是隨機場?
官方定義:
隨機場就是隨機過程在空間上的推廣。隨機過程的基本參數是時間變量,而隨機場的變量是位置向量u(x,y,z).所以隨機場就是定義在一個場域參數集合上的隨機變量系。對于場域內的任一點,都有隨機變量與它對應。
講人話:就是多維的隨機過程.
什么是馬爾科夫隨機場:
馬爾科夫隨機場就是概率無向圖模型,就是聯合概率分布.
講人話:就是多維隨機變量的聯合分布.
為什么引入無向圖:
為了直觀、便于分析,學術上,圖論的東西可以用于概率,概率的東西可以用于圖論,方便多學科促進.
講人話:就是為了好看.
什么是生成式模型和判別式模型?
https://blog.csdn.net/appleyuchi/article/details/85319921
什么是線性鏈隨機場?
李航的書P195頁有定義:
P(Yi∣X,Y1,???,Yi?1,Yi+1,???,Yn)=P(Yi∣X,Yi?1,Yi+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(Yi?∣X,Y1?,???,Yi?1?,Yi+1?,???,Yn?)=P(Yi?∣X,Yi?1?,Yi+1?)
這個判別式是什么意思呢?
也就是說:這個YiY_iYi?只和前一個詞語Yi?1Y_{i-1}Yi?1?或者后一個詞語Yi+1Y_{i+1}Yi+1?以及輸入X相關
講人話,舉個可能不太恰當的例子哈:
“我要犒賞你們”
這里的你們如果放在一句話的開頭,那么詞性就是"主語"
由于上面這個桔子中的"你們"放在"犒賞后面",那么"你們"的詞性就是"賓語"
所以這里的:
Yi?1Y_{i-1}Yi?1?=動詞
YiY_{i}Yi?=賓語
上面這個例子,舉得不是太合適,只是想表明一個"詞性標注"的觀點:
一個詞語被標注為那種詞性是和前后的詞語是相關的.,而這種相關性也剛好和"馬爾科夫性"相吻合,所以一拍即可,crf就被拿來對詞語進行標注了.
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
下面是重點,linear-CRF的具體舉例:
李航書上的P196的例11.1有些問題,沒有提供輸入的x的具體的值是什么.
劉建平的博客園也是照抄了李航書上的東西,他似乎也是沒有完全搞懂.
下面我們詳細講講這個"詞性標注"的例子.
借用一張分詞的圖:
我們的目的:
輸入一段分詞后的話,
輸出每個詞語的詞性標注.
我們先回顧下HMM,每次計算的概率這樣的:
當前計算的概率·轉移概率·摸到紅(白)球的概率
然后獲取總積累概率最大的一條路徑作為"狀態序列",講人話,就是想知道,這些小球是從哪幾個盒子里面摸到的.
與此對應的linear-CRF,viterbi計算最優路徑問題是這樣的:
∑i=13w?Fi(yi?1,yi,x)\sum_{i=1}^{3}w·F_i(y_{i-1},y_i,x)i=1∑3?w?Fi?(yi?1?,yi?,x)
那么根據上面的圖,每一層發生了什么呢?
我們知道,如果是HMM,那么每一層表示:跳轉到某個盒子+抽取小球
對于linear-CRF而言,每一層表示:跳轉到某個盒子(詞性)+抽取小球(具體的詞語)
但是呢,linear-CRF計算公式換了換,例如,計算第二層時,
公式變成:
δ2(l)=maxj{θ1(j)+w?F2(j,l,x)}\delta_2(l)=max_j\{\theta_1(j)+w·F_2(j,l,x)\}δ2?(l)=maxj?{θ1?(j)+w?F2?(j,l,x)}
講得有點亂,我們來個表格對比下上面的內容:
| 算法 | viterbi | viterbi |
| 算法目標 | P?=max1≤i≤3δ3(i)P^*=max_{1≤i≤3}\delta_3(i)P?=max1≤i≤3?δ3?(i) | maxi=13w?Fi(y(i?1),yi,x)max_{i=1}^3w·F_i(y_{(i-1)},y_i,x)maxi=13?w?Fi?(y(i?1)?,yi?,x) |
| 計算思路 | 跳轉到每一層的盒子中 然后抽紅白球(放回抽取) | 跳轉到每一層的盒子(詞性)中 然后生成某個詞語(放回生成) |
| 算法輸入 | 摸到的小球顏色序列, 例如:(紅,白,紅) | 生成的詞語序列, 例如:(我,要,去,吃,飯) |
| 算法輸出 | (第三個盒子,第三個盒子,第三個盒子) | (名詞,謂語,動詞,動詞,名詞) |
| 算法第2層, 狀態為l的計算 | δ2(l)=max?1≤j≤3[δ1(j)ajl]bl(o2)\delta_2(l)=\max_{1≤j≤3}[\delta_1(j)a_{jl}]b_l(o_2)δ2?(l)=max1≤j≤3?[δ1?(j)ajl?]bl?(o2?) | δ2(l)\delta_2(l)δ2?(l)= maxj{δ1(j)+wF2(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
總結
以上是生活随笔為你收集整理的线性链条件随机场与HMM在viterbi算法中的图解对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生成式模型和判别式模型(转)
- 下一篇: 通俗理解LightGBM并图解举例