主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

은닉마르코프모델(嗯)

은닉마르코프모델(嗯)소개

은닉마르코프모델(嗯,隐马尔可夫模型)에서에서일련의출력(排放)을을할수있지만,출력출력생성하기이모델이거친상태열은알수없습니다。은닉마르코프모델의분석은된된이터데에서에서상태열열하려고하려고

이에대한예로2개의상태를가지며6종류의출력이가능한마르코프모델이있다고가정해보겠습니다。이모델은다음을사용합니다。

  • 1부터6이표시면된6빨간색주사위。

  • 12개면을가지며그중5개면에는2부터6까지가표시되고나머지7개면에는1이표시된녹색주사위。

  • 동전의앞면이나올확률은은은0.9이고고뒷면은은0.1,중량이편중된빨간색동전。

  • 동전의앞면이나올확률은0.95이고뒷면이나올확률은인0.05중량이편중된녹색동전。

이모델은다음규칙을사용하여집합{1,2,3,4,5,6}에서수열을생성합니다。

  • 먼저,빨간색주사위를굴리고나오는숫자(출력)를기록합니다。

  • 빨간색동전을던지고다음중하나를수행합니다。

    • 결과가앞면이면빨간색주사위를굴리고결과를기록합니다。

    • 결과가뒷면이면녹색주사위를굴리고결과를기록합니다。

  • 각각단계에서는이전단계단계에서굴린사위와색의동전을던집니다。동전의앞면이나오면이전단계와동일한사위를를。동전의뒷면이나오면다른주사위위로。

이모델의상태도식에는다음에나와있는것처럼빨간색과녹색의상태상태가있습니다。

상태와같은색의주사위를굴려서상태에서생성되는출력을확인합니다。상태와같은색의동전을던져서다음상태로의전이를확인합니다。

전이행렬은다음과다음과。

T 0.9 0.05 0.1 0.95

출력행렬은다음과같습니다。

E 1 6 1 6 1 6 1 6 1 6 1 6 7 12 1 12 1 12 1 12 1 12 1 12

동전과주사위의색을통해상태열을알수있으므로이모델은은닉모델이아닙니다。그러나,다른누군가가여러분에게주사위나동전을보여주지않고출력을생성한다고가정해보겠습니다。여러분이볼수있는것은출력수열뿐입니다。1이다른숫자보다더많이보이기시작하면이모델이녹색상태에있다고의심해볼수있지만,현재굴리고있는주사위의색을볼수없으므로확신할수없습니다。

은닉마르코프모델은다음과같은질문을제기합니다。

  • 출력열이주어진경우어떠한상태경로가가장가능성이높은가?

  • 출력수열이주어진경우모델의전이확률과출력확률을어떻게할할수가?

  • 모델이주어진수열을생성할전향확률(前进概率)은은인가?

  • 모델이이수열의임의점에서특정상태에있을使用方法은얼마인가?

은닉마르코프모델(隐马尔科夫模型)분석하기

은닉마르코프모델과관련된统计和机器学习工具箱™함수는다음과같습니다。

  • hmmgenerate- 마르코프모델에서상태열과출력을을생성합니다。

  • HMMESTIMATION.- 출력열과알려진상태열에서이확률과출력확률에대한가능도추정값을합니다。

  • hmmtrain- - - - - -출력수열에서전이확률과출력확률에대한최대가능도추정값을계산합니다。

  • hmmviterbi.- - - - - -은닉마르코프모델에대한가장가능성이높은상태경로를계산합니다。

  • hmmdecode- 출력출력에대한사후상태상태을합니다。

이섹션에서는이러한함수를사용하여은닉마르코프모델을분석하는방법을보여줍니다。

테스트수열생성하기

다음명령은은닉마르코프모델(嗯)소개에설명된모델에대한이행렬과출력행렬을생성합니다。

反式=[。9。1;. 05 .95];Emis =[1/6, 1/6, 1/6, 1/6, 1/6, 1/6, 1/6;…7/12, 1/12, 1/12, 1/12, 1/12, 1/12, 1/12];

모델에서임의의상태열과출력열을생성하려면hmmgenerate를사용하십시오。

[seq,州]= hmmgenerate(1000年,反式工作);

출력값seq는출력열이고,출력값는상태열입니다。

hmmgenerate는단계0에서상태1로시작하고,단계1에서상태i1로의전이를수행한후의첫번째항목으로i1을반환합니다。초기상태를변경하려면초기상태분포변경하기항목을참조하십시오。

상태열추정하기

전이행렬反式와출력행렬emis.가주어진경우,함수hmmviterbi.는모델이출력열seq를생성하기위해거칠수있는가장가능성이높은상태열을비터비(维特比)알고리즘을사용하여계산합니다。

可能= HMMViterbi(SEQ,Trans,EMI);

可能性seq와와이같은같은수열。

hmmviterbi.의정확도를검정하려면실제수열가수열可能性와일치하는비율을계산하십시오。

Sum (states== likeelystates)/1000 ans = 0.8200

이경우,가장가능성이높은상태열이난수열과일치하는비율은시간82%중에해당합니다。

전이행렬과과(发射)행렬추정하기

함수HMMESTIMATION.hmmtrain은출력수열seq가주어진경우전이행렬反式와출력행렬emis.를추정합니다。

