機器學習概念,公式總結

一. 引言

1.機器學習是什麼

Arthur Samuel:在進行特定編程的狀況下,給予計算機學習能力的領域。
Tom Mitchell:一個程序被認爲能從經驗E中學習,解決任務T,達到性能度量值P,當且僅當,有了經驗E後,通過P評判,程序在處理T時的性能有所提高。算法

2.機器學習導圖

正面.jpeg
圖的左半部分列出了經常使用的機器學習算法與它們之間的演化關係,分爲有監督學習,無監督學習,強化學習3大類。右半部分列出了典型算法的總結比較,包括算法的核心點如類型,預測函數,求解的目標函數,求解算法。
另外一個角度總結:
image.png編程

3.機器學習分類及應用

分類

監督學習:對於有標籤的數據進行學習,目的是可以正確判斷無標籤的數據。通俗的講,老師教授學生知識,並告知學習過程當中的對與錯,讓學生能夠從所學知識的經驗和技能中對沒有學過的問題進行正確回答,這就是監督學習,用於預測數據的迴歸、分類標籤的分類、順序的排序等問題。網絡

無監督學習:對於無標籤的數據進行學習,目的是不只可以解決有明確答案的問題,也能夠對沒有明確答案的問題進行預測。通俗的講,學生經過自學學習知識,達到能夠正確回答有答案的問題,也能夠對無答案的問題進行預測歸類。經常使用於聚類、異常檢測等。app

強化學習:學生學習知識時,沒有老師對其進行對與錯的斷定,須要學生根據本身所擁有的信息本身斷定對於錯,若是可以斷定出來,則爲有監督學習;若是斷定不出來對與錯,則爲無監督學習。經常使用於機器人的自動控制、遊戲的人工智能、市場戰略的最優化等。機器學習

應用

監督學習應用:手寫文字識別、聲音處理、圖像處理、垃圾郵件分類與攔截、網頁檢索、基因診斷、股票預測......(迴歸、分類、排序)ide

無監督學習應用:人造衛星故障診斷、視頻分析、社交網站解析、聲音信號解析.....(聚類、異常檢測)函數

強化學習應用:機器人的自動控制、計算機遊戲中的人工智能、市場戰略的最優化(迴歸、分類、聚類、降維)性能

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 $$

S型基函數

高斯基函數:

$$ \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 $$

下圖展現了添加部分空間約束對模型的影響:
image.png

上圖用三角多項式做爲基函數:

$$ \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 $$

的部分空間內:
image.png

L2約束的LS

1. 標準L2約束的LS

部分空間約束的LS(最小二乘法), 正交投影矩陣P的設置自由度高, 操做難度大, 基於L2約束的LS相對較容易.

約束條件以下:

$$ \underset{\theta}{min}J_{LS}(\theta)\quad 約束條件\|\theta\|^2 \leq R $$

L2參數空間:
image.png

如圖, 是一個參數空間原點爲圓心,R爲半徑內的圓(通常爲超球)

引入拉格朗日對偶問題:
引入拉格朗日對偶問題:
image.png

利用拉格朗日對偶問題, 求解:
image.png

的最優解問題, 可獲得最優化問題$\underset{\theta}{min}J_{LS}(\theta)$的解.

上式中拉格朗日待定因子$\lambda$的解由圓半徑R決定

簡化版(不禁R決定$\lambda$):
image.png

上式$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$作奇異值分解:
image.png

帶入上上式, 則L2約束的LS解$\hat \theta$表示爲:
image.png

上式結論:

  • $\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約束優化

高斯核模型
image.png

L2約束優化
image.png

$帶寬h=0.3, 正則化參數\lambda=0.1$, 加入正則化項, 很好地抑制了過擬合.
根據標準高斯分佈的函數圖, 咱們對比能夠看出圖中標紅位置出現了過擬合.

2. 更通常L2約束的LS

標準L2約束的LS

  • 問題表示:

image.png

  • $\hat \theta$求解:

image.png

更通常的L2約束的LS
使用$bxb$正則化矩陣G, 可獲得更通常的表示:

  • 問題表示:

image.png

  • $\hat \theta$求解:

更通常的L2約束的LS解$\theta$求解過程, 和標準L2約束的LS大致相同:
image.png

  • 參數空間:

矩陣G對稱正定時, $\theta^TG\theta \leq R $將數據限制在橢圓區域內. 下圖爲更通常的L2約束的LS參數空間:
image.png

3. 模型選擇

部分空間約束或L2約束的LS, 都過度依賴正交投影矩陣P正則化參數λ的選擇

  • 選擇合適的P和λ相當重要

採用不一樣的輸入樣本, 決定算法中各個參數值的過程稱爲模型選擇

下圖展現一個高斯核模型+L2約束的LS中, 帶寬$h$和正則化參數$\lambda$的變化對學習結果的影響:
image.png

模型選擇流程:
image.png

實際應用中經常使用交叉驗證法, 拿出一部分訓練樣本作測試, 不參與學習, 值評價最終學習結果的泛化偏差
image.png

交叉驗證法流程:
image.png

K折交叉驗證:
訓練集分割爲k個集合, 需進行k次學習, 因爲各學習過程相互獨立, 能夠並行計算.

留一交叉驗證:設有n個樣本, 每次留下一個樣本作測試集, 其他n-1個訓練, 共須要訓練n次, 測試n次計算繁瑣, 樣本利用率高, 適合小樣本學習

相關文章
相關標籤/搜索