マルコフモデルのパラメーター数


12

HMMモデルの選択にBICを使用したい:

BIC = -2*logLike + num_of_params * log(num_of_data)

それでは、HMMモデルのパラメーターの数をどのように数えますか。次のデータがある単純な2状態HMMを考えます。

data = [1 2 1 1 2 2 2 1 2 3 3 2 3 2 1 2 2 3 4 5 5 3 3 2 6 6 5 6 4 3 4 4 4 4 4 4 3 3 2 2];
model = hmmFit(data, 2, 'discrete');
model.pi = 0.6661    0.3339;
model.A = 
    0.8849    0.1151
    0.1201    0.8799
model.emission.T = 
    0.2355    0.5232    0.2259    0.0052    0.0049    0.0053
    0.0053    0.0449    0.2204    0.4135    0.1582    0.1578
logLike = hmmLogprob(model,data);
logLike =  -55.8382

だから私は思う:

Nparams = size(model.A,2)*(size(model.A,2)-1) + 
          size(model.pi,2)-1) + 
          size(model.emission.T,1)*(size(model.emission.T,2)-1)
Nparams = 13

したがって、最後に次のようになります。

BIC = -2*logLike + num_of_params*log(length(x))
BIC = 159.6319

num_of_params(単純なマルコフモデルの)式が次のようになるソリューションを見つけました。

Nparams = Num_of_states*(Num_of_States-1) - Nbzeros_in_transition_matrix

それで、正しい解決策は何ですか?遷移行列または放出行列のゼロ確率を考慮する必要がありますか?

==== 2011年7月15日以降に更新====

データディメンションの影響について説明することができると思います(「ガウス混合分布」の例を使用)

Xはn行d列の行列で、(n行は観測値に対応し、d列は変数(Ndimensions)に対応します。

X=[3,17 3,43
   1,69 2,94
   3,92 5,04
   1,65 1,79
   1,59 3,92
   2,53 3,73
   2,26 3,60
   3,87 5,01
   3,71 4,83
   1,89 3,30 ];
[n d] = size(X); 
n = 10; d =2;

モデルには、GMMの次の数のパラメーターがあります。

nParam = (k_mixtures – 1) + (k_mixtures * NDimensions ) + k_mixtures * Ndimensions  %for daigonal covariance matrices
nParam = (k_mixtures – 1) + (k_mixtures * NDimensions ) + k_mixtures * NDimensions * (NDimensions+1)/2; %for full covariance matrices

私たちは、としてXを扱う場合は1次元データ我々が持っているよりも、num_of_data = (n*d)そうするために、2次元の我々が持っているデータnum_of_data = n

2次元データ:nParam = 11; logLike = -11.8197; BIC = 1.689

1次元データ:nParam = 5; logLike = -24.8753; BIC = -34.7720

私はHMMを少ししか練習していません。HMMに(5000、6000などのパラメーター)を設定するのは正常ですか?


BICを使用する正当な理由はありますか?適切な仮定がなければ、ひどく間違った結果をもたらす可能性があります。
-suncoolsu

@suncoolsu、正当化についてどういう意味ですか?BICスコアリングに基づいたKクラスター(GMMモデル)の選択例がいくつか見つかりました。おそらく、異なる入力データ(ディメンション)を持つ2つのモデルを比較する間違った例を提供しました。
セルゲイ

1
仮定、つまり真のモデルがモデル空間にある場合にのみBICを使用することを意味しました。あなたの場合は正当化されるかもしれません。人々はAICのようにBICを使用していますが、どちらも非常に異なるものであることに同意します!
suncoolsu

こんにちは、これは遅いコメントであり、あなたがまだアクティブであることを願っていますが、モデル内のパラメータの数を取得する最良の方法は何ですか?
masfenix 14

回答:


7

問題は、遷移行列および/または放出行列のパラメータの一部が最初から固定されているかどうかです。(パラメーターの数の)計算は正しいように見えます。何らかの理由で2状態モデルの代わりに3状態モデルが必要であり、状態1から3および3から1への遷移が許可されていない(確率0)ことを事前に決定する場合、計算でこれを考慮する必要がありますパラメータの数。


データディメンションを考慮する必要がありますか?size(data)2x100になる場合
セルゲイ

@Sergey、答えのパラメーターの数の計算だけを見ました。完全を期すために、BICに興味があるので、データセットの「サイズ」の計算方法も検討する必要がありました。正直に言うと、私は独立したデータのBICの導出を見ただけですが、データの正しい「サイズ」はデータ系列の長さであると推測しています。サイズが2x100であることの意味がわかりません。それについてコメントしたい場合は、データが2 x 100マトリックスとしてエンコードされる方法のより正確な説明を提供する必要があります。
-NRH

答えてくれてありがとう、私はBIC上のデータの次元の影響を理解すると思いますが、私の更新を見てください
セルゲイ

左右(Bakis)HMMモデル(三角形の遷移行列)のパラメーターの数を減らす必要がありますか?(5000、6000などのパラメーター)を持つHMMを持つのは正常ですか?
セルゲイ

4

モデル選択BICで自由パラメーターの数を計算する場合、これは単に遷移行列と放出行列のゼロの数であることを意味します。たとえば、遷移行列にゼロがある場合、これは特定の状態が次の状態に移行する可能性がないことを意味します(遷移行列で定義されています)。これが、BICがHMMの最適な状態を選択する方法です。ただし、初期行列、遷移行列、および放射行列のサイズを使用して自由パラメータの数を取得するのは混乱を招く

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.