HMMESTIMATION.사용하기。함수HMMESTIMATION.를사용하려면모델이seq를생성하기위해거친상태열를를합니다。

다음은출력열과열을받고전이행렬과출력행렬의추정을반환합니다。

TRANS_EST = 0.8989 0.1011 0.0585 0.9415 EMIS_EST = 0.1721 0.1721 0.1749 0.1612 0.1803 0.1393 0.5836 0.0741 0.0804 0.0789 0.0726 0.1104

출력값을원래전이행렬反式및원래출력행렬emis.와비교할수있습니다。

Trans Trans = 0.9000 0.1000 0.0500 0.9500 EMIS EMIS = 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.5833 0.0833 0.0833 0.0833 0.0833 0.0833

hmmtrain사용하기。상태열를알지못하지만反式emis.에대한초기추측값을알고있는경우계속해서hmmtrain을사용하여反式emis.를추정할수있습니다。

反式emis.의다음과같은초기추측값을알고있다고가정하겠습니다。

TRANS_GUESS =[。85 .15点;。1。9);EMIS_GUESS =[。17.16.17.16.17.17;.6 .08 .08 .08 .08 08];

다음과같이反式emis.를추정합니다。

[TRANS_EST2, EMIS_EST2] = hmmtrain(seq, TRANS_GUESS, EMIS_GUESS) TRANS_EST2 = 0.2286 0.7714 0.0032 0.9968

hmmtrain은각단계에서조정된행렬이관측된수열seq를생성할가능성이더높아지도록행렬TRANS_GUESSEmis_Guess.를고쳐가는반복알고리즘을사용합니다。두개의연속된반복포함된에이서로의작은허용오차범위내경우이알고리즘이알고리즘알고리즘。

알고리즘이최대반복횟수(디폴트값은100.임)내에서이허용오차에도달하지못경우알고리즘알고리즘이중단중단。이경우,hmmtrainTrans_est.EMIS_EST의마지막값을반환하고허용오차에도달하지못했다는경고를발생시킵니다。

알고리즘이기대한허용오차에도달하지못할경우다음명령을사용하여최대반복횟수의디폴트값을늘립니다。

hmmtrain (seq TRANS_GUESS、EMIS_GUESS maxiterations,麦克斯特)

여기서麦克斯特가알고리즘이실행하는최대단계수입니다。

다음명령을사용하여허용오차의디폴트값을변경합니다。

HMMTrain(SEQ,Trans_Guess,Emis_Guess,'容忍',Tol)

여기서托尔이기대하는허용오차값입니다。托尔알고리즘값을늘리면알고리즘이더빠르게중단되지만,그결과는더부정확。

hmmtrain의출력행렬의신뢰성을감소시키는요인이두가지존재합니다。

  • 이알고리즘은진정한전이행렬과출력(发射)행렬을나타내지않는국소최댓으로수렴합니다。이것이의심되는경우행렬Trans_est.EMIS_EST에다른초기추측값을사용하십시오。

  • 수열seq는행렬을올바르게훈련시키기에는너무짧을수있습니다。이것이의심되는경우seq에대한더긴수열을사용하십시오。

사후상태확률추정하기

출력열(排放)seq의사후상태확률은seq가출력된경우모델이seq의심볼을생성할때특정상태에있을조건부확률입니다。다음과같이hmmdecode를사용하여사후상태확률을합니다。

PSTATES = HMMDECODE(SEQ,TRANS,EMI)

출력값PSTATES는M×L행렬입니다。여기서M은상태의개수이고L은seq의길이입니다。PSTATES (i, j)seq가출력된경우모델이seqj번째심볼을생성할때상태에있을조건부확률입니다。

첫번째출력전에hmmdecode는단계0에서상태1에있는모델로시작합니다。PSTATES(我,1)은다음단계1에서모델이상태我에있을확률입니다。초기상태를변경하려면초기상태분포변경하기항목을참조하십시오。

hmmdecode의두번째출력인수를사용하여수열seq의확률에대한로그를반환합니다。

[PSTATES, logpseq] = hmmdecode (seq,反式工作)

이길길이가증가할수록0가할수록가까워지고,충분히긴수열의확률컴퓨터컴퓨터나타낼가장작은양수보다더hmmdecode는이문제가발생하지않도록확률의로그를반환합니다。

초기상태분포변경하기

기본기본적,统计和机器学习工具箱은닉마르코프모델함수상태상태1에서시작합니다。다시말해,초기상태분포는그확률이모두상태1에됩니다。다른확률분포p = [p1p2,……p)을M개의초기상태로할당하려면다음과같이하십시오。

  1. 다음형식을갖는M + 1-by-M + 1크기의가전이행렬 T 를를합니다。

    T 0 p 0 T

    T는여기서진정한전이행렬입니다。 T 의첫번째열은M + 1개의0을포함합니다。p는합이1이어야합니다。

  2. 다음형식을갖는m + 1×n크기의첨가출력(发射)행렬 E 를를합니다。

    E 0 E

전이행렬과출력행렬이각각反式emis.인경우다음명령을사용하여가행렬을행렬을합니다。

TRANS_HAT = [0 p;0(大小(反式,1),1)反式);EMIS_HAT =[0(1、大小(工作,2));工作);

참고항목

||||

관련항목