作者:LogM
本文原載於 https://segmentfault.com/u/logm/articles,不允許轉載~
文章中的數學公式若無法正確顯示,請參見:正確顯示數學公式的小技巧
本文爲《數學之美》的讀書筆記。
第1章 文字和語言 vs 數字和信息
-
通信的原理:(信息傳播模型)
信息 --(編碼)-> 編碼後的信息 --(解碼)-> 信息
- 文字的演化
- 數字的演化
第2章 自然語言處理 從規則到統計
- 圖靈測試:判斷機器是否智能
- 人工智能概念的提出:1956年,達特茅斯夏季人工智能研究會議
-
20世紀60年代,大家認爲自然語言處理需要機器理解人的語言,研究重點在句法分析和語義分析,大多用人工規則。但自然語言中的規則實在太多了。
"The pen is in the box.", "The box is in the pen."
- 1970年,IBM華生實驗室使用統計的方法將語音識別提高非常多。自然語言處理分成了規則和統計兩個派別。到90年代,基於統計的方法成爲主流。這一轉變與語料和計算力增加有關。
第3章 統計語言模型
- 判斷一個句子是否合理:
$$P(S) = P(w_1, w_2, ... , w_n) = P(w_1) \cdot P(w_2|w_1) \cdot \cdot \cdot P(w_n|w_1, w_2, ..., w_n)$$
- 馬爾科夫假設:一個詞出現的概率只與前n個詞有關,實際使用時,受計算速度限制,一般使用二元模型或者三元模型。比如二元模型可以寫做:
$$P(S) = P(w_1) \cdot P(w_2|w_1) \cdot P(w_3|w_2) \cdot \cdot \cdot P(w_n|w_{n-1})$$
-
統計語言模型的平滑問題:
-
古德-圖靈估計:假定語料中出現 $r$ 次的詞有 $N_r$ 個,語料總大小爲 $N$,則 $N = \sum{rN_r}$。當 $r$ 比較小時,統計可能不可靠,我們用 $dr$ 代替 $r$,$d_r = (r+1) \cdot N_{r+1} / N_r$,此時仍有 $N = \sum{d_r \cdot N_r}$。
根據 Zipf 定律,$N_{r+1} < N_r$,故 $d_r < r$,$d_0 > 0$。
- 卡茨退避法:將古德-圖靈估計應用在統計語言模型的平滑。
- 刪除差值法:(低階模型不容易發生零概率問題,用低階來平滑高階)
-
$$P(w_i|w_{i-2}, w_{i-1}) = \lambda(w_{i-2}, w_{i-1}) \cdot f(w_i|w_{i-2}, w_{i-1}) + \lambda(w_{i-1}) \cdot f(w_i)|w_{i-1} + \lambda \cdot f(w_i)$$
第4章 談談分詞
-
演變過程
-
查字典,最長匹配
"上海大學城書店" -> "上海大學 城 書店"
- 查字典,最少詞數
- 統計語言模型:判斷哪種分詞法出現的概率最大,使用 Viterbi 算法加速。
-
-
分詞可以是粗粒度,也可以細粒度,一般對複合詞使用嵌套結構
"北京大學", "北京 大學"
第5章 隱含馬爾科夫模型
- 用途:機器翻譯、拼寫糾錯、手寫體識別、圖像處理、序列分析、股票分析...
- 通信模型。舉例,英文翻譯爲中文的問題:S爲中文,O爲英文。
$$P(s_1, s_2, ...| o_1, o_2, ...) = \frac{P(o_1, o_2, ...| s_1, s_2, ...) \cdot P(s_1, s_2, ...)}{P(o_1, o_2, ...)}$$ - 馬爾科夫過程(馬爾科夫鏈):符合狀態 $s_t$ 只與上一狀態 $s_{t-1}$ 有關的假設的隨機過程。
- 隱馬爾科夫模型:$s_t$ 是一個馬爾科夫過程,$o_t$ 與 $s_t$ 相關且僅與 $s_t$ 相關。
$$P(s_1,s_2,...,o_1,o_2,...) = \prod{P(s_t|s_{t-1}) \cdot P(o_t|s_t)}$$ -
隱馬爾科夫模型的三個基本問題:
- 給定一個模型,如何計算某個特定輸出序列的概率:前向計算,簡單
- 給定一個模型和某個特定的輸出序列,如何找到最可能的狀態序列:Viterbi 算法
-
給定足夠量的觀測數據,如何估計模型參數:轉移概率 $P(s_t|s_{t-1})$,生成概率 $P(o_t|s_t)$
- 如果有大量已標註的 $o_t$ 和對應的 $s_t$,簡單
- 如果只有觀測到的 $o_1, o_2, ...$,鮑姆-韋爾奇算法(EM算法)
第6章 信息的度量和作用
-
信息熵:
有32個球隊參加比賽,奪冠可能性相等,我每猜一次花費1元,對方回答"對,小了,大了",我最多猜5次($log_2 32 = 5$)就可以知道答案,所以這個信息價值5元。
- $H = -(p_1 \cdot log p_1 + p_2 \cdot log p_2 + ... + p_{32} \cdot log p_{32})$
- $H(X) = -\sum{P(x)logP(x)}$
- 條件熵:
$$H(X|Y) = \sum_x{p(x) \cdot H(Y|X=x)} = - \sum_x{p(x)} \sum_y{p(y|x)log(p|x)}$$
$$H(X|Y) = -\sum_{x,y}{P(x,y)logP(x|y)}$$
- 互信息:
$$I(X;Y) = \sum{P(x,y) \cdot log \frac{P(x,y)}{P(x)P(y)}}$$
$$I(X;Y) = H(X) - H(X|Y)$$
- 相對熵(交叉熵,KL散度):
$$KL(f(x)||g(x)) = \sum{f(x) \cdot log \frac{f(x)}{g(x)}}$$
第7章 賈里尼克和現代語言處理
- 人物傳記