幾個重要概念:
馬爾可夫假設:在乙個隨著時間觀測到的物件序列中,t時刻觀測到某物件的概率只和t-1時觀測到的物件有關係。
馬爾科夫模型的表示:
s:狀態轉換圖中的狀態集合
a:狀態轉移概率矩陣,aij表示從狀態i遷移到狀態j的概率
b:bij表示在狀態i上觀測到物件vj的概率
p:初始狀態上觀測到各值的概率,是乙個向量
馬爾科夫的三個核心問題:
估值問題(evaluation): 已知markov模型,和序列v,求觀測到該序列的概率
解碼問題(decoding):已知模型和t時刻觀測到的vt,求最可能觀測到的序列
學習問題(learning):已知狀態集合s和觀測序列v,求模型的各引數a,b,p
下面是evaluation**(解碼過程類似),前向演算法
%%hmm model: a, b, initialstate, finalstate,%state transition propability
a=[10 0 0;
0.2 0.3 0.1 0.4;
0.2 0.5 0.2 0.1;
0.8 0.1 0.0 0.1];
%b_jkv(t): v(t)'
s occupation probability when the current state is w_j in time t
b=[10 0 0 0;
0 0.3 0.4 0.1 0.2;
0 0.1 0.1 0.7 0.1;
0 0.5 0.2 0.1 0.2];
final_state=1; %the final state
init_state=2; %the initial state
%%observed sequence
v=[2,4,3,1]; %visable sequence, v1 is
the empty visable symbol.
% #of states
c=size(a);
% #of time slots
t=length(v);
%% hmm forward algorithm : for
evaluation problem of hmm: give a hmm model, calculate p(v)
a=zeros(c, t);
for t=1:t
for j=1:c
if t==1a(j, t)=1*a(init_state, j)*b(j, v(t));
else
sum=0;
for i=1:c
sum=sum+a(i, t-1)*a(i, j);
enda(j, t) = b(j, v(t))*sum;
endend
enda(1, t)
學習問題:在matlab中整合了hmmestimate等函式,可以完成各種問題的解決。
summary: markov其實大致分為兩部分,一部分是理解狀態圖中的概率遷移,以及markov假設;一部分是具體實現,由於markov問題的高複雜度,才出現了前向、後向演算法,而那些演算法的目的只是在多項式複雜度內進行求解。
傳說中的MTU
通訊術語 最大傳輸單元 maximum transmission unit,mtu 是指一種通訊協議的某一層上面所能通過的最大資料報大小 以位元組為單位 最大傳輸單元這個引數通常與通訊介面有關 網路介面卡 串列埠等 網際網路協議允許ip分片,這樣就可以將資料報分成足夠小的片段以通過那些最大傳輸單元小...
傳說中的truncate html
學習用rails做blog的時候要用到rails的truncate功能。h truncate post.content,100,問題來了,將html截斷後出現不完整的tag,導致後續的文章排版都錯亂了。本來考慮是不是自己寫乙個,正在思考思路,結果祭起google,好嗎,已經有牛人寫了 簡單記錄一下 ...
曾經的迷茫也不過如此
我現在很迷茫,不知所措不知道想寫什麼說什麼,乾脆就隨便侃侃,對有一天你一定會變 這點你不願承認,但也無可奈何,但願勿忘初心,我們大談夢想,愛情 卻鮮有人問自己這是不是真的 是不是自己真正想要的,愛不是一味的付出,更不是將就,很難想象將就的事情 你會快樂 好像現在追求快樂,也成為不道德 不知道是怎麼啦...