首頁人工智能技術(shù)資訊正文

HMM與CRF模型的使用過程有哪些差異?

更新時間:2023-02-03 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

在NLP領(lǐng)域, HMM用來解決文本序列標(biāo)注問題. 如分詞, 詞性標(biāo)注, 命名實體識別都可以看作是序列標(biāo)注問題。同HMM一樣, CRF一般也以文本序列數(shù)據(jù)為輸入, 以該序列對應(yīng)的隱含序列為輸出。

HMM模型

HMM模型表示為: lambda = HMM(A, B, pi), 其中A, B, pi都是模型的參數(shù), 分別稱作: 轉(zhuǎn)移概率矩陣, 發(fā)射概率矩陣和初始概率矩陣.

接著, 我們開始訓(xùn)練HMM模型, 語料就是事先準(zhǔn)備好的一定數(shù)量的觀測序列及其對應(yīng)的隱含序列, 通過極大似然估計求得一組參數(shù), 使由觀測序列到對應(yīng)隱含序列的概率最大。

在訓(xùn)練過程中, 為了簡化計算, 馬爾可夫提出一種假設(shè): 隱含序列中每個單元的可能性只與上一個單元有關(guān). 這個假設(shè)就是著名的隱含假設(shè).

訓(xùn)練后, 我們就得到了具備預(yù)測能力的新模型: lambda = HMM(A, B, pi), 其中的模型參數(shù)已經(jīng)改變。

之后給定輸入序列(x1, x2, ..., xn), 經(jīng)過模型計算lambda(x1, x2, ..., xn)得到對應(yīng)隱含序列的條件概率分布。

最后, 使用維特比算法從隱含序列的條件概率分布中找出概率最大的一條序列路徑就是我們需要的隱含序列: (y1, y2, ..., yn)。

CRF模型

首先, CRF模型表示為: lambda = CRF(w1, w2, ..., wn), 其中w1到wn是模型參數(shù).

接著, 我們開始訓(xùn)練CRF模型, 語料同樣是事先準(zhǔn)備好的一定數(shù)量的觀測序列及其對應(yīng)的隱含序列.與此同時我們還需要做人工特征工程, 然后通過不斷訓(xùn)練求得一組參數(shù), 使由觀測序列到對應(yīng)隱含序列的概率最大.

訓(xùn)練后, 我們就得到了具備預(yù)測能力的新模型: lambda = CRF(w1, w2, ..., wn), 其中的模型參數(shù)已經(jīng)改變.之后給定輸入序列(x1, x2, ..., xn), 經(jīng)過模型計算lambda(x1, x2, ..., xn)得到對應(yīng)隱含序列的條件概率分布.

最后, 還是使用維特比算法從隱含序列的條件概率分布中找出概率最大的一條序列路徑就是我們需要的隱含序列: (y1, y2, ..., yn).

1675416625631_nlp.png


HMM與CRF模型之間差異

HMM模型存在隱馬假設(shè), 而CRF不存在, 因此HMM的計算速度要比CRF模型快很多, 適用于對預(yù)測性能要求較高的場合。同樣因為隱馬假設(shè), 當(dāng)預(yù)測問題中隱含序列單元并不是只與上一個單元有關(guān)時, HMM的準(zhǔn)確率會大大降低, 而CRF不受這樣限制, 準(zhǔn)確率明顯高于HMM。





分享到:
在線咨詢 我要報名
和我們在線交談!