Arthur Samuel:在進行特定編程的狀況下,給予計算機學習能力的領域。
Tom Mitchell:一個程序被認爲能從經驗E中學習,解決任務T,達到性能度量值P,當且僅當,有了經驗E後,通過P評判,程序在處理T時的性能有所提高。算法
圖的左半部分列出了經常使用的機器學習算法與它們之間的演化關係,分爲有監督學習,無監督學習,強化學習3大類。右半部分列出了典型算法的總結比較,包括算法的核心點如類型,預測函數,求解的目標函數,求解算法。
另外一個角度總結:編程
監督學習:對於有標籤的數據進行學習,目的是可以正確判斷無標籤的數據。通俗的講,老師教授學生知識,並告知學習過程當中的對與錯,讓學生能夠從所學知識的經驗和技能中對沒有學過的問題進行正確回答,這就是監督學習,用於預測數據的迴歸、分類標籤的分類、順序的排序等問題。網絡
無監督學習:對於無標籤的數據進行學習,目的是不只可以解決有明確答案的問題,也能夠對沒有明確答案的問題進行預測。通俗的講,學生經過自學學習知識,達到能夠正確回答有答案的問題,也能夠對無答案的問題進行預測歸類。經常使用於聚類、異常檢測等。app
強化學習:學生學習知識時,沒有老師對其進行對與錯的斷定,須要學生根據本身所擁有的信息本身斷定對於錯,若是可以斷定出來,則爲有監督學習;若是斷定不出來對與錯,則爲無監督學習。經常使用於機器人的自動控制、遊戲的人工智能、市場戰略的最優化等。機器學習
監督學習應用:手寫文字識別、聲音處理、圖像處理、垃圾郵件分類與攔截、網頁檢索、基因診斷、股票預測......(迴歸、分類、排序)ide
無監督學習應用:人造衛星故障診斷、視頻分析、社交網站解析、聲音信號解析.....(聚類、異常檢測)函數
強化學習應用:機器人的自動控制、計算機遊戲中的人工智能、市場戰略的最優化(迴歸、分類、聚類、降維)性能
已知模式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)$
下面這段話解釋了得很清楚:
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.
劃重點:
細一點來講,RL與SL的區別有:
$$ 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$, 複雜度小, 表現力差
線性模型基函數和訓練樣本無關,核模型的基函數會使用輸入樣本.
核模型是二元核函數$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')$來建模.
非線性模型: 和參數相關的不是線性的模型均稱爲非線性模型
非線性模型中的層級模型:
$$ 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 $$
對模型均方偏差最小化時的參數$\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}$在值域範圍內的全局最優解
梯度法的收斂速度強烈依賴梯度降低步長, 以及收斂結果斷定方式(提早終止).
單純的最小二乘法容易過擬合, 帶約束的最小二乘法能控制模型複雜度, 下降過擬合.
含參線性模型, 使用全體參數空間:
$$ 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 $$
的部分空間內:
部分空間約束的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$作奇異值分解:
帶入上上式, 則L2約束的LS解$\hat \theta$表示爲:
上式結論:
高斯核模型
L2約束優化
$帶寬h=0.3, 正則化參數\lambda=0.1$, 加入正則化項, 很好地抑制了過擬合.
根據標準高斯分佈的函數圖, 咱們對比能夠看出圖中標紅位置出現了過擬合.
標準L2約束的LS
更通常的L2約束的LS
使用$bxb$正則化矩陣G, 可獲得更通常的表示:
更通常的L2約束的LS解$\theta$求解過程, 和標準L2約束的LS大致相同:
矩陣G對稱正定時, $\theta^TG\theta \leq R $將數據限制在橢圓區域內. 下圖爲更通常的L2約束的LS參數空間:
部分空間約束或L2約束的LS, 都過度依賴正交投影矩陣P和 正則化參數λ的選擇
採用不一樣的輸入樣本, 決定算法中各個參數值的過程稱爲模型選擇
下圖展現一個高斯核模型+L2約束的LS中, 帶寬$h$和正則化參數$\lambda$的變化對學習結果的影響:
模型選擇流程:
實際應用中經常使用交叉驗證法, 拿出一部分訓練樣本作測試, 不參與學習, 值評價最終學習結果的泛化偏差
交叉驗證法流程:
K折交叉驗證:
訓練集分割爲k個集合, 需進行k次學習, 因爲各學習過程相互獨立, 能夠並行計算.
留一交叉驗證:設有n個樣本, 每次留下一個樣本作測試集, 其他n-1個訓練, 共須要訓練n次, 測試n次計算繁瑣, 樣本利用率高, 適合小樣本學習