機器學習概念,公式總結
一. 引言
1.機器學習是什麼
Arthur Samuel:在進行特定程式設計的情況下,給予計算機學習能力的領域。Tom Mitchell:一個程式被認為能從經驗E中學習,解決任務T,達到效能度量值P,當且僅當,有了經驗E後,經過P評判,程式在處理T時的效能有所提升。
2.機器學習導圖
圖的左半部分列出了常用的機器學習演算法與它們之間的演化關係,分為有監督學習,無監督學習,強化學習3大類。右半部分列出了典型演算法的總結比較,包括演算法的核心點如型別,預測函式,求解的目標函式,求解演算法。另一個角度總結:
3.機器學習分類及應用
分類
監督學習:對於有標籤的資料進行學習,目的是能夠正確判斷無標籤的資料。通俗的講,老師教授學生知識,並告知學習過程中的對與錯,讓學生可以從所學知識的經驗和技能中對沒有學過的問題進行正確回答,這就是監督學習,用於預測資料的迴歸、分類標籤的分類、順序的排序等問題。
無監督學習:對於無標籤的資料進行學習,目的是不僅能夠解決有明確答案的問題,也可以對沒有明確答案的問題進行預測。通俗的講,學生通過自學學習知識,達到可以正確回答有答案的問題,也可以對無答案的問題進行預測歸類。常用於聚類、異常檢測等。
強化學習:學生學習知識時,沒有老師對其進行對與錯的判定,需要學生根據自己所擁有的資訊自己判定對於錯,如果能夠判定出來,則為有監督學習;如果判定不出來對與錯,則為無監督學習。常用於機器人的自動控制、遊戲的人工智慧、市場戰略的最優化等。
應用
監督學習應用:手寫文字識別、聲音處理、影象處理、垃圾郵件分類與攔截、網頁檢索、基因診斷、股票預測......(迴歸、分類、排序)
無監督學習應用:人造衛星故障診斷、視訊分析、社交網站解析、聲音訊號解析.....(聚類、異常檢測)
強化學習應用:機器人的自動控制、計算機遊戲中的人工智慧、市場戰略的最優化(迴歸、分類、聚類、降維)
4.機器學習方法
- 生成式分類
- 判別式分類
生成式分類和判別式分類
已知模式x, 求分類類別y的條件概率$p(y|x)$最大的類別: $ \hat{y} = \underset{y}{\arg\max} p(y|x)$
條件概率改寫為y的函式: $p(y|x) = \frac{p(x,y)}{p(x)} \propto p(x,y)$聯合概率p(x,y)和後驗概率p(y|x)成正比,故直接求聯合概率最大值即可: $\hat{y} = \underset{y}{\arg\max p(x,y)}$
條件概率p(y|x)也稱後驗概率, 聯合概率p(x,y)也稱資料生成概率
直接對後驗概率$p(y|x)$學習的過程稱為判別式分類通過預測資料生成概率$p(x,y)$學習的過程稱為生成式分類
資料生成概率$p(x,y)$已知時可推出後驗概率: $ p(y|x) = \frac{p(x,y)}{p(x)} = \frac{p(x,y)}{\sum_y{p(x,y)}} $, 反之不可以.
統計概率和樸素貝葉斯
- 統計概率方法
已知樣本$D=\{(x_i,y_i)\}_{i=1}^{n}$, 求運用最大似然方法來求模式$\theta$:
$$ \underset{\theta}{max}\prod_{i=1}^yq(x_i,y_i;\theta) $$
目標: 由訓練集得到高精度的$\theta$
- 樸素貝葉斯方法
計算模式$\theta$的先驗概率$p(\theta)$,運用貝葉斯定理來求資料集D的後驗概率$p(\theta|D)$:
$$ p(\theta|D)=\frac{p(D|\theta)p(\theta)}{p(D)} = \frac{\int\prod_{i=1}^nq(x_i,y_i|\theta)p(\theta)}{\int\prod_{i=1}^nq(x_i,y_i|\theta)p(\theta)d\theta} $$
目標: 如何精確計算後驗概率$p(\theta)$
5.強化學習(RL),監督學習(SL)和無監督學習(UL)的區別和聯絡
下面這段話解釋了得很清楚:
Reinforcement learning is a problem. Deep learning is an approach to solving problems.There is a deep learning approach to supervised learning, unsupervised learning, semi-supervised learning, and reinforcement learning.
劃重點:
- Supervised Learning: given data, predict labels
- Unsupervised Learning: given data, learn about that data
- Reinforcement learning: given data, choose action to maximize expected long-term reward
- RL更像控制系統家族裡的,流著控制的血液,披著機器學習的外衣,需要data,training以此來支援決策。RL可以decision-making,不同於決策樹之類的決策,是控制角度的決策,意味著就有失誤,伴隨著收益與懲罰(股票,博弈,遊戲得分等等)。
細一點來說,RL與SL的區別有:
- 喂資料的方式不同:強化學習(RL)的資料是序列的、互動的、並且還是有反饋的(Reward)-【MDP]。這就導致了與監督學習(SL)在優化目標的表現形式的根本差異:RL是一個決策模型,SL更偏向模式挖掘,低階的函式逼近與泛化。RL是agent自己去學習,SL是跟著programmer的idea在收斂。
- RL的target是估計得來的,符合bellman等式,SL的target是fixed label;RL可以融合SL來訓練,RL還可以自己博弈來生成樣本。[互動特性,也可以放到第一點中]
- RL可以進行lifelong形式的學習。RL有“生命”的【你可能也不知道你訓練出來的模型到底能幹什麼】,SL沒有。
二. 機器學習模型
1. 線性模型
一維輸入+基函式形式:
$$ f_\theta(x) = \sum_{j=1}^b\theta_j\phi_j(x) = \theta^T\phi(x) $$
$\phi_j(x)$非線性時, $f_\theta(x)$可以表示複雜模型基函式:(1) 多項式
$$ \phi(x) = (1, x, x^2, ..., x^{b-1})^T $$
(2)三角多項式
$$ \phi(x) = (1, sinx, cosx, sin2x, cos2x, ..., sinmx, cosmx)^T $$
多維輸入形式:
$$ f_\theta(\vec x) = \sum_{j=1}^b\theta_j\phi_j(\vec x) = \theta^T\phi(\vec x) $$
$\phi_j(x)$是基函式向量$\phi(x) = (\phi_1(x), ..., \phi_b(x))^T)$的第j個因子, $\theta_j$是引數向量$\theta=(\theta_1,...,\theta_b)^T$的第j個因子.
基函式:(1) 乘法模型
$$ f_\theta(\vec x) = \sum_{j_1=1}^{b'} \cdots \sum_{j_d=1}^{b'} \theta_{j_1,...,j_d} \phi_{j_1}{(x^{(1)}}) \cdots \phi_{j_d}(x^{(d)}) $$
模型表現力豐富, 其中, b'代表各維引數個數, 引數總和$(b′)^d$, 易導致維數災難.(2) 加法模型
$$ θ(x)=\sum_{k=1}^d\sum_{j=1}^{b'}\theta_{k,j}\phi_j(x^{(k)}) $$
引數總和$b'd$, 複雜度小, 表現力差
2. 核模型
線性模型基函式和訓練樣本無關,核模型的基函式會使用輸入樣本.
核模型是二元核函式$K(\cdot,\cdot)$, 以$K(\vec x, x_j)_{j=1}^n$的方式線性結合:
$$ f_\theta(x) = \sum_{j=1}^n\theta_jK(x,x_j) $$
高斯核:
$$ K(x,c) = exp(-\frac{\|x-c\|^2}{2h^2}) $$
, 其中$\|\cdot\|$表示$L2$範數$\|x\|=\sqrt{x^Tx}$, h和c是高斯函式頻寬和均值
高斯核函式圖:
一維高斯核如圖, 只在各個樣本$\{x_i\}_{i=1}^n$附近近似, 減輕了維數災難
引數個數不依賴輸入變數維數d, 只由樣本數n決定
樣本數n很大時, 將樣本$\{x_i\}_{i=1}^n$的子集$\{c_j\}_{j=1}^b$作為核均值計算, 抑制了計算負荷:
$$ f_\theta(x)=\sum_{j=1}^b\theta_jK(x,c_j) $$
核模型是引數向量$\vec \theta=(\theta_1,\cdots,\theta_n)^T$的線性形式, 因此也是基於引數的線性模式的特例.
基於引數的線性模型稱為引數模型, 核模型稱為非引數模型
核對映: 核模型易擴充套件,當輸入樣本不是向量時(字串,決策樹, 圖表等),通過構造兩個樣本x和x'的和核函式$K(x,x')$來建模.
3. 層級模型
非線性模型: 和引數相關的不是線性的模型均稱為非線性模型非線性模型中的層級模型:
$$ f_\theta(x) = \sum_{j=1}^b\alpha_j\phi(x;\beta_j) $$
上式中, $\phi(x;\beta_j)$是包含引數向量$\vec \beta$的基函式, $\vec \alpha$是引數向量層級模型是基於引數向量$\vec \theta = (\vec \alpha^T, \beta_1^T, \cdots, \beta_b^T)^T$的非線性形式
S型基函式:
$$ \phi(x;\beta) = \frac{1}{1+exp(- x^T \omega-\gamma)}, \beta = (\omega^T, \gamma)^T $$
高斯基函式:
$$ \phi(x;\beta) = exp(-\frac{\|x-c\|^2}{2h^2}), \beta = (c^T, h)^T $$
- 使用S型核函式的層級模型稱為人工神經網路
- 上式中的高斯函式和核模型中的高斯核相同,但是頻寬和均值非固定
- 層級模型會對耦合係數$\{\alpha_j\}_{j=1}^b$,頻寬和均值都進行學習, 因此層級模型比核函式更靈活.
- 人工神經網路學習過程艱難: 引數$\theta$和函式$f_\theta$不是一一對應的
- 常採用貝葉斯方法學習人工神經網路
三. 最小二乘法(LS)
1. 無約束最小二乘法
對模型均方誤差最小化時的引數$\theta$學習的方法.
若無特別說明, 下文提到的最小二乘法通指無約束的.
均方誤差:
$$ J_{LS}(\theta) = \frac{1}{2}\sum_{i=1}^n(f_\theta(x_i)-y_i)^2 $$
LS: Least Squares學習目標:
$$ \hat\theta_{LS} = \underset{\theta}{\arg\min}J_{LS}(\theta) $$
平方誤差$(f_\theta(x_i)-y_i)^2$是殘差$|f_\theta(x_i)-y_i|$的$L2$範數, 最小二乘法也稱 $L_2$損失最小化學習法
加權最小二乘法對訓練樣本平方差通過權重$w_i$加權, 再使用最小二乘法:
$$ \underset{\theta}{min}\frac{1}{2}\sum_{i=1}^nw_i(f_\theta(x_i)-y_i)^2 $$
核模型的最小二乘法求解:
$$ f_\theta(x) = \sum_{j=1}^n\theta_jK(x,x_j) $$
上式, 將設計矩陣$\Phi$置換為核矩陣K:
$$ K = \begin{pmatrix} K(x_1,x1) &\cdots &K(x_1,x_n) \\ \vdots &\ddots & \vdots \\ K(x_n,x_1) &\cdots & K(x_n,x_n) \end{pmatrix} $$
線性模型中的應用
$$ f_\theta(x) = \sum_{j=1}^b\theta_i\phi_i(\mathbf x) = \theta^T\phi(x) $$
平方誤差:
$$ J_{LS}(\theta) = \frac{1}{2}\|\Phi \mathbf \theta-\mathbf y\|^2 $$
$\Phi$構成的nxb階設計矩陣:
$$ \Phi = \begin{pmatrix} \phi_1(x_1) &\cdots &\phi_b(x_1) \\ \vdots &\ddots &\vdots \\ \phi_1(x_n) &\cdots &\phi_b(x_n) \\ \end{pmatrix} $$
關於引數向量$\theta$的偏微分:
$$ \nabla \theta_{LS} = (\frac{\partial J_{LS}}{\partial \theta_1}, \cdots, \frac{\partial J_{LS}}{\partial \theta_b})= \Phi^T\Phi\theta-\Phi^T\mathbf y $$
$\nabla \theta_{LS}=0$時$J_{LS}(\theta)$取得最小值, 此時最小二乘解滿足$\Phi^T\Phi \theta=\Phi^T\mathbf y$
解得:
$$ \hat \theta_{LS} = (\Phi^T\Phi)^{-1}\Phi^Ty $$
注: 只有$\Phi^T\Phi$有逆矩陣時上式才成立
廣義逆矩陣: 是對逆矩陣的推廣, 只有方陣, 非奇異矩陣才有逆矩陣, 單矩形矩陣或奇異矩陣都可以定義廣義逆矩陣令廣義逆矩陣為:
$$ \Phi^{\dagger} = (\Phi^T\Phi)^{-1}\Phi^T $$
, 則$\hat \theta_{LS}$可寫為:
$$ \hat \theta_{LS} = \Phi ^{\dagger}y $$
最小二乘法學習基於三角多項式基函式的線性模型:
無約束最小二乘法解的性質
設計矩陣$\Phi$的奇異值分解:
$$ \phi = \sum_{k=1}^{min(n,b)}\kappa_k\psi_{k} \varphi_k^T $$
$\kappa_k, \psi_{k}, \varphi_k$分別稱為奇異值, 左奇異向量, 右奇異向量.
- 奇異值非負
- 奇異向量滿足正交性
$\Phi$的廣義逆矩陣:
$$ \Phi^{\dagger} =\sum_{k=1}^{min(n,b)}\kappa_k^{\dagger}\psi_{k} \varphi_k^T $$
$\kappa _k^{\dagger}$是標量$\kappa$的廣義逆矩陣, $\kappa^{\dagger} = \frac{1}{\kappa} (\kappa \neq 0時)$
最小二乘解表示為:
$$ \hat \theta_{LS}= \sum_{k=1}^{min(n,b)}\kappa_k^{\dagger}(\psi_{k}^Ty) \varphi_k $$
模型輸出向量變換為列向量:
$$ (f_{\hat \theta_{LS}}(x_1), \cdots, f_{\hat \theta_{LS}}(x_n))^T = \Phi\hat \theta_{LS} = \Phi\Phi^{\dagger}\mathbf{y} $$
因此, $\Phi\Phi^{\dagger}$是$\Phi$的正交投影矩陣, 最小二乘法輸出向量$\mathbf y$是值域$R(\Phi)$的正交投影得到的.
帶入真實函式中的引數$\theta^*$:
$$ (f(x_1), \cdots, f(x_n))^T = \Phi \theta^* $$
可知, 真的輸出值向量就存在於$R(\Phi)$中
結論: 用最小二乘法的向量若是由$R(\Phi)$的正投影得到的, 則可以有效去除y中的噪音:
噪聲期望為0是, $\hat \theta_{LS}$就是真是引數$\theta^*$的無偏估計:
$$ E[\hat \theta_{LS}] = \theta^* $$
上式, E為噪聲的期望
漸近無偏性:增加訓練樣本n, 上式$E[hat theta_{LS}]會向著模型中最優引數方向收斂的性質
大規模學習
一般線性模型$J_{LS}$為凸函式.凸函式: 連線任意兩點$\theta_1,\theta_2$的線段一定在函式上不:
凸函式只有一個峰值,因此通過梯度法一定可以得到均方差$J_{LS}$在值域範圍內的全域性最優解
梯度法的收斂速度強烈依賴梯度下降步長, 以及收斂結果判定方式(提前終止).
2.帶約束條件的最小二乘法
單純的最小二乘法容易過擬合, 帶約束的最小二乘法能控制模型複雜度, 降低過擬合.
部分空間約束的LS
含參線性模型, 使用全體引數空間:
$$ f_{\theta}(x) = \sum_{j=1}^b\theta_j\phi_j(x) = \theta^T\phi(x) $$
將引數空間限制在一定範圍內, 防止過擬合:
$$ \underset{\theta}{min}J_{LS}(\theta) \quad 約束條件 P\theta=\theta $$
P是$bxb$維矩陣,是P的值域$R(P)$的正交投影矩陣
部分空間約束的最小二乘法解$\hat \theta$通過將設計矩陣$\Phi$置換為$\Phi P$求得:
$$ \hat \theta = (\Phi P)^\dagger\, y $$
下圖展示了新增部分空間約束對模型的影響:
上圖用三角多項式作為基函式:
$$ \phi(x) = (1, sin\frac{x}{2},cos\frac{x}{2},sin\frac{2x}{2},cos\frac{2x}{2}, \cdots, sin\frac{15x}{2},cos\frac{15x}{2})^T $$
圖(b)添加了約束條件, 將引數限制在
$$ (1, sin\frac{x}{2},cos\frac{x}{2},sin\frac{2x}{2},cos\frac{2x}{2}, \cdots, sin\frac{5x}{2},cos\frac{5x}{2})^T $$
的部分空間內:
L2約束的LS
1. 標準L2約束的LS
部分空間約束的LS(最小二乘法), 正交投影矩陣P的設定自由度高, 操作難度大, 基於L2約束的LS相對較容易.
約束條件如下:
$$ \underset{\theta}{min}J_{LS}(\theta)\quad 約束條件\|\theta\|^2 \leq R $$
L2引數空間:
如圖, 是一個引數空間原點為圓心,R為半徑內的圓(一般為超球)
引入拉格朗日對偶問題:引入拉格朗日對偶問題:
利用拉格朗日對偶問題, 求解:
的最優解問題, 可得到最優化問題$\underset{\theta}{min}J_{LS}(\theta)$的解.
上式中拉格朗日待定因子$\lambda$的解由圓半徑R決定
簡化版(不由R決定$\lambda$):
上式$J_{LS}(\theta)$表示對樣本擬合程度, 與$\frac{\lambda}{2}\|\theta\|^2$組合得到最小是, 防止過擬合
上式令關於$\theta$的導數為0, L2約束的LS的解$\theta$可通過下式求解:
$$ \hat \theta = (\Phi^T\Phi+\lambda I)^{-1}\Phi^T\mathbf y $$
上式結論:
- 將矩陣$\Phi^T\Phi和\lambda I$相加提高其正則性, 進而更穩定地進行逆矩陣求解.
- L2約束的LS也成為L2正則化的LS, $\|\theta\|^2$稱為正則項, $\lambda$為正則化引數
- L2正則化有時也稱嶺迴歸
將設計矩陣$\Phi$做奇異值分解:
帶入上上式, 則L2約束的LS解$\hat \theta$表示為:
上式結論:
- $\lambda=0$時, L2約束的LS蛻化為一般的LS
- 設計矩陣$\Phi$計算條件惡劣,包含極小的奇異值$K_k$時, $K_k/K_k^2=1/K_k$變得極大, 訓練輸出$\vec y$噪聲會增加
- 分母$K_k^2$中加入正的常數$\lambda$, 避免$K_k/(K_k^2+\lambda$過大, 進而可防止過擬合
2. 高斯核模型的L2約束優化
高斯核模型
L2約束優化
$頻寬h=0.3, 正則化引數\lambda=0.1$, 加入正則化項, 很好地抑制了過擬合.根據標準高斯分佈的函式圖, 我們對比可以看出圖中標紅位置出現了過擬合.
2. 更一般L2約束的LS
標準L2約束的LS
- 問題表示:
- $\hat \theta$求解:
更一般的L2約束的LS使用$bxb$正則化矩陣G, 可得到更一般的表示:
- 問題表示:
- $\hat \theta$求解:
更一般的L2約束的LS解$\theta$求解過程, 和標準L2約束的LS大體相同:
- 引數空間:
矩陣G對稱正定時, $\theta^TG\theta \leq R $將資料限制在橢圓區域內. 下圖為更一般的L2約束的LS引數空間:
3. 模型選擇
部分空間約束或L2約束的LS, 都過分依賴正交投影矩陣P和 正則化引數λ的選擇
- 選擇合適的P和λ至關重要
採用不同的輸入樣本, 決定演算法中各個引數值的過程稱為模型選擇
下圖展示一個高斯核模型+L2約束的LS中, 頻寬$h$和正則化引數$\lambda$的變化對學習結果的影響:
模型選擇流程:
實際應用中常用交叉驗證法, 拿出一部分訓練樣本做測試, 不參與學習, 值評價最終學習結果的泛化誤差
交叉驗證法流程:
K折交叉驗證:訓練集分割為k個集合, 需進行k次學習, 由於各學習過程相互獨立, 可以平行計算.
留一交叉驗證:設有n個樣本, 每次留下一個樣本做測試集, 其餘n-1個訓練, 共需要訓練n次, 測試n次計算繁瑣, 樣本利用率高, 適合小樣本學習