2010年5月19日 星期三
Hidden Markov Models with matlab
PSTATES = hmmdecode( o_seq, TRANS, EMIS):給定observed sequence, 用來計算conditional probabilities在state k at step i .
TRANS( i, j ):由 state i 至 state j 的轉換機率 .
EMIS( k, sym_seq ):symbol sequence 在 state k 發生的機率.
PSTATES:是個矩陣跟 seq 的大小一樣, 第 ( i, j )th element 代表在model中 state i at jth step 的機率 .
[ PSTATES, logpseq ] = hmmdecode(...):回傳對數的 probability sequence, logseq .
[ PSTATES, logpseq, FORWARD, BACKWARD,S ] = hmmdecode(...):給定 scaled s, 回傳 forward 和 backward 的 sequence 機率 .
hmmdecode( o_seq, TRANS, EMIS ,'Symbols', SYMBOLS):定義有哪些 SYMBOLS , SYMBOLS可為陣列 .
=========================================
[seq,states] = hmmgenerate(len,TRANS,EMIS):用已知的transition probability TRANS, 與 symbol probability EMIS 並指定欲產生 sequence 的長度, 來造出一個 observed sequence with states .
hmmgenerate(...,'Symbols',SYMBOLS):定義有哪些 SYMBOLS , SYMBOLS可為陣列 .
hmmgenerate(...,'Statenames',STATENAMES):定義 states 的名稱 .
=========================================
[TRANS,EMIS] = hmmestimate( seq, states ):給定 sequence 和 states 算出 TRANS, EMIS 的maximum likelihood estimate .
hmmestimate(...,'Symbols',SYMBOLS):定義有哪些 SYMBOLS , SYMBOLS可為陣列 .
hmmestimate(...,'Statenames',STATENAMES):定義 states 的名稱 .
hmmestimate(...,'Pseudoemissions',PSEUDOE):用此參數來避免state內無symbol的機率, PSEUDOE 是個矩陣 size m-by-n , m為states數目, n為該state可能產生的symbol數.
如果在sequence中state i at k step的機率為0, 可設 PSEUDOE( i, k ) 指定在 state i at k step的機率 .
hmmestimate(...,'Pseudotransitions',PSEUDOTR):用此參數來避免state與state間的0轉換機率, PSEUDOTR 是個矩陣 size m-by-m , m為states數目 .
如果在sequence中從state i 至 state k 的機率為0, 可設 PSEUDOTR( i, j ) 指定從state i 至 state k 的機率 .
=========================================
STATES = hmmviterbi(seq,TRANS,EMIS):給定model參數TRANS, EMIS 和 observed sequence, 計算 most likely path.
=========================================
[ESTTR,ESTEMIT] = hmmtrain(seq,TRGUESS,EMITGUESS):用Baum-Welch algorithm估計transition和state emission probabilities. TRGUESS, EMITGUESS為我們猜測的transition 和 symbol probabilities matrix.
註: state emission probability為一個state可能產生的output狀態, 即為一個state所擁有的symbol數.
hmmtrain(...,'Algorithm',algorithm):定義要用哪種演算法來training data. 有 BaumWelch 和 Viterbi 兩種, 預設是 BaumWelch .
hmmtrain(...,'Tolerance',tol):定義容忍度,預設值為0.0001, 用來在估計過程中測試收斂.
hmmtrain(...,'Maxiterations',maxiter):定義在estimation過程中最大可以 iterate 的數目, 預設為 100.
hmmtrain(...,'Verbose',true):回傳status of algorithm at each iteration.
如果已知states與sequences的關係, 就用hmmestimate去估計 model 的參數.
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言