從PGM到HMM再到CRF(self_note)

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
問:
有一點不太明白 想請教:MRF和CRF看起來好像就是p(x,y)和p(y|x)的差別,爲什麼他們兩個模型的應用差距那麼的大呢?MRF廣泛運用在各種領域,CRF大部分都用的linear

答:
忽略掉生成模型和判別模型的差別,如果只是給定了觀測變量X要計算隱變量Y的概率話,而不需要生成一個新的樣本的話,MRF和CRF確實是一樣的。很多論文裏用MRF,其實就是把MRF當成CRF用的,所以你說他們用的是MRF也行,說他們用的是general CRF也行。
Linear-Chain CRF的強勢主要是在自然語言處理中的強勢吧,因爲句子是一個單詞的序列嘛,自然是一維的線性結構(暫時不考慮語言中的從句等遞歸結構或者其他信息),不像圖像那樣是二維的,因此用不着general CRF。當然自然語言處理中也有用general CRF的,比如做命名實體識別,有一句話開頭是Green,你不知道這是個人名“格林”還是“綠色”這個詞放在句首所以要大寫。但如果這句話後面又出現了一個首字母大寫的Green,那就說明句首的Green很可能是個人名。所以可以除了在相鄰單詞之間連邊外,再加上在同一個詞的不同出現之間連邊,這時圖模型就有環了,變成了general CRF(這種叫skip-chain CRF)。
不過general CRF很難訓練呀,圖像處理裏面的MRF很多都是形狀規則的(格點形成一個矩形,近似推斷的時候可以固定其他點每次求某一列或者某一行變量的marginal),而skip-chain CRF邊的連接是不規則的,不同的句子的圖裏面環的個數和大小都可能不一樣,這就很麻煩了。(當然圖像處理的時候也有的用超像素把相似節點合併,這時候MRF的訓練就很麻煩了)加上也沒有什麼特別成熟的工具包來做skip-chain CRF的推斷(印象中CRF++和CRFSuite都只能處理LC-CRF),研究這個的人也就很少了。要建模那些複雜的遞歸或者引用關係的話,用CRF那麼複雜,現在大家都改用神經網絡了,比如LSTM,反正Keras搭個神經網絡也就幾十行代碼都不到,很快的。
——摘自知乎https://www.zhihu.com/people/SeptEnds/answers的回答。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章