Markov 모델의 매개 변수 수


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간단한 Markov 모델 의 수식이 다음과 같은 솔루션을 찾았습니다 .

Nparams = Num_of_states*(Num_of_States-1) - Nbzeros_in_transition_matrix

그렇다면 올바른 해결책은 무엇입니까? 전이 또는 방출 매트릭스에서 제로 확률을 고려해야합니까?

==== 2011 년 7 월 15 일 이후 업데이트 됨 ====

데이터 차원의 영향에 대한 설명을 제공 할 수 있다고 생각합니다 ( "가우스 혼합 분포"예제 사용).

X는 (n 행은 관측치에 해당하고 d 열은 변수 (차원)에 해당하는 nxd 행렬입니다.

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; 빅 = 1.689

1 차원 데이터 : nParam = 5; logLike = -24.8753; 빅 = -34.7720

나는 HMM에 대한 연습이 거의 없습니다. H5000이 (5000, 6000 이상 매개 변수) 인 것이 정상입니까?


BIC 사용에 대한 정당성이 있습니까? 적절한 가정이 없다면 끔찍한 결과를 초래할 수 있습니다.
suncoolsu

@suncoolsu, 정당화에 대해 무엇을 의미합니까? BIC 점수를 기반으로 K- 클러스터 (GMM 모델) 선택에 대한 몇 가지 예를 찾았습니다. 아마도 두 모델을 다른 입력 데이터 (치수)와 비교하는 잘못된 예를 제공했을 것입니다.
Sergey

1
나는 진정한 모델이 모델 공간에 있다고 가정하고 정당한 경우에만 BIC를 사용했다 . 귀하의 경우 정당화 될 수 있습니다. 나는 사람들이 AIC와 같은 BIC를 사용한다는 것에 동의하지만 둘 다 매우 다릅니다!
suncoolsu

안녕하세요, 이것은 늦은 의견이며 여전히 활동 적이기를 희망하지만 모델의 매개 변수 수를 얻는 가장 좋은 방법은 무엇입니까?
masfenix

답변:


7

문제는 전이 행렬 및 / 또는 방출 행렬의 일부 매개 변수가 시작되도록 고정되어 있는지 여부입니다. 매개 변수 수에 대한 계산이 올바르게 보입니다. 어떤 이유로 2 상태 모델 대신 3 상태 모델을 원하고 상태 1에서 3으로, 3에서 1 로의 전환이 허용되지 않는다고 미리 결정한 경우 (0 확률)이 계산을 고려해야합니다. 파라미터의 수


데이터 차원을 고려해야합니까? size(data)2x100이 될 경우
Sergey

@ Sergey, 나는 내 대답의 매개 변수 수 계산만을 보았습니다. 완전성을 위해 BIC에 관심이있는 데이터 세트의 "크기"를 계산하는 방법도 고려해야했습니다. 솔직히 말해서, 나는 독립 데이터에 대한 BIC의 파생만을 보았지만 데이터의 올바른 "크기"는 데이터 시리즈의 길이라고 생각합니다. 크기가 2x100이라는 것이 무엇을 의미하는지 잘 모르겠습니다. 그것에 대해 언급하고 싶다면 데이터가 2 x 100 행렬로 인코딩되는 방법에 대해보다 정확하게 설명해야합니다.
NRH

답변 주셔서 감사합니다, 나는 데이터 차원이 BIC에 미치는 영향을 이해하고 있다고 생각합니다, 내 업데이트를 참조하십시오
Sergey

왼쪽 (Bakis) HMM 모델 (삼각형 전환 행렬 사용)에서 매개 변수 수를 줄여야합니까?
Sergey

4

모델 선택 BIC에서 자유 매개 변수의 수를 계산할 때 이는 단순히 변환 및 방출 행렬의 0의 수를 의미합니다. 예를 들어 전이 행렬에 0이있는 경우 (이는 전이 행렬에 의해 정의 된대로) 특정 상태가 다음 상태로 이동할 확률이 없음을 의미합니다. 이것이 BIC가 HMM을위한 최적의 상태를 선택하는 방법입니다. 그러나 초기, 전이 및 방출 행렬의 크기를 사용하여 자유 매개 변수를 얻는 것이 혼란 스럽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.