FindHiddenMarkovStates

FindHiddenMarkovStates[data,hmm]

放出 data に対応するHiddenMarkovProcess hmm の最も可能性が高い隠れ状態を求める.

FindHiddenMarkovStates[data,hmm,crit]

与えられた基準 crit を使って隠れ状態を求める.

詳細

  • FindHiddenMarkovStatesは,隠れ状態デコーディングおよびViterbiデコーディングとしても知られている.
  • 放出 data は,リストあるいはTemporalDataオブジェクトでよい.
  • FindHiddenMarkovStatesは,放出 data と同じ形式で隠れ状態経路を返す.data に複数の経路がある場合は,複数の状態経路が返される.
  • 基準 crit の可能な値
  • "ViterbiDecoding"隠れ状態列の最大尤度(デフォルト)
    "PosteriorDecoding"各時点における隠れ状態についての最大尤度
  • 放出列を与えられると,"ViterbiDecoding"は状態列全体としての確率TemplateBox[{Probability, paclet:ref/Probability}, RefLink, BaseStyle -> {InlineFormula}][x(0)=i_0∧...∧x(n)=i_(n){y(0)=y_0,...,y(n)=y_(n)},...]を最大化する.これに対し,"PosteriorDecoding"は各時点における状態値の確率TemplateBox[{Probability, paclet:ref/Probability}, RefLink, BaseStyle -> {InlineFormula}][x(t)=i{y(0)=y_0,...,y(n)=y_(n)},...]を最大化する.

例題

すべて開くすべて閉じる

  (1)

偏りのない(状態1)コインと偏りのある(状態2)コインからの出力を観測しているとする:

観測からコインの変化の最も可能性が高い列を求める:

スコープ  (7)

リスト入力を使うと,FindHiddenMarkovStatesは隠れ状態列をリストとして出力する:

TemporalData入力については,出力は入力と同じタイプの時系列オブジェクトである:

FindHiddenMarkovStatesは個別の経路にマップする:

各隠れ状態経路は個別に見付けられる:

放出の中に未知のものがある場合は状態列を復号化する:

観測の指定された列について隠れ状態を復号化する:

Viterbiデコーディングを使って最も可能性の高い列を求める:

事後デコーディングを使って個別に最も可能性が高い状態の列を求める:

連続放出の隠れマルコフ(Markov)過程を定義する:

隠れ状態の値も含め,過程のシミュレーションを行う:

指定された放出について,最も可能性が高い列を求める:

復号化された状態を実際の状態と比較する:

多変量放出を与えられた場合の,最も可能性が高い状態列を求める:

このシミュレーションを行う:

最も可能性が高い状態列を復号化する:

結果を実際の状態列と比較する:

隠れ状態と放出の結合対数尤度を定義する:

Viterbi復号化された状態列の対数尤度は,実際の列と等しいかそれより高い:

無言状態の過程について状態列を復号化する:

最も可能性が高い状態列を求める:

列中の放出状態をハイライトする:

アプリケーション  (3)

常にではないが不正直なカジノが,表が裏の3倍の確率で出る不正なコインを使ったコイン賭博を提供している.このカジノのディーラーは,10%の確率で偏りのないコインと不正なコインを切り換える:

表または裏が出る確率:

どちらのコインで始めるかの確率が等しいと仮定した場合の,結果の隠れマルコフ過程:

一連のコイントスを与えられたとして,どの場合にディーラーが不正なコインを使ったかを推測する:

放出を可視化し,カラーコーディングを使って一連の隠れ状態を示す:

過程を定義し,与えられた観察のもとになった隠れ状態を復号化する:

復号化された状態値に従って時間と注釈の放出をグループ化する:

おもちゃのロボットが,壁が灰色の正方形で表された4×4の格子上を動いている.このロボットは図の外に出ることはできない.ロボットは4つの方向から無作為に選択して動こうとする.動きが不可能な場合はもとの位置に留まる:

ロボットが移動できるタイルを求める:

可能な推移を計算する:

グラフ上にロボットの動きを符号化し,図に重ねる:

もとになった隠れ状態についてのDiscreteMarkovProcessを構築する:

ロボットの光学センサーの確度評価は90%であり,失敗した場合は今までに使った色から等確率で選択する:

隠れマルコフ過程による,ロボットの光学センサーモデルの読込み:

センサーの読込みを与えられたとして,モデルを使って図の上でのロボットの最も可能性の高い動きを求める:

"ViterbiDecoding""PosteriorDecoding"の基準を使って復号化された経路を可視化する:

特性と関係  (3)

"ViterbiDecoding"は状態と放出の結合対数尤度を最大化する:

状態と放出の結合対数尤度を定義する:

可能なすべての状態経路を計算する:

すべての経路の組合せについて,結合対数尤度を計算する:

FindHiddenMarkovStatesは,結合対数尤度が最大の状態経路を返す:

"PosteriorDecoding"は,各時点における最も可能性の高い状態の列を別々に求める:

時点0,1,2における隠れ状態値についての分布を定義する:

隠れ状態の値が与えられているとして,放出についての分布を定義する:

時点0,1,2における条件付き放出は互いに独立である:

時点0,1,2における放出を状態値と条件付き放出値の関数として定義する:

放出確率変数は観測値に等しいという条件を定義する:

個々の独立した時点例について,最も確率の高い状態の列を求める:

事後デコーディングによる結果と比較する:

FindHiddenMarkovStatesは硬出力,すなわち1つの経路のみを返す:

この場合は,同程度の確率の2つの経路がある:

完全検索で,これらが唯一の経路であることが分かる:

考えられる問題  (2)

FindHiddenMarkovStatesは,経路が与えられた隠れマルコフモデルと矛盾する場合は未評価で返される:

この放出列の尤度は零に等しい:

"PosteriorDecoding"は,結果として状態の位相と矛盾する状態列になることがある:

次の放出列は隠れマルコフ過程と矛盾しない:

事後デコーディングを使って隠れ状態を求める:

求まった状態列は状態遷移についてのモデルとは矛盾する:

Wolfram Research (2014), FindHiddenMarkovStates, Wolfram言語関数, https://reference.wolfram.com/language/ref/FindHiddenMarkovStates.html.

テキスト

Wolfram Research (2014), FindHiddenMarkovStates, Wolfram言語関数, https://reference.wolfram.com/language/ref/FindHiddenMarkovStates.html.

CMS

Wolfram Language. 2014. "FindHiddenMarkovStates." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FindHiddenMarkovStates.html.

APA

Wolfram Language. (2014). FindHiddenMarkovStates. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FindHiddenMarkovStates.html

BibTeX

@misc{reference.wolfram_2024_findhiddenmarkovstates, author="Wolfram Research", title="{FindHiddenMarkovStates}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/FindHiddenMarkovStates.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_findhiddenmarkovstates, organization={Wolfram Research}, title={FindHiddenMarkovStates}, year={2014}, url={https://reference.wolfram.com/language/ref/FindHiddenMarkovStates.html}, note=[Accessed: 22-November-2024 ]}