統計學習
前言:機器學習比較重要的幾部分:線性模型、統計學習、深度學習,線性部分包括SVM、壓縮感知、稀疏編碼,都是控制整個模型的稀疏性去做線性函數,偏 Discriminative 判別模型;統計學習主要通過統計方法對數據建模找到極大似然,偏 Generative 生成方法;深度學習就是 neural model,偏非線性。
機器學習中的統計多是基於對事件的不確定性度量關於,是主觀的,而不是客觀地基於頻次。
EM算法 ( 期望最大算法,Expectation Maximum )
隱含變量
給定訓練數據 \(D={(x^{(1)},y^{(1)}),...,(x^{(N)},y^{(N)})}\),一般想學習到的情況是 \(x^{(i)}\) 和 \(y^{(i)}\) 之間的函數關系,但是在統計學習里想學習到的是 \(P(y^{(i)}|x^{(i)})\),在二分類問題里就是 \(P(0|x^{(i)})\) 和 \(P(1|x^{(i)})=1-P(0|x^{(i)})\)。
一般假設數據服從某種分布,根據給定數據估計分布函數的參數,求極大似然值。\(L(\mu,\sigma)=\prod_{i=1}^N P(x^{(i)}|\mu,\sigma)=\sum_{i=1}^N logP(x^{(i)}|\mu,\sigma)\)
隱含變量和概率分布的關系
變量 \(X\) 每一個維度都相互獨立
若 \(X\) 和某隱含變量 \(Z\) 相關
- 已知 \(Z\) 和 \(X\) 有某種隱含關系,\(P(X|Z)\) 是可以求出來的
- \(P(Z)\) 可假設 \(Z\) 服從某種先驗分布
舉例
擲硬幣,\(X=\{0,1\}\),認為擲硬幣的結果可能和高度相關,\(Z\) 為擲硬幣的高度,拋擲高度、角度等都是假象的可能和結果有關的變量,我們假想這些因素來刻畫數據的肌理,就是所謂 Generative Model。
假設三枚硬幣 \(A,B,C\),擲出正面的概率分別為 \(\pi,p,q\),想象生成過程比較復雜,擲出 \(A\) ,若結果為 1 ,就擲 \(B\),若結果為 0 ,就擲 \(C\),每次先擲 \(A\),由 \(A\) 的結果決定擲 \(B\) 還是 \(C\),記下 \(B,C\) 的結果,生成 \(Y=(y^{(1)},y^{(2)},...,y^{(N)})\),如何預測 \(y^{(i)}\)。
-
有參模型,\(\theta=(\pi,p,q)\)
-
求 \(P(y|\theta)=\sum_ZP(y,Z|\theta)\),引入一個隱含變量 \(Z\),控制事件 \(y\),表示 \(A\) 硬幣的結果,\(Z=1\) 表示擲的硬幣 \(B\),\(Z=0\) 表示擲的硬幣 \(C\)。
-
\(P(y|\theta)=\sum_ZP(y|Z,\theta)P(Z|\theta)\)
-
\(P(Z|\theta)=P(Z|(\pi,p,q))=\pi\),因為 \(P(Z=1|\theta)=\pi\),\(P(Z=0|\theta)=1-\pi\)
-
\(\sum_ZP(y|Z,\theta)=P(y|Z=1,\theta)+P(y|Z=0,\theta)\)
-
\(P(y|Z=1,\theta)=p^y(1-p)^{1-y}\)
\(P(y|Z=0,\theta)=q^y(1-q)^{1-y}\)
-
-
-
拆開
\[z=1\quad P(y|\theta)=\pi p^y(1-p)^{1-y}\\z=0 \quad P(y|\theta)=(1-\pi)q^y(1-q)^{1-y}\\\Rightarrow P(y|\theta)=\pi p^y(1-p)^{1-y}+(1-\pi)q^y(1-q)^{1-y} \] -
似然值為
\[P(Y|\theta)=\prod_{i=1}^NP(y^{(i)}|\theta)=\\\prod_{i=1}^N\pi p^{y^{(i)}}(1-p)^{1-y^{(i)}}+(1-\pi)q^{y^{(i)}}(1-q)^{1-y^{(i)}}\\=\sum_{i=1}^N log P(y^{(i)}|\theta) \] -
求 \(\pi,p,q\)。只知道 \(y^{(i)}\),如何估計 \(\pi,p,q\)。
-
\(P(y|\theta)=\pi p^y(1-p)^{1-y}+(1-\pi)q^y(1-q)^{1-y}\) 是混合模型 ,\(p^y(1-p)^{1-y}\) 是硬幣 \(B\) 擲出來的伯努利分布,\(q^y(1-q)^{1-y}\) 是硬幣 \(C\) 結果的伯努利分布。\(\pi\) 和 \(1-\pi\) 就像兩個事情的權重,就是兩事件的混合模型 (多模態混合,\(\alpha_1P_1,...,\alpha_nP_n\),\(\sum_i\alpha_i=1\))。
-
\(p=\frac{num (B正面)}{N}\) ,\(q=\frac{num (C正面)}{N}\),\(\pi=\frac{num (B)}{N}\)
-
E.step:
\[\mu=\frac{\pi p^y(1-p)^{1-y}}{\pi p^y(1-p)^{1-y}+(1-\pi)q^y(1-q)^{1-y}} \]- 給出擲出結果是硬幣 \(B\) 擲出的概率
-
M.step:
\[\pi = \frac{1}{N}\sum_{j=1}^{N} \mu_j \]- 對每一次擲出結果是硬幣 \(B\) 擲出的概率求均值,得出整體來說是硬幣 \(B\) 擲出的概率
\[p=\frac{\sum_{j=1}^N \mu_j y^{(j)}}{\sum_{j=1}^N \mu_j} \]- \(y^{(j)}=1\) 正面,\(y^{(j)}=0\) 反面
\[q=\frac{\sum_{j=1}^N (1-\mu_j) y^{(j)}}{\sum_{j=1}^N (1-\mu_j)} \]- 對 \(\pi,p,q\) 進行最大化估計
-
-
由 \(\theta_0=(\pi_0,p_0,q_0)\) 互相迭代至 \(\pi,p,q\) 不再變化,結果就是對 \(\pi,p,q\) 最好的估計
琴生不等式
-
\(f\) 是凸函數,對任意變量 \(x\):
\[E(f(x))\ge f(E(x)) \] -
\(f\) 是凹函數,對任意變量 \(x\):
\[E(f(x))\le f(E(x)) \]
琴生不等式在EM的應用
求極大似然值
- \(z\) 隱含變量
展開
- \(E(g(x))=\sum_x g(x)P(x)\)
- \(Q_i(z^{(i)})\) 表示 \(z^{(i)}\) 的概率分布 \(P(z^{(i)})\)
- \(\sum_{z^{(i)}}Q_i(z^{i})\frac{P(x^{(i)},z^{(i)}|\theta)}{Q_i(z^{i})}\) 可看成函數 \(g(z^{(i)})=\frac{P(x^{(i)},z^{(i)}|\theta)}{Q_i(z^{i})}\) 數學期望
- 將 \(log\) 提出來,因為 \(log\) 是凹函數,根據琴生不等式 \(log(E(x))\ge E(log(x))\)
要提高極大似然值,就優化下界使最大化。函數 \(\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{P(x^{(i)},z^{(i)}|\theta)}{Q_i(z^{(i)})}\) 記作 \(E(f(z^{(i)}))\),要使得該期望最大化,需滿足 \(f(z^{(1)})=f(z^{(2)})=...=f(z^{(n)})\),即
因為 \(\sum_zQ_i(z^{(i)})=1\),則
EM 算法公式表述
**迭代至收斂 **{
(E-step) ,for each \(i\),set
\(Q_i(z^{(i)}):=P(z^{(i)}|x^{(i)},\theta)\)
(M-step) ,set
$ \theta:= arg \ max_{\theta}\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{p(x^{(i)},z^{(i)}|\theta)}{Q_i(z^{(i)})}$
}
- EM 算法常用於估計參數隱變量
- EM 算法通過引入隱含變量,使用 MLE (極大似然估計) 進行迭代求解參數。
- E-step 通過已有數據和現有模型估計隱含參數
- M-step 假設隱含參數已知的情況下,最大化似然函數從而獲取新的參數值
高斯混合模型 ( Gaussian Mixed Model, GMM)
高斯分布 ( 正態分布 ) 函數:\(X \sim N(\mu,\sigma^2)\)
高斯混合模型就是多個高斯分布函數的線性組合,通常用於處理同一集合數據分布類型不同的情況。
高斯混合模型能夠平滑地近似任意形狀的密度分布。
二維混合模型
假設第一個高斯分布參數為 \(\mu_1,\sigma_1\),第二個高斯分布參數為 \(\mu_2,\sigma_2\),混合兩個高斯分布的模型滿足
給定數據為 \(D=\{x^{(1)},x^{(2)},...,x^{(N)}\}\)
參數的極大似然值
如何求 \(P(x^{(i)}|\theta)\)
對觀察數據 \(x^{(j)}\) 推測屬於哪個高斯分布函數,概率為
- 這步是 \(E-step\),估計參數
- 這是 \(M-step\),代入參數估計值
多維混合模型
- \(N(x|\mu_k,\delta_k)\) 稱為混合模型中第 \(k\) 個分量
- \(\pi_k\) 是混合系數,是每個分量的權重,是每個分量被選中的概率
- \(\sum_{k=1}^K\pi_k=1\ (0 \le \pi_k \le 1)\)
隱馬爾可夫模型
馬爾可夫鏈 ( Markov chain ),又稱離散時間馬爾可夫鏈,因俄國數學家安德烈. 馬爾可夫得名,為狀態空間中從一個狀態到另一個狀態轉換的 "無記憶" 隨機過程,下一狀態的概率分布只能由當前狀態決定。
隱馬爾可夫模型 ( Hidden Markov Model ),有隱含變量控制的馬爾科夫鏈,狀態並不是直接可見的,但受狀態影響的某些變量則是可見的。每一個狀態在可能輸出的符號上都有一概率分布。因此輸出符號的序列能夠透露出狀態序列的一些信息。
舉例
假設你有一個住得很遠的朋友,他每天跟你打電話告訴你他那天做了什么。你的朋友僅僅對三種活動感興趣:公園散步,購物以及清理房間。他選擇做什么事情只憑天氣。你對於他所住的地方的天氣情況並不了解,但是你知道總的趨勢。在他告訴你每天所做的事情基礎上,你想要猜測他所在地的天氣情況。
你認為天氣的運行就像一個馬爾可夫鏈。其有兩個狀態“雨”和“晴”,但是你無法直接觀察它們,也就是說,它們對於你是隱藏的。每天,你的朋友有一定的概率進行下列活動:“散步(W)”、“購物(S)”、“清理(C)”。因為你朋友告訴你他的活動,所以這些活動就是你的觀察數據。這整個系統就是一個隱馬爾可夫模型(HMM)。
假設朋友告訴你一連串活動 CSSSCWWSCW 問下一次朋友做什么活動的概率最大。
對於復雜系統需要學習合適參數使得參數能最大擬合給定數據,這就是一個如何訓練隱馬爾可夫鏈的問題。
記狀態轉移矩陣 A ,描述的是天氣運行的狀態轉移概率
- 描述的是當前狀態為 "雨" 或 "晴" 時,下一狀態為 "雨" 或 "晴"的概率
- \(q_t\) 是隱含變量,無法觀測到
記生成矩陣 B,描述的是天氣狀態與活動之間的生成概率
- \(y_t\) 是實際觀察到的數據,根據 \(q_t\) 生成
記初始狀態,即初始天氣狀態的概率
則給定的條件用公式描述為
則計算某一時刻的狀態,即聯合概率 \(P(q^{(i)},y^{(i)})=P(y^{(i)}|q^{(i)})P(q^{(i)})\)
前向后向算法
把隱馬爾可夫鏈分為兩個部分,前邊部分為 \(q^{(t)}\) 前包括 \(q^{(t)}\) ,后邊部分為 \(q^{(t+1)}\) 到 \(q^{(T)}\)
對隱含狀態的估計 \(P(q^{(t)}|y)=\frac{P(y|q^{(t)})P(q^{(t)})}{P(y)}=\frac{P(y^{(0)},y^{(1)},...,y^{(t)}|q^{(t)})P(q^{(t)})P(y^{(t+1)}...y^{(T)}|q^{(t)})}{P(y)}\)
構造 \(\alpha, \beta\) 函數
則
因為
每一時刻的 \(\alpha\) 值都是前一時刻 \(\alpha\) 值的累加乘所有可能的狀態轉移概率與生成概率。
其他兩個問題參考