Q1: 如 2.0 投影片第二頁上方的圖,
第一個 state 對應了3個 o ( o1 o2 o3 ),
第二個 state 對應了4個 o ( o4 o5 o6 o7 ),
第三個... 。
這些 state 每個分別對應到多少個 o,是不是必須先把 o1 ~ oT 都有了之後,再根據演算法得到最佳的一條路徑,才能推出每個 state 對應多少個 o (停留次數) ?
Q2: train 出來的 model_01.txt~model_05.txt 該是什麼樣子?
Q3: 投影片裡第五張的 seq_model_01~05 都各自代表ㄅ的 HMM 嗎?
就是說 seq_model_01 是ㄅ的 HMM,seq_model_02也是,這樣想對嗎?
Q4: 如果我們有一筆 training data,
state 數目是變動的,可能是4個 state 也可能是5個 state,
那對於4個 state 來說,我如何用 trainging data 來算出這4個 state 上的 Observation 機率呢?
改成定義5個 state 的話, Observation 的機率又該如何呢?
而定義每個 state 的初始機率 Aij 又是怎麼定義呢?
Q5: model_init.txt 的 observation 機率是否有問題呢? (為何不是根據 seq_model 去統計出 A 之機率多大... B 之機率多大去寫初始值...)
Q6: 對 testing_data 和 testing_data2 的資料要把每列的資料分別餵給5個 model 得到最大機率的就是答案,觀測值都固定是要50個嗎?要算這筆是某個 model 多大的機率,也是把這50個丟演算法得到?
Q7: 關於 observation 機率的 adjust ,以 Σ (γ )分子的部份除以分母的部份如何區分?上面是寫 ot = vk,但是還是不太清楚?
Q8: 我想用 C 寫,但是不太懂 makefile,如果要編譯成 .exe 檔要怎麼做?
如果不想在工作站上做,也可以使用一種在 Windows 下模擬 Linux 環境的程式,叫做 Cygwin
Q9: test_hmm.c 裡最前面那段load_models 為甚麼要註解掉?
Q10: seq_model_01~05.txt 裡面的資料有10000筆,是否每一行代表一次iteration?
Q11: 投影片30頁說的 Testing result and accuracy 是指什麼呢?
Q12: iteration 次數增加,accuracy 卻變低,是正常的嗎?
Q13: Makefile 好像只能 make 一個檔案?
.PHONY: all clean
CFLAGS+=
LDFLAGS+=-lm # link to math library
TARGET=test_hmm train test
all: $(TARGET)
# type make/make all to compile test_hmm
clean:
$(RM) $(TARGET) # type make clean to remove the compiled file