HiddenMarkovProcess

HiddenMarkovProcess[i0,m,em]

遷移行列 m,放出行列 em,初期隠れ状態 i0の,離散時間,有限状態の隠れマルコフ(Markov)過程を表す.

HiddenMarkovProcess[,m,{dist1,}]

放出分布 distiの隠れマルコフ過程を表す.

HiddenMarkovProcess[p0,m,]

初期隠れ状態確率ベクトル p0の,隠れマルコフ過程を表す.

詳細

  • HiddenMarkovProcessは,隠れマルコフモデル(HMM)としても知られている.
  • HiddenMarkovProcessは,離散時間・離散状態のランダム過程である.
  • 隠れマルコフ過程は,もとになっている隠れ状態遷移過程としてDiscreteMarkovProcess[p0,m]を有する.放出と呼ばれる隠れマルコフ過程から観察された値はランダムで,状態 i において放出分布 distiに従う.指定された一連の状態を訪れている間に生成される放出は独立である.
  • HiddenMarkovProcessの隠れ状態は,1から までの整数である.ただし, は遷移行列 m の長さである.
  • 遷移行列 m は,条件付きの隠れ状態遷移確率 mi,jProbability[x[k+1]jx[k]i]を指定する.ただし,x[k]は時点 k における過程の隠れ状態である.
  • 放出行列 em は指定された隠れ状態 emi,rProbability[y[k]rx[k]i]における放出確率を指定する.ただし,x[k] は隠れ状態であり,y[k]は時点 k における放出である.
  • 放出分布 distiはすべてが一変量あるいはすべてが多変量でなければならず,すべてが離散あるいはすべてが連続でなければならない.
  • 放出分布 distiは,x[k]i であるならば y[k]distiであるように指定する.
  • 放出を生成しない無音状態は,放出行列の場合は0の行で,一般放出の場合はNoneで表される.各無音状態は放出状態への経路を持たなければならない.
  • 無音状態を持つ隠れマルコフ過程 proc については,HiddenMarkovProcess[proc]は無音状態を取り除いた有効な過程を与える.
  • EstimatedProcess[data,HiddenMarkovProcess[n,edist]]を使い,edist で指定される族内の放出分布を持った n 状態過程を推定することができる.
  • 次の特殊 edist テンプレートを使うことができる.
  • ss 回の離散放出
    "Gaussian"ガウス放出
    distdist として分布されたすべての状態についての放出
    {dist1,,distn}状態 i からの放出分布 disti
  • EstimatedProcessProcessEstimatorについての次の設定を許容する.
  • Automaticパラメータ推定器を自動的に選ぶ
    "BaumWelch"期待値を最大化することで対数尤度を最大化する
    "ViterbiTraining"もっとも確率の高い経路を復号化し,教師あり訓練を使う
    "StateClustering"クラスタリング,続いて教師あり訓練を使う
    "SupervisedTraining"状態データと放出データの両方を使う推定
  • "BaumWelch""ViterbiTraining""StateClustering"の各メソッドは推定において隠れ状態経路を指定する必要がないのに対し,"SupervisedTraining"は隠れ状態経路データへのアクセスがあることに依存する.
  • LogLikelihood等のデータに対して使える関数は,Missing値を許容する.
  • RandomFunction[HiddenMarkovProcess[]]は,デフォルトで,放出のみを与える.Method->{"IncludeHiddenStates"->True}とすると,状態数列がメタデータとして含まれたTemporalDataオブジェクト td を与えるようになる.隠れ状態データは td["HiddenStates"]を使って取り出すことができる.
  • HiddenMarkovProcessは,m が負の要素がなく行の合計が1の × 行列であること,em が負の要素がなく行の合計が0か1の × 行列であること,i0が1から までの整数であること,p0が合計が1になる非負の要素の長さ のベクトルであることを許容する.
  • HiddenMarkovProcessは,LogLikelihoodFindHiddenMarkovStatesEstimatedProcessPDFProbabilityRandomFunction等の関数で使うことができる.

例題

すべて開くすべて閉じる

  (2)

隠れマルコフ過程を定義する:

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

放出を可視化する:

与えられた放出から,最も確率の高い隠れ状態数列(Viterbi復号化)を求める:

スコープ  (17)

基本的な用法  (8)

離散放出のある隠れマルコフ過程を定義する:

サンプル経路を生成する:

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

放出数列のLogLikelihoodを計算する:

多変量連続放出を有する隠れマルコフ過程を定義する:

時点 における放出の,確率密度関数をプロットする:

無音状態で離散放出の隠れマルコフ過程を定義する:

Noneあるいはゼロベクトルを使って無音状態を示す:

与えられた放出から,隠れ状態の最も可能性が高い数列を求める:

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

無音状態が除去された,有効な隠れマルコフ過程を求める:

無音状態と連続放出を有する隠れマルコフ過程を定義する:

Noneを使って無音状態を示す:

過程の平均を求める:

無音状態が除去された有効な隠れマルコフ過程を求める:

データから隠れマルコフ過程を推定する:

可能な3つの放出値がある二状態過程を指定する:

過程の共分散を計算する:

