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(…,“符号”,符号)
は,出力されるシンボルを指定します。符号
は,シンボルの名前の数値配列,字符串配列または单元格配列です。既定の設定のシンボルは,1
~N
の整数です。ここで,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より前に導入