本篇將依據《統計天然語言處理》(宗成慶),從新梳理統計學習相關理論知識,相關機率論與梳理統計的課本再也不列出來,能夠找任意相關的課本復(預)習。app
機率是表示事件發生的可能性,將隨機試驗中的事件映射到實數域。用$P(A)$表示事件A的機率,$\Omega$表示試驗的樣本空間(全部可能發生的事件),則機率知足:函數
事件A 和B獨立等價於$P(AB)=P(A)P(B)$學習
$$P(A|B) = \frac {P(A \bigcap B)} {P(B)} $$編碼
$$P(A \bigcap B) = P(B)P(A|B) = P(A)P(B|A) $$翻譯
通常地,設計
$$P(A_1 \bigcap \cdot \cdot \cdot \bigcap A_n) = P(A_1)P(A_2|A_1)P(A_3|A_1 \bigcap A_2) \cdot \cdot \cdot P(A_n|A_1 \bigcap A_2 \bigcap \cdot \cdot \cdot A_{n-1})$$blog
條件機率一樣具備機率的三個性質事件
若是$A_1,A_2$關於B條件獨立,當且僅當$P(A_1,A_2 |B)=P(A_1 | B)P(A_2 | B)$數學
根據條件機率有it
$P(B|A)=\frac {P(BA)} {P(A)} = \frac {P(A|B)P(B)} {P(A)}$
好比應用貝葉斯理論到分類問題中,假設要求已知一個特徵A發生的條件下,分類爲B的機率,則能夠統計樣本中特徵A出現的頻率(用來估計$P(A)$),並統計樣本中分類爲B的那些樣本中特徵爲A的頻率(用來估計$P(A|B)$),因而分別計算特徵A的條件下各個分類的條件機率,值最大的那個分類就是最終特徵A所屬的分類,而計算這些條件機率時,P(A)能夠看做常數,因此
$$arg \max_{B} \frac {P(A|B)P(B)} {P(A)} = arg \max_{B} P(A|B)P(B) $$
根據乘法規則,
$$P(A \bigcap B) = P(A|B)P(B)$$
$$P(A \bigcap \overline B) = P(A| \overline B)P(\overline B)$$
因而有,
$$P(A) = P(A \bigcap B) + P(A \bigcap \overline B) = P(A|B)P(B) + P(A| \overline B)P(\overline B) $$
通常地,假設B是樣本空間$\Omega$的一個劃分,$\sum_{i} B_i = \Omega$,若是$A \subseteq \Omega$,即$A=\sum_{i} AB_i$,那麼
$$P(A) = \sum_{i} P(AB_i) = \sum_{i} P(A|B_i)P(B_i)$$
上式稱爲全機率公式
若是$P(A) > 0$,那麼
$$P(B_j | A) = \frac {P(A|B_j)P(B_j)} {P(A)} = \frac {P(A|B_j)P(B_j)} {\sum_{i} P(A|B_i)P(B_i)} $$
$(X_1,X_2)$是一個二維離散隨機向量(約定大寫表示隨機變量,小寫爲隨機變量的一個取值),則聯合機率分佈
$$p_{ij} = P(X_1=a_i,X_2=b_j) $$
條件機率分佈爲
$$P(X_1 = a_i | X_2 = b_j) = \frac {P(X_1=a_i,X_2=b_j)} {P(X_2=b_j)} = \frac {p_{ij}} {P(X_2=b_j)} $$
因爲$P(X_2=b_j) = \sum_{k} p_{kj}$,因而
$$P(X_1 = a_i | X_2 = b_j) = \frac {p_{ij}} {\sum_{k} p_{kj}} $$
$$P( X_2 = b_j | X_1 = a_i) = \frac {p_{ij}} {\sum_{k} p_{ik}} $$
貝葉斯決策理論
假設研究的分類有 c 個類別,各種別狀態用$w_i$表示,各種別出現的先驗機率爲$P(w_i)$,特徵空間的某一貫量$\vec x = [x_1, x_2, ..., x_d]^T$,維度爲 d,且條件機率密度 $p(\vec x|w_i)$是已知的(分類爲$w_i$的樣本中,特徵向量等於$\vec x$佔比),因而利用貝葉斯公式獲得後驗機率,
$$p(w_i | \vec x) = \frac {p(\vec x | w_i)p(w_i)} {\sum_{j=1}^c p(\vec x | w_j)p(w_j)}$$
若是$p(w_i| \vec x) = \max_{j=1,2,...,c} p(w_j|\vec x)$,那麼,$\vec x \in w_i$
由於後驗機率右端分母爲$p(\vec x)$能夠看做常數,因此
若是$p(\vec x|w_i)p(w_i) = \max_{j=1,2,...,c} p(\vec x| w_j)p(w_j)$,那麼,$\vec x \in w_i$
隨機變量X的機率分佈爲$P(X=x_k)= p_k$,若級數$\sum_{k} x_k p_k$絕對收斂,則X的數學指望或者機率平均值爲
$$E(X)=\sum_{k} x_k p_k$$
方差爲
$$var(X) = E((X-E(X))^2) = E(X^2) - E^2 (X) $$
標準差爲$\sqrt {var(X)}$
隨機變量X的機率分佈爲$p(x) = P(X=x)$,則熵(也稱自信息)定義爲
$$H(X) = - \sum p(x)log_{2} p(x)$$
約定$0 log 0 = 0$
$$H(X,Y) = - \sum{x \in X} \sum_{y \in Y} p(x,y) log p(x,y)$$
\begin{aligned} H(Y|X) & = \sum_{x \in X} p(x) H(Y|X = x) \\ & = \sum_{x \in X} p(x) [- \sum_{y \in Y} p(y|x) log p(y|x)] \\ & = - \sum_{x \in X} \sum_{y \in Y} p(x,y) log p(y|x) \end{aligned}
將聯合熵公式中的$logp(x,y)$ 展開,得
\begin{aligned} H(X,Y) = - \sum{x \in X} \sum_{y \in Y} p(x,y) log p(x,y) \\ & = - \sum_{x \in X} \sum_{y \in Y} p(x,y) log[p(x)p(y|x)] \\ & = - \sum_{x \in X} \sum_{y \in Y} p(x,y) log p(x) - \sum_{x \in X} \sum_{y \in Y} p(x,y) logp(y|x) \\ & = -\sum_{x \in X} p(x)log p(x) + H(Y|X) \\ & = H(X) + H(Y|X) \end{aligned}
通常地,
$$H(X_1,X_2,...,X_n) = H(X_1) + H(X_2|X_1) + ... + H(X_n|X_1,X_2,...,X_{n-1})$$
根據熵的連鎖規則有
$$H(X,Y) = H(X) + H(Y|X) = H(Y) + H(X|Y) $$
因而,
$$H(X) - H(X|Y) = H(Y) - H(Y|X)$$
這個差就是X和Y的互信息,記做$I(X;Y)$,反應了知道Y值後X的不肯定性的減小量,或者說Y的值透露了多少關於X的信息量,以下圖
\begin{aligned} I(X;Y) & = H(X) - H(X|Y) \\ & = H(X) + H(Y) - H(X,Y) \\ & = - \sum_{x}p(x)log p(x) - \sum_{y} p(y) log p(y) + \sum_{x,y} p(x,y) log p(x,y) \\ & = - \sum_{x,y} p(x,y) log p(x) - \sum_{x,y} p(x,y) log p(y) + \sum_{x,y} p(x,y) log p(x,y) \\ & = \sum_{x,y} p(x,y) log {\frac {p(x,y)} {p(x)p(y)}} \end{aligned}
因爲$H(X|X) = 0$,因此
$$H(X) = H(X) - H(X|X) = I(X;X) $$
條件互信息
$$I(X;Y|Z)=H(X|Z) - H(X|Y,Z)$$
向量互信息
$$I(X_{1n};Y)=I(X_1;Y) + I(X_2;Y|X_1) + I(X_n;Y|X_1,X_2,...,X_{n-1}) = \sum_{i=1}^n I(X_i;Y|X_1,...,X_{i-1})$$
兩個機率分佈$p(x),q(x)$的相對熵定義爲(這裏$p(x),q(x)$是兩個相同事件空間裏的機率分佈,好比$p(x)$是真實機率分佈,$q(x)$模型的機率分佈即非真實分佈,用來估計真實機率分佈的),
$$D(p||q) = \sum_{x \in X} p(x) log {\frac {p(x)} {q(x)}} $$
約定$0 log(0/q) = 0$,$p log(p/0) = $
相對熵能夠看做是$log{\frac {p(X)} {q(X)}}$的指望,
$$D(p||q) = E_{p}(log{\frac {p(X)} {q(X)}})$$
顯然,相對熵表示兩個機率分佈的差距的測度,當$p=q$時,$D(p||q)=0$
互信息就是聯合分佈與獨立性差距的測度,
$$I(X;Y)=D[p(x,y) || p(x)q(x)] $$
證實:
\begin{aligned} I(X;Y) & = H(X) - H(X|Y) \\ & = - \sum_{x \in X} p(x) log p(x) + \sum_{x \in X} \sum_{y \in Y} p(x,y) log p(x|y) \\ & = \sum_{x \in X} \sum_{y \in Y} p(x,y) log {\frac {p(x|y} {p(x)}} \\ & = \sum_{x \in X} \sum_{y \in Y} p(x,y) log {\frac {p(x,y)} {p(x)q(y)}} \\ & = D[p(x,y) || p(x)q(x)] \end{aligned}
條件相對熵根據定義不可貴到,
$$D[p(y|x)||q(y|x)]=\sum_{x,y}p(x,y) log{\frac {p(y|x)} {q(y|x)}} = \sum_{x} p(x) \sum_{y} p(y|x) log{\frac {p(y|x)} {q(y|x)}}$$
聯合機率的相對熵爲,
$$D[p(x,y) || q(x,y)] = D(p(x) || q(x)) + D[p(y|x) || q(y|x)]$$
證實:
\begin{aligned} D[p(x,y) || q(x,y)] & = \sum_{x,y} p(x,y) log { \frac {p(x,y)} {q(x,y)} } \\ & = \sum_{x,y} p(x,y) log { \frac {p(x) p(y|x)} {q(x) q(y|x)} } \\ & = \sum_{x,y} p(x,y) log { \frac {p(x)} {q(x)}} + \sum_{x,y} p(x,y) log { \frac {p(y|x)} {q(y|x)}} \\ & = \sum_{x} log{ \frac {p(x)} {q(x)}} \sum_{y} p(x,y) + D[p(y|x)||q(y|x)] \\ & = \sum_{x} log{ \frac {p(x)} {q(x)}} p(x) + D[p(y|x)||q(y|x)] \\ & = D(p(x) || q(x)) + D[p(y|x) || q(y|x)] \end{aligned}
根據熵的定義,咱們知道熵的本質是香農信息量$log{\frac 1 {p(x)}}$的指望。
交叉這個詞意味什麼?想想,而後咱們給出交叉熵的定義,給出一個隨機變量$X ~ p(x)$,$q(x)$爲近似$p(x)$的機率分佈,則隨機變量X的真實分佈p與模型(非真實分佈)q之間的交叉熵爲,
$$H(X,q) = H(p,q) = H(X) + D(p||q) = - \sum_{x} p(x) log q(x) = E_{p} (log{\frac 1 {q(x)}}) $$
能夠看出交叉熵是$log{\frac 1 {q(x)}}$的指望,其中指望使用了真實機率分佈$p(x)$,由於熵的計算用到了$p(x)$和$q(x)$,因此稱爲交叉熵。
咱們知道熵$H(p) = - \sum_{x} p(x) log p(x)$也能夠用來表示平均編碼長度,則交叉熵$H(p,q)$就是使用非真實分佈 q 來計算平均編碼長度,而$H(p,q) \ge H(p)$,當q 爲真實分佈 p 時等號成立。
證實:
咱們使用拉格朗日乘子法來計算$H(p,q)$的極值,其中p是固定的,q是變量,當q = p 時,$H(p,q)$有極小值爲$H(p)$,約束爲$\sum_{x} q(x) = 1$,拉格朗日函數爲,
$$L = - \sum_{x} p(x) logq(x) + \lambda (\sum_{x} q(x) - 1)$$
對$q(x)$求偏導並令其等於0,
$$\frac {\partial L} {\partial q(x)} = - \frac {p(x)} {q(x)} ln2 + \lambda = 0 $$
注意,隨便變量有多少個離散值x,就有多少個上式方程,變換一下,不可貴到,
$$q(x) = p(x) \frac {\lambda} {ln 2}$$
對$\lambda$求偏導並令其等於0,
$$\sum_{x} q(x) - 1 = 0 $$
此即約束條件,因而
$$\sum_{x} q(x) = \frac {\lambda} {ln 2} \sum_{x} p(x) = \frac {\lambda} {ln 2} = 1$$
因而,
$$q(x) = p(x)$$
此時$H(p,q) = - \sum_{x} p(x) log q(x) = - \sum_{x} p(x) log p(x) = H(p) $
上式代表q=p時,H(p,q)取極值H(p),下面再證實是極小值便可。
對H(p,q)求二階導得,
$$H(p,q)' = - \frac {p(x)} {q(x)} ln2$$
$$H(p,q)'' = \frac {p(x)} {q^{2}(x)} ln2 $$
可見$H(p,q)'' \ge 0$,即 $H(p,q)$是一個下凸函數,有極小值,因而$H(p,q) \ge H(p)$得證。
上一小節中講到的相對熵的概念也能夠理解爲使用非真實分佈 q 獲得的平均編碼長度比使用真實分佈 p 獲得的平均編碼長度多出的bit數:$D(p||q) = H(p,q) - H(p)$
假設語言爲L,語句是由單詞組成的序列,即$W_{i}^n = (w_1,w_2,...w_n)$表示由n個單詞組成的語句,那麼基於語句的熵爲
$$H(w_1,w_2,...w_n) = - \sum_{W_{i}^n \in L} p(W_{i}^n) log p(W_{i}^n) $$
平均每一個單詞的熵(entropy rate)爲
$$\frac 1 n H(w_1,w_2,...w_n) = - \frac 1 n \sum_{W_{i}^n \in L} p(W_{i}^n) log p(W_{i}^n) $$
想要測量語言的真實熵,須要假設單詞序列的長度很大,假設語言是產生一系列單詞的隨機過程L,其平均每一個單詞的熵(entropy rate)H(L)定義爲,
$$H(L) = - \lim_{n \rightarrow \infty} \frac 1 n H(w_1,w_2,...w_n) = - \lim_{n \rightarrow \infty} \frac 1 n p(w_1,w_2,...w_n) log p(w_1,w_2,...w_n) $$
假設語言L 是穩態遍歷的隨機過程,根據Shannon-McMillan-Breiman理論有,
$$\frac 1 n H(w_1,w_2,...w_n) = \lim_{n \rightarrow \infty} - \frac 1 n log p(w_1,w_2,...w_n) $$
定義語言L其模型q的交叉熵爲
$$H(L,q) = - \lim_{n \rightarrow \infty} \frac 1 n \sum_{W} p(w_1,w_2,...w_n) log q(w_1,w_2,...w_n) $$
其中,$p(w_1,w_2,...w_n)$表示語句出現的真實機率,$q(w_1,w_2,...w_n)$表示 模型q 對語句的機率估計。
再次根據Shannon-McMillan-Breiman理論,假設語言L 是穩態遍歷的隨機過程,則
$$H(L,q) = - \lim_{n \rightarrow \infty} \frac 1 n log q(w_1,w_2,...w_n)$$
設計語言模型時,一般用困惑度(perplexity)來代替交叉熵衡量語言模型的好壞。語言L中的單詞序列$(w_1,w_2,...w_n)$,則語言的困惑度爲
$$PP_{q} = 2^{H(L, q)} = 2^{- \lim_{n \rightarrow \infty} \frac 1 n log q(w_1,w_2,...w_n)} \approx q(w_1,w_2,...w_n)^{- \frac 1 n} $$
信息熵能夠定量的估計信源每發送一個符號所提供的平均信息量。信號傳輸過程須要進行雙重處理:1. 對編碼進行壓縮,儘可能消除冗餘。2. 因爲信道有噪聲,信道輸出並不等於輸入而是有必定信息的錯誤,因此須要經過增長必定的可控冗餘以保障輸入通過噪聲信道後能夠很好的恢復原樣,這個可控冗餘能檢測和校驗傳輸形成的錯誤。過程以下圖
一個二進制對稱信道的輸入符號集爲$X = \lbrace 0, \quad 1 \rbrace$,輸出符號集爲$X = \lbrace 0, \quad 1 \rbrace$。傳輸過程當中若是符號被誤傳的機率爲p,則正確傳輸的機率爲 1- p,以下圖
假設輸入爲X,輸出爲Y,若是Y很很好的逼近X,則信道的保真能力就很強,根據前面對互信息的介紹,咱們定義信道容量爲,
$$C = \max_{p(X)} I(X;Y)$$
輸入和輸出的互信息達到最大值,這就是信道的最大傳輸容量
在天然語言處理中不須要編碼,天然語言的句子可視爲已編碼的符號序列,可是須要解碼,使觀察到的輸入序列更接近與輸入,以下圖,輸入爲I,通過信道輸出爲可觀測序列O,解碼獲得原始輸入$\hat I$.
從全部可能的 I 中求解使得 p(O|I) 最大的那個I 認爲是輸入 $\hat I$,根據貝葉斯公式,已知可觀察的輸出O的條件下,p(O)已經肯定爲必定值,
$$\hat I = arg \max_{I} p(I|O) = arg \max_{I} \frac {p(I)p(O|I)} {p(O)} = arg \max_{I} p(I)p(O|I)$$
上式中,p(I)是語言模型,是指語言中 單詞序列$(w_1,w_2,...w_n)$ 的機率分佈,而 p(O|I)稱爲信道機率。例如,將一個法語句子 f 翻譯成英語 e,那麼翻譯信道模型就是假設法語句子是觀測到的輸出 O,它本來的輸入I 是一個英語句子 e,但經過噪聲信號變成了法語句子 f,如今須要根據機率 p(e) 和 p(f|e) 計算求出最接近原始輸入英語句子e 的解 $\hat e$。