一千萬個為什麽

搜索

隱馬爾可夫模型 - 不同的觀察符號


我真的,真的希望有人可以幫我解決這個問題。

I'm trying to implement a Hidden Markov Model (based off this paper: Here

我理解這些過程,但是,我不明白M在我試圖訓練HMM的數據中代表什麽。

我得到這個例子:

"N = the number of hidden states
 M = the number of distinct observation symbols
 T = the number of observations

 So, for the English text example, if you let N = 2, M = 27 (26 letters
 plus word-space), and T = 50,000 (number of input letters to use), you
 should see that the 2 hidden states correspond to consonants and
 vowels."

這個例子適用於英語詞典,我理解。但我正在嘗試使用包含4k +值的文件(stop.mfc)的MFCC系數來訓練HMM。現在我的解釋是: T = 4000; ('Observable'序列的大小)N = 2; (“停止”和“開始”)因此,在我給出的例子中,M代表什麽?這是:區分說“停止”或“開始”的人 M 會推斷出我的訓練樣本數量?

我真的希望有人可以幫助我。

最佳答案

首先,這不是因為你有兩個詞來確定你需要$ N = 2 $個州。您的目標不是訓練具有兩個狀態的模型 - 每個單詞一個用於識別 - 而是訓練2個模型,每個單詞一個用於識別,並且每個模型將具有所需的多個狀態。實際上,你的HMM中的每個狀態應該對應於單詞發音中的一個獨特的“階段” - 並且很可能對應於音素。你的詞匯量大小(這裏,兩個:“停止”和“去”)是外部的。對於“停止”,有4個音素。對於“go”,有2個音素。因此,您在“停止”數據上訓練一個4狀態的從左到右的模型;並且獨立於此,“go”數據上的2狀態從左到右模型。要識別給定MFCC的單詞,您可以根據數據評估這兩個模型中哪一個具有最高可能性。如果您必須識別10個單詞的詞典中的單詞,您將類似地訓練10個HMM,每個單詞一個,這些模型中的每一個具有適合於要識別的單詞的長度/復雜度的多個狀態。

您需要退後一步,問自己“為什麽HMM首先出現?”。我們需要HMM用於語音識別,因為單詞是由序列中的一系列不同元素(音素)組成的。如果我們想要描述/識別“停止”這個詞,我們需要學習一個足夠表達的描述來捕捉“首先它聽起來像ssss,在短時間內,然後它是tttt一會兒,然後它是oooo更長的時間,然後它是短暫的pppp“。 HMMs很適合表達 - 狀態是音素,轉換矩陣(這裏將是對角線+上對角線)表示我們從第一個音素到最後一個音素移動,在每個音素中保持不變的時間,並且與每個狀態相關聯的分布指示每個音素如何轉換為您的聲學特征。

您似乎也正在將離散HMM(其中觀察結果來自與每個狀態相關聯的離散分布)與連續HMM混合(其中觀察結果是標量或向量,其特征在於連續分布,例如高斯分布)。所以參數$ M $,不同觀察符號的數量,在你的情況下是無關緊要的,因為你的觀察是13維向量,一個不可數的集合! ($ M $將是......連續統一體的基數)。

我擔心您選擇的介紹材料與語音識別並不直接相關 - 盡管它對於使用HMM從離散觀察中恢復隱藏結構的應用程序很有用(並且有很多這樣的應用程序,例如解析/標記NLP)。嘗試掌握這些材料而不考慮你的語音識別問題,然後轉向關於具有多元正態分布的連續HMM的材料 - 最後到具有多元正態分布的混合的連續HMM(因為這可能是最有效的言語)。

轉載註明原文: 隱馬爾可夫模型 - 不同的觀察符號

猜你喜歡