NLP系列學(xué)習(xí):前向算法和后向算法_第1頁
NLP系列學(xué)習(xí):前向算法和后向算法_第2頁
NLP系列學(xué)習(xí):前向算法和后向算法_第3頁
NLP系列學(xué)習(xí):前向算法和后向算法_第4頁
NLP系列學(xué)習(xí):前向算法和后向算法_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

NLP系列學(xué)習(xí):前向算法和后向算法在上一篇文章里,我們簡單的概述了隱馬爾科夫模型的簡單定義SEQUENCESEQUENCE8ENEMLGRAPHS8ENEMLSEQUENCESEQUENCE8ENEMLGRAPHS8ENEML在這一篇文章里,我們可以看到HMM經(jīng)過發(fā)展之后是CRF產(chǎn)生的條件,因此我們需要學(xué)好隱馬爾科夫模型.在這一部分,我比較推薦閱讀宗成慶老師的<自然語言處理〉這本書,這一部分宗老師寫的很不錯(cuò),相關(guān)的資源在我之前的文章中已經(jīng)上傳,有興趣的小伙伴可以閱讀下.回到正題,說起HMM,我們知道他是一個(gè)產(chǎn)生型模型?這樣我們可以把它看作為一個(gè)序列化判別器,比方說我們說一句話:上邊是我們說的話,我們說一句話,其實(shí)就可以看作為一個(gè)狀態(tài)序列,而下邊對應(yīng)的,我們其實(shí)就可以看作為一個(gè)判別器,假如我們把上邊的說的話和下邊的狀態(tài)序列加上一個(gè)符號,如下圖所示再去求再去求Si->Oj的概率,這樣我們寫成:朋P)這樣我們就可以引申出隱馬爾克夫模型的三大問題::估計(jì)問題:序列問題:訓(xùn)練問題或參數(shù)估計(jì)問題為了更加容易理解這三個(gè)問題,我發(fā)現(xiàn)之前有一個(gè)博客的擲骰子的例子很生動(dòng),便特地弓I用過來,方便自己理解:假設(shè)手里有三個(gè)不同的骰子。第一個(gè)骰子是我們平常見的骰子(稱這個(gè)骰子為D6),6個(gè)面,每個(gè)面(1,2,3,4,5,6)出現(xiàn)的概率是1/6。第二個(gè)骰子是個(gè)四面體(稱這個(gè)骰子為D4),每個(gè)面(1,2,3,4)出現(xiàn)的概率是1/4。第三個(gè)骰子有八個(gè)面(稱這個(gè)骰子為D8),每個(gè)面(1,2,3,4,5,6,7,8)出現(xiàn)的概率是1/8。D6D40800000000現(xiàn)在我們開始擲骰子,我們先從三個(gè)骰子里挑一個(gè),挑到每一個(gè)骰子的概率都是1/3。然后我們擲骰子,得到一個(gè)數(shù)字,1,2,3,4,5,6,7,8中的一個(gè)。不停的重復(fù)上述過程,我們會(huì)得到一串?dāng)?shù)字,每個(gè)數(shù)字都是1,2,3,4,5,6,7,8中的一個(gè)。例如我們可能得到這么一串?dāng)?shù)字(擲骰子10次):1635273524.那這時(shí)候我們就把這投擲出來的這些數(shù)字成為可見狀態(tài)鏈,但是在隱馬爾可夫模型中,我們丌僅僅有這么一串可見狀態(tài)鏈,還有一串隱含狀態(tài)鏈。在這個(gè)例子里,這串隱含狀態(tài)鏈就是你用的骰子的序列?比如,隱含狀態(tài)鏈有可能是:D6D8D8D6D4D8D6D6D4D8

