主要内容

hmmtrain

出力からの隠れマルコフモデルのパラメ,タ,推定

構文

[estr,ESTEMIT] = hmmtrain(seq,TRGUESS,EMITGUESS)
hmmtrain(…,“算法”,算法
hmmtrain(…,“符号”,符号)
hmmtrain(…,“宽容”,tol)
hmmtrain(…,“Maxiterations”,麦克斯特)
hmmtrain(…,“详细”,真的)
hmmtrain(…,Pseudoemissions PSEUDOE)
hmmtrain(…,Pseudotransitions PSEUDOTR)

説明

[estr,ESTEMIT] = hmmtrain(seq,TRGUESS,EMITGUESS)は,隠れマルコフモデルの遷移確率と出力確率をBaum-Welchアルゴリズムを使用して推定します。seqは,単一列を含む行ベクトル,各列が1行の行列,または各セルに1列を含む细胞配列です。TRGUESSおよびEMITGUESSは,遷移および出力確率行列の初期推定です。TRGUESS (i, j)は,状態から状態jへの遷移の推定確率です。EMITGUESS (i (k)は,シンボルkが状態から出力される推定確率です。

hmmtrain(…,“算法”,算法は,学習アルゴリズムを指定します。算法は,“BaumWelch”または“维特比”のいずれかです。既定の設定のアルゴリズムは,“BaumWelch”です。

hmmtrain(…,“符号”,符号)は,出力されるシンボルを指定します。符号は,シンボルの名前の数値配列,字符串配列または单元格配列です。既定の設定のシンボルは,1Nの整数です。ここで,Nは,可能な出力数です。

hmmtrain(…,“宽容”,tol)は,反復推定処理の収束テストに使用する許容誤差を指定します。既定の設定の許容誤差は1的军医です。

hmmtrain(…,“Maxiterations”,麦克斯特)は,推定処理の最大反復回数を指定します。既定の設定の最大値はOne hundred.です。

hmmtrain(…,“详细”,真的)は,各反復でのアルゴリズムの状態を返します。

hmmtrain(…,Pseudoemissions PSEUDOE)は,ビタビ学習アルゴリズムの出現頻度の出力値を指定します。この引数を使用すると,標本列で表されない可能性のある非常に低い確率の出力の確率推定がゼロになることを回避できます。PSEUDOEは,サaaplズがm行n列の行列です。ここで,m は、隠れマルコフ モデル内の状態数、n は可能な出力数です。i→k 出力がseq内で発生しない場合,PSEUDOE (i (k)を列seq内でこのような出力の期待値の推定を表す正の数になるように設定します。

hmmtrain(…,Pseudotransitions PSEUDOTR)は,ビタビ学習アルゴリズムの出現頻度の遷移値を指定します。この引数を使用すると,標本列で表されない可能性のある非常に低い確率の遷移の確率推定がゼロになることを回避できます。PSEUDOTRは,サ▪▪ズがm行m列の行列です。ここで,m は隠れマルコフ モデル内の状態数です。i→j 遷移が内で発生しない場合,PSEUDOTR (i, j)を列内でこのような遷移の期待値の推定を表す正の数になるように設定します。

列に該当する状態が既知である場合は,hmmestimateを使用するとモデルパラメ,タ,を推定できます。

許容誤差

入力引数 '宽容的は,関数が応答を返す前にhmmtrainアルゴリズムが実行するステップ数を抑制します。アルゴリズムは,以下の3の値がすべて宽容に指定されている値より小さい場合に終了します。

  • 遷移行列と出力行列の現在の推定値を使用して入力列seqが生成した対数尤度

  • 行列のサ@ @ズで正規化された遷移行列のノルムでの変更

  • 行列のサ@ @ズで正規化された出力行列のノルムでの変更

“宽容”の既定値は1 e-6です。許容誤差を大きくすると,hmmtrainアルゴリズムが終了前に実行するステップ数が減少します。

maxiterations

最大反復回数“maxiterations”は,アルゴリズムが終了前に実行するステップ数の最大値を抑制します。アルゴリズムが指定されている許容誤差に達する前に麦克斯特回の反復を実行すると,アルゴリズムは終了し,関数は警告を返します。この場合,“maxiterations”の値を大きくすると,アルゴリズムが終了する前に目的の許容誤差に達するようにすることができます。

Trans = [0.95,0.05;0.10、0.90);Emis = [1/ 6,1 / 6,1 / 6,1 / 6,1 / 6,1 / 6,1 / 6,1 /6;1/10, 1/10, 1/10, 1/10, 1/10, 1/2];Seq1 = hmmgenerate(100,trans,emis);Seq2 = hmmgenerate(200,trans,emis);Seqs = {seq1,seq2};[estr,estE] = hmmtrain(seqs,trans,emis);

参考文献

[1]德宾,R., S.埃迪,A.克拉夫,G.米奇森。生物序列分析。英国剑桥:剑桥大学出版社,1998年。

バ,ジョン履歴

R2006aより前に導入