Annotationによって注釈が付けられたGraphを使ってHiddenMarkovProcessを定義する:

放出のもとになっている状態のみで,有効な隠れマルコフモデルを計算する:

推定  (5)

正規分布に従う放出のある二状態過程を推定する:

100の経路にヒストグラムを重ね合せる:

テンプレート形式を使って推定する過程のクラスを指定する:

指数的な放出のある二状態モデルを推定する:

過程の推定に初期値を与える:

sv を初期モデルとして使って過程を推定する:

別の推定メソッドを指定する:

"BaumWelch"は,与えられた放出の尤度を反復的に最大にするデフォルトの推定器である:

"ViterbiTraining"は,指定された放出とそのもとになっている未知の状態の結合尤度を最大化する,反復的推定器である:

"StateClustering"は,高速ヒューリスティック非反復的推定を行うために,よく使われる:

推定過程の対数尤度を比較する:

"SupervisedTraining"は,与えられた放出と与えられた状態の結合尤度を最大化する推定器である:

テンプレート形式を使って推定する過程のクラスを指定する:

"StateData"サブオプションを使い,与えられた放出のもとになっている状態に関するデータを指定する:

2放出1無音状態の3状態モデルを推定する:

初期値過程を使ってモデルを推定する:

初期過程が与えられていない場合は,テンプレートでどの状態が無音であるかを指定する:

結果の過程の対数尤度を比較する:

過程スライス特性  (4)

固定時点における放出分布のPDFを求める:

記号時点について,多変量放出の平均と共分散を計算する:

指定された時点における隠れマルコフ過程の放出を,サンプルとして抽出する:

頻度を可視化し,理論的結果と比較する:

隠れマルコフ過程に従う放出の定常分布を求める:

一般化と拡張  (1)

RandomFunctionは隠れ状態経路を含まなければならないと指定する:

隠れ状態は,生成されたTemporalDataオブジェクトにメタデータとして保存されている:

状態経路を可視化する:

アプリケーション  (11)

ゲーム  (3)

ときに正直ではなくなるカジノがコインを賭けるゲームを提供しており,表が出る確率が裏が出る確率の3倍になる不正なコインを使う不正行為を働いている.カジノのディーラーは,不正なコインと公正なコインを10%の確率で秘密裏に交換していることが知られている:

表または裏が出る確率:

どちらのコインで始めるかを同じ確率で想定した,結果の隠れマルコフ過程:

前の回が表だった場合に表が出る確率:

勝負を6回行うつもりだとして,少なくとも3回裏が出る確率を計算する:

カジノ側がすべての回で不正を行わなかった場合の確率:

一連の勝負で,カジノがどの回に不正なコインを使ったかを推測する:

赤,青,緑の色が付いた,たくさんのボールが入っている壷が3つある:

毎回,無作為に1つの壷を選び,ボールを選び,色を発表し,ボールを壷の1つに戻す.この過程が4回繰り返される.次の壷に移る確率は次の通りである:

各壷からある1色を取り出す確率は,各壷についての各ボール数の割合になる:

最初の壷を選ぶ与えられた確率についての隠れマルコフ過程を構築する:

ボールを{red,blue,green,green}の順で得る確率:

色の順序を与えられて,選ばれる確率が最も高い壷の順を求める:

一人称の視点でのシューティングゲームで,エージェントがある階に隠れており,プレーヤーに向かって飛び出す準備をしている.エージェントはプレーヤーを見ることはできないが,何をしているかを聞くことはでき,レイアウトの知識に照らしてプレーヤーの位置を推定することはできる.草,金属,水,ドアの4つのタイプの27の区域のレイアウトを考える:

異なる種類の区域に色を割り当てる:

異なるタイプの区域を歩くと異なるタイプの音がする:

音が出るどうかの確率は区域のタイプによる:

このレベルのレイアウトを可視化する:

プレーヤーがどのドアから入るかは同じ確率であるとする:

プレーヤーが現在の区域に留まる確率は10%,隣接する区域のどれに移動するかの確率は等しい.ここから,次の遷移確率行列が与えられる:

エージェントは次の一連のノイズを聞く:

これは,プレーヤーが27の番号があるドアから入り,現在区域7に居る可能性が最も高いことを示している:

遺伝学  (3)

DNA配列はACGTの4文字からなる.ヌクレオチド配列と呼ばれる部分配列は,異なる文字が出現する頻度で特徴付けられる.タスクの1つは,配列を異なるヌクレオチド配列に分割することである.エクソンから始まり,5'スプライス部位があり,イントロンで終る配列を与えられたとしよう.エクソンの塩基組成が一様なら,イントロンにはCおよびGが欠けており,スプライス部位のコンセンサスヌクレオチドは確率0.95でGであり,ヌクレオチドの頻度分布は以下の通りである:

状態マシンには,エクソン(1),スプライス(2),イントロン(3),終端(4)の状態があり,状態間には次の遷移確率がある:

放出は,ヌクレオチドA(1),C (2),G (3),T (4),終端(5)のいずれかである:

最も確率が高い現行のヌクレオチド配列(エクソン,スプライス,イントロン,終端)を求める:

