2017-05-08 368 views
0

所以我試圖建立鮑姆韋爾奇算法來爲練習做詞性標記。但是,我對使用隱馬爾可夫模型與馬爾科夫模型感到困惑。因爲你似乎失去了從州到州的背景。由於在移動到下一個狀態時不考慮最後狀態的輸出。只是爲了節省內存嗎?爲什麼在鮑姆韋爾奇算法中使用隱馬爾可夫模型與馬爾可夫模型

編輯:添加了一個例子,爲了清楚起見

例如,如果兩個狀態,A和B輸出0或1會有4個狀態轉換和2種obseravation可能性對於每個狀態,其可以可被製成如果您將每對傳入轉換與其狀態的迷惑概率混合,則會發生8次轉換。但是我的掛斷是爲什麼不開始訓練帶有16個轉換的四狀態{(A,1),(B,1),(A,2),(B,2)}的機器。我對nlp相當陌生,所以我想知道我是否不知道一些算法冗餘,如果沒有更難的數學就很難看出。

由於看起來人們失去了最後一個A爲1和2時轉換的信息,但我想知道訓練算法是否可能不需要這些信息。

https://en.wikipedia.org/wiki/Baum%E2%80%93Welch_algorithm

感謝您的信息。

+0

如果原始雙態模型是四態模型的一個子集,那麼對於任何一組雙態模型參數,都有一種方法來設置四態模型的參數,使它的行爲精確像雙態模型一樣,那麼唯一的問題是,如果現實根據雙態模型行爲,那麼您將需要更多的數據來以相同的精度擬合四態模型。您可以使用交叉驗證或https://en.wikipedia.org/wiki/Likelihood-ratio_test來判斷四態模型的額外參數是否有幫助。 – mcdowella

回答

1

這不僅僅是爲了節省內存,它是爲了提供一個更好的模型。在文本的情況下,你認爲有一個潛在的語法,它說這個單詞被用作一個名詞,而這個單詞被用作一個動詞,但你沒有得到這樣的標籤,並且它不是'數據總是很明顯的。例如。 - 看看我剛剛輸入的內容,更好的是「更好的模型」中的形容詞,但如果我使用堆棧溢出來提高自己的效果,我已經更好地用作動詞了。所以,無論是形容詞還是動詞,都是一種隱藏的狀態,而一種現實的模式會反映出這一點。

隱藏馬爾可夫模型也很靈活,如果你真的沒有任何隱藏狀態,你可以創建一個退化的隱馬爾可夫模型來反映這一點。例如,如果每個隱藏狀態只能產生一個可能的輸出,並且沒有兩個隱藏狀態可以產生相同的輸出,那麼你就有一個隱藏的馬爾可夫模型,在這個模型中你可以總是從輸出中預測所謂的隱藏狀態,反之亦然。對這個參數進行擬合將非常容易,但它可能不會將現實建模爲適當的隱馬爾可夫模型。

+0

對不起,我沒有完全清楚,我增加了一個清晰的例子。但我的意思是爲什麼不把隱藏狀態與輸出狀態結合起來,在訓練期間做出四種不同的狀態,以便從(A,1)到(B,1)和(A,2)到(B,1) (A,1)和(A,2)將是不同的狀態。隱藏狀態A和B以及觀測值1和2. –

+0

我想我已經爲修改後的問題添加了一條評論,以便儘可能地回答這樣的問題。 – mcdowella