저는 JaHMM에 구현 된 HMM을 Android wearable에서 얻은 가속도계 및 자이로 스코프의 센서 데이터로 교육합니다.분류 HMM 자이로 스코프 데이터 Jahmm 모델을 배울 수 없습니다.
가속도계 데이터로 학습 된 HMM은 학습 된 상태를 출력하며 다소 오류가 있습니다. 다음과 같이
모두 현대 상선의 초기화된다
HMM이 상태 (들)
상태 0 파이로 : 가속도계 데이터 훈련 HMM에 대한
Hmm<ObservationVector> hmm = new Hmm<>(2, new OpdfMultiGaussianFactory(3)); hmm.setPi(0, 0.5); hmm.setPi(1, 0.5); hmm.setOpdf(0, new OpdfMultiGaussian( new double[]{0,0,0}, new double[][] {{0.1,0,0}, {0,0.1,0}, {0,0,0.1} })); hmm.setOpdf(1, new OpdfMultiGaussian( new double[]{0,0,0}, new double[][] {{0.1,0,0}, {0,0.1,0}, {0,0,0.1} })); hmm.setAij(0, 0, 0.5); hmm.setAij(0, 1, 0.5); hmm.setAij(1, 0, 0.5); hmm.setAij(1, 1, 0.5);
출력 0.5000000000000188 Aij : 0.5 0.5 Opdf : 다변량 가우시안 분포 --- 평균 : [0.036 -0.051 0.075]
상태 1 파이 : 0.5000000000000188 AIJ 0.5 0.5 Opdf : 다 (多) 변수 가우스 분포 --- 평균 : 0.036 -0.051 0.075]
그러나, HMM은 자이로 훈련 데이터 수 HMM의 상태를 배울 것 같아서 시도한 반복 학습 (500 회 반복)이 없습니다. 예 : 배운 상태 확률은 자이로 스코프 데이터와 훈련 HMM 단지 NaN이
출력입니다 :
2 상태 (들)
상태 0 파이와 HMM : NaN이 AIJ? ? Opdf : 다중 변량 가우시안 분포 --- 평균 : [? ? ? ]
상태 1 Pi : NaN Aij :? ? Opdf : 다중 변량 가우시안 분포 --- 평균 : [? ? ? ]
이 문제의 원인은 무엇입니까? HMM에서 데이터를 사용할 수 있기 전에 수행해야 할 전처리 또는 정규화 단계가 있습니까? HMM의 상태 수가 불충분합니까? 저는 5 개 주에서 시도했지만 동일한 결과를 산출합니다.
가속도계에 대한 교육 파일의 조각은 여기에서 볼 수있다 : https://gist.github.com/Gudui/91d2c6b2452f1ea6a5c925b1eed9b40c
자이로 스코프에 대한 교육 파일의 조각은 여기에서 볼 수있다 : 두 훈련 파일의 경우 https://gist.github.com/Gudui/987cc1c1a7c0311a03988b818e7cbbcb
, 각 라인 대표 훈련 순서.
라이브러리는 여기에 있습니다 : 사전에 https://github.com/tanjiti/jahmm
감사합니다!내 댓글 정성 들여
는
-.하지만 2 일 (1) 가우시안을 무작위 값으로 초기화 (2) 데이터를 정규화하고 희게한다. 즉, 데이터에 평균이없고 비 상관 좌표 (예 : PCA)가 있는지 확인한 다음 다시 시도한다. –
불확실하다. (1) 무엇을 의미합니까? 당신이 설명하면 대답으로 받아 들일 것입니다. 시도하고 받아 들일 수있는 결과를 낳은 내 자이로 스코프 값을 표준화. 감사합니다! @ItamarKatz – Peter
내 대답보기 (1) –