ta卄駅可亠從一卜隱金儀息別卜*ta卄駅可亠從一卜隱金儀息別卜*卜陀就我邑m雄視I從一卩黒含瞋思列…+t呻見牡#帕樹山16含狀裁林關(guān)柔示意酣r\但是一般來說,我們用的馬爾科夫鏈都是隱含狀態(tài)鏈,因?yàn)殡[含狀態(tài)(骰子)之間存在轉(zhuǎn)換概率(transitionprobability)。在我們這個(gè)例子里,D6的下—個(gè)狀態(tài)是D4,D6,D8的概率都是1/3°D4,D8的下一個(gè)狀態(tài)是D4,D6,D8的轉(zhuǎn)換概率也都一樣是1/3。這樣設(shè)定是為了最開始容易說清楚,但是我們其實(shí)是可以隨意設(shè)定轉(zhuǎn)換概率的。比如,我們可以這樣定義,D6后面不能接D4,D6后面是D6的概率是0.9,是D8的概率是0.1。這樣就是一個(gè)新的HMM。同樣的,盡管可見狀態(tài)之間沒有轉(zhuǎn)換概率,但是隱含狀態(tài)和可見狀態(tài)之間有一個(gè)概率叫做輸出概率(emissionprobability)。就我們的例子來說,六面骰(D6)產(chǎn)生1的輸出概率是1/6。產(chǎn)生2,3,4,5,6的概率也都是1/6。我們同樣可以對輸出概率進(jìn)行其他定義。比如我有一個(gè)被賭場動(dòng)過手腳的六面骰子,擲出來是1的概率更大,是1/2,擲出來是2,3,4,5,6的概率是1/10。這時(shí)候我們再結(jié)合這個(gè)例子去理解并解決HMM中的三大問題就會(huì)容易許多了:第一個(gè)問題:我們知道骰子有幾種(隱含狀態(tài)數(shù)量),每種骰子是什么(轉(zhuǎn)換概率),根據(jù)擲骰子擲出的結(jié)果(可見狀態(tài)鏈),我想知道每次擲出來的都是哪種骰子(隱含狀態(tài)鏈)。第二個(gè)問題:還是知道骰子有幾種(隱含狀態(tài)數(shù)量),每種骰子是什么(轉(zhuǎn)換概率),根據(jù)擲骰子擲出的結(jié)果(可見狀態(tài)鏈),我想知道擲出這個(gè)結(jié)果的概率.第三個(gè)問題:知道骰子有幾種(隱含狀態(tài)數(shù)量),但是并不知道每種骰子是什么(轉(zhuǎn)換概率),觀測到很多次擲骰子的結(jié)果(可見狀態(tài)鏈),我想反推出每種骰子是什么(轉(zhuǎn)換概率)。1:估計(jì)問題:在我們知道我們有幾種篩子的時(shí)候,并且知道篩子是什么,并且已知結(jié)果,這時(shí)候我們再去推測是哪一種篩子就會(huì)容易很多,是可以通過窮舉法進(jìn)行解決的,說白話就是推測所有的隱含狀態(tài)序列,并且再去計(jì)算所以的可能觀測序列的概率,但是這樣的方法也有問題,如果你的可能,就跟上邊的三個(gè)篩子一樣,還比較0K,因?yàn)槟愕母怕蔬€是很大,比較容易猜得對,但是你有100個(gè)長度的話,不說多了,每個(gè)長度上對應(yīng)的隱含狀態(tài)為2,這樣你的時(shí)間復(fù)雜度就是0(2的100方),這個(gè)復(fù)雜度是很高的,盡管很簡單,但是還是不實(shí)用的?就跟我們查找中的直接查找一樣,盡管簡單,但是實(shí)則更困難?這樣的話,我們就采用了前向算法和后向算法來去計(jì)算這個(gè)問題.那下邊我們就去推一下這個(gè)公式:首先,我們要假設(shè)一個(gè)變量at(i),這個(gè)變量的意義是說我們在t時(shí)刻(1a;(/)=P(()i02,qf=“)而我們接下來要做的是計(jì)算這個(gè)at(i),然后就可以根據(jù)at(i)來去計(jì)算在T時(shí)刻的概率,最后也就計(jì)算出P(O|u),這時(shí)候0是0-T時(shí)刻的概率,我們自然就可以計(jì)算出所有時(shí)刻的概率.在這里,我們要用歸納思想去計(jì)算在t+1時(shí)刻的at+1(i):

qP(()IG%31+1風(fēng)心)yg(I)⑺知qP(()IG%31+1風(fēng)心)yg(I)⑺知這時(shí)候我們通過一張圖去直觀的表示從倒j的狀態(tài)轉(zhuǎn)移過程:最終的計(jì)算得到的概率為:那后向算法其實(shí)就跟前向算法類似,過程圖如下:那么由上述所知,前向和后向算法的時(shí)間復(fù)雜度均是0(N2T),這個(gè)相比起之前,已經(jīng)優(yōu)化了太多,其中N是隱藏狀態(tài)的長度,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論