上記のヌクレオチド配列とDNA配列の同時確率:

BRCA1遺伝子の損傷した対立遺伝子Bによって遺伝した乳癌のリスクをモデル化する.それぞれの親遺伝子が確率1/2で各対立遺伝子に貢献しているとする:

母親が機能性の対立遺伝子ペア「bb」を持っており,息子が各対立遺伝子の組合せを持つ確率は以下の通りである:

息子の放出確率は,同じく男性である父親と等しい.放出は癌が1,癌ではないが2である:

父については既往症が分かっているとする:

父と息子の両者が乳癌を発症する確率を求める:

二倍体植物の2遺伝子が,次の対立遺伝子があるものとして調べられている:

9つのはっきりした遺伝子型がある:

この植物は自殖性である.つまり,子孫の遺伝子型は親の遺伝子型のみに依存する:

遷移確率を符号化する,世代間の遺伝子型の遷移グラフ:

DiscreteMarkovProcessを使って世代的な遺伝子型の変化をモデル化する:

対立遺伝子は植物の表現型,つまり可視の特徴を制御する.大文字対立遺伝子が対応する小文字の対立遺伝子に対して完全に優勢だと仮定する:

遺伝子型は4つの顕著な表現型を制御する:

この植物の表現型(整数によって指標が付けられている)は隠れマルコフ過程でモデル化できる:

2734種類の植物を4世代に渡って集めたメンデルの観察のシミュレーションを行う:

この観察から遺伝子型の遷移確率を除去する:

言語学  (1)

サンプルテキストの文字を,二状態隠れマルコフモデルを使って子音と母音に分類する:

最高の母数推定を求める:

各文字について,放出行列から確率が最も高い状態を選ぶ:

気象  (2)

木の年輪の大きさは年間平均気温と相関する.「暑い」と「寒い」の2つの気温状態,大中小の3つの年輪サイズを使い,4年連続の年輪サイズが与えられたとして,この4年間の年平均気温を推定する.気温交代についての遷移確率:

放出確率:

木の年輪サイズの隠れマルコフモデル:

特定の年輪観察から最も確率の高い気温列を求める:

個々の気温の最も確率の高い列を求める:

部屋に閉じ込められていて,外部の天候に関する唯一の手がかりが,食事を運んでくる人間が傘をさしているかどうかであるとする.天候は,晴れ,雨,霧の3状態のどれかであるとする.遷移確率は以下の通りである:

傘を持っているかどうかの確率は天候に依存する:

隠れマルコフ過程によって傘を持っているかどうかをモデル化する:

外部の天候の推理は手がかりのパターンに基づいている:

もっとも可能性の高い天候パターン:

各日の最も可能性の高い条件列:

その他  (2)

生産過程は,よい状態あるいは悪い状態のどちらかである.よい状態は90%の確率で持続する.一度状態が悪くなると,その状態は永遠に続く:

状態がよいときに,製品品質は99%の確率で許容範囲にある.状態が悪くなると,製品品質が許容範囲に入る確率は96%になる:

この過程が確率80%のよい状態から始まって,最初の製品が許容範囲内だとすると,次の2つの製品の品質が許容範囲内である確率は次の通りである:

可能な状態が00,01,10,11の,2ビットのレジスタについて考える.このレジスタは,同確率で,この4状態のいずれかから始まる:

各時間ステップで,レジスタはランダムに操作される.レジスタは1/2の確率で変化なしに置かれる.レジスタの2つのビットが逆になる確率は1/4で,右のビットが逆になる確率は1/4である:

このようにレジスタが操作された後で,左のビットが観察される:

最初の3回の観察が0,0,1だとして,状態の最も可能性の高い列を求める:

特性と関係  (6)

離散放出のあるHiddenMarkovProcessSliceDistributionは,評価すると経験的DataDistributionになる:

時点 における放出の分布を求める:

時点 における放出の結合分布のPDFを求める:

1回の指数放出のあるHiddenMarkovProcessの放出はHyperexponentialDistributionに従う:

一般的な放出分布に従うHiddenMarkovProcessの放出を評価するとMixtureDistributionになる:

放出行列として恒等式を持つ隠れマルコフモデルは,離散マルコフ過程と同等である:

HiddenMarkovProcessは,隠れ状態のラベル付け直しまで定義される:

短い放出数列の尤度は両過程で等しい:

無音状態がある異なる隠れマルコフ過程は,すべての放出数列に対して等しい尤度を割り当てることがある:

両者の有効な隠れマルコフ過程が等しいことを証明する:

両モデルのすべての短い放出数列の尤度が等しいことを確かめる:

考えられる問題  (5)

放出分布はすべて同じ次元でなければならない:

放出分布はすべてが連続あるいはすべてが離散でなければならない:

放出状態の集合にはすべての無音状態から到達可能でなければならない.つまり,回帰性のあるクラスが完全に無音になることはない:

遷移確率を変更すると,放出状態1が無音状態2からアクセスできるようになる:

遷移行列の行の総和が1にならなければ,それらの行は自動的に正規化される:

初期確率の総和が1にならなければ,それらは正規化される:

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

テキスト

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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