机器学习的三个基本因素【模型、学习准则、优化算法】
機器學習的三個基本因素
機器學習是從有限的觀測數據中學習
(或“猜測”)出具有一般性的規律,并可以將總結出來的規律推廣應用到未觀測樣本上。
機器學習方法可以粗略地分為三個基本要素:模型、學習準則、優化算法。
模型
對于一個機器學習任務,首先要確定其輸入空間 x x x和輸出空間 y y y,不同機器學習任務的主要區別在于輸出空間不同。在二分類問題中 y = + 1 , ? 1 y ={+1,-1} y=+1,?1,在C分類問題中 y = 1 , 2 , . . . , C y={1,2,...,C} y=1,2,...,C,而在回歸問題中 y = R y=R y=R.
輸入空間 x x x和輸出空間 y y y構成了一個樣本空間,對于樣本空間中的樣本 ( x , y ) ∈ x × y (x,y)\in x \times y (x,y)∈x×y,假定 x x x和 y y y之間的關系可以通過一個未知的真實映射函數 y = g ( x ) y =g(x) y=g(x)或真實條件概率分布 p r ( y / x ) p_r(y/x) pr?(y/x)來描述。機器學習的目標是找到一個模型來近似真實映射函數 g ( x ) g(x) g(x)或真實條件概率分布 p r ( y / x ) p_r(y/x) pr?(y/x)。
由于我們不知道真實的映射函數 g ( x ) g(x) g(x)或條件概率分布 p r ( y / x ) p_r(y/x) pr?(y/x)的具體形式因而只能根據經驗來假設一個函數集合 F \mathcal F F,稱為假設空間( Hypothesis Space),然后通過觀測其在訓練集 D D D上的特性從中選擇一個理想的假設(Hypothesis ) f ? ∈ F f^*\in \mathcal F f?∈F。
假設空間 F F F 通常為一個參數化的函數族
F = { f ( x ; θ ) ∣ θ ∈ R D } \mathcal F=\{f(\mathbf x;\theta)|\theta\in\mathbb R^D\} F={f(x;θ)∣θ∈RD}
其中 f ( x ; θ ) f(\mathbf x;\theta) f(x;θ)是參數為 θ \theta θ的函數,也稱為模型(Model),D為參數的數量。
常見的假設空間可以分為線性和非線性兩種,對應的模型 f f f也分別稱為線性模型和非線性模型.
線性模型
線性模型的假設空間為一個參數化的線性函數族,即
f ( x ; θ ) = w ? x + b , \quad f(\mathbf{x};\theta)=\mathbf{w}^{\intercal}\mathbf{x}+b, f(x;θ)=w?x+b,
其中參數 θ \theta θ包含了權重向量 w w w和偏置 b b b.
非線性模型
廣義的非線性模型可以寫為多個非線性基函數 ? ( x ) \phi(x) ?(x)的線性組合
f ( x ; θ ) = w ? ? ( x ) + b f(\boldsymbol{x};\theta)=\boldsymbol{w}^{\top}\phi(\boldsymbol{x})+b f(x;θ)=w??(x)+b
其中 ? ( x ) = [ ? 1 ( x ) , ? 2 ( x ) , ? , ? K ( x ) ] ? \phi(\mathbf{x})=[\phi_{1}(\mathbf{x}),\phi_{2}(\mathbf{x}),\cdots,\phi_{K}(\mathbf{x})]^{\intercal} ?(x)=[?1?(x),?2?(x),?,?K?(x)]?為K個非線性基函數組成的向量,參數 θ \theta θ包含了權重向量 w w w和偏置 b b b。
如果 ? ( x ) \phi(x) ?(x)本身為可學習的基函數,比如
? k ( x ) = h ( w k ? ? ′ ( x ) + b k ) , ? 1 ≤ k ≤ K \phi_{k}(\boldsymbol{x})=h(\boldsymbol{w}_{k}^{\intercal}\phi^{\prime}(\boldsymbol{x})+b_{k}),\forall1\leq k\leq K ?k?(x)=h(wk???′(x)+bk?),?1≤k≤K
其中 h ( ? ) h(\cdot) h(?)為非線性函數, ? ′ ( x ) \phi'(x) ?′(x)為另一組基函數, w k w_k wk?和 b k b_k bk?為可學習的參數,則 f ( x ; θ ) f(\mathbf{x};\theta) f(x;θ)就等價于神經網絡模型。
學習準則
令訓練集 D = { ( x ( n ) , y ( n ) ) } n = 1 N {\cal D}=\{(x^{(n)},y^{(n)})\}_{n=1}^{N} D={(x(n),y(n))}n=1N? 是由N個獨立同分布的(Independent and dentically Distributed,IID)樣本組成,即每個樣本 ( x , y ) ∈ x × y (x,y)\in x \times y (x,y)∈x×y是從 x x x和 y y y的聯合空間中按照某個未知分布 p r ( x , y ) p_r(x,y) pr?(x,y)獨立地隨機產生的。這里要求樣本分布 p r ( x , y ) p_r(x,y) pr?(x,y)必須是固定的(雖然可以是未知的),不會隨時間而變化。如果 p r ( x , y ) p_r(x,y) pr?(x,y)本身可變的話,就無法通過這些數據進行學習.
一個好的模型 f ( x , θ ? ) f(\mathbf{x},\theta^{*}) f(x,θ?)應該在所有 ( x , y ) (x,y) (x,y)的可能取值上都與真實映射函數 y = g ( x ) y = g(x) y=g(x)一致,即
∣ f ( x , θ ? ) ? y ∣ < ε , ? ( x , y ) ∈ x × y , |f(\boldsymbol{x},\theta^*)-y|<\varepsilon,\quad\forall(\boldsymbol{x},y)\in\boldsymbol{x}\times y, ∣f(x,θ?)?y∣<ε,?(x,y)∈x×y,
或與真實條件概率分布 p r ( y / x ) p_r(y/x) pr?(y/x)一致,即
∣ f y ( x , θ ? ) ? p r ( y ∣ x ) ∣ < ? , ? ( x , y ) ∈ x × y , |f_y(\mathbf x,\theta^*)-p_r(y|\mathbf x)|<\epsilon,\quad\forall(\mathbf x,y)\in\mathbf x\times y, ∣fy?(x,θ?)?pr?(y∣x)∣<?,?(x,y)∈x×y,
其中 ? \epsilon ?是一個很小的正數, f y ( x , θ ? ) f_y(x,\theta^*) fy?(x,θ?)為模型預測的條件概率分布中 y y y對應的概率。
模型 f ( x ; θ ) f(x;\theta) f(x;θ)的好壞可以通過期望風險( Expected Risk ) R ( θ ) R(\theta) R(θ)來衡量,其定義為
R ( θ ) = E ( x , y ) ? p r ( x , y ) [ L ( y , f ( x ; θ ) ) ] \mathcal{R}(\theta)=\mathbb{E}_{(x,y)-p_r(x,y)}[\mathcal{L}\big(y,f(\mathbf{x};\theta)\big)] R(θ)=E(x,y)?pr?(x,y)?[L(y,f(x;θ))]
其中 p r ( x , y ) p_r(x,y) pr?(x,y)為真實的數據分布, L ( y , f ( x ; θ ) ) \mathcal{L}(y,f(x;\theta)) L(y,f(x;θ))為損失函數,用來量化兩個變量之間的差異.
損失函數
損失函數是一個非負實數函數,用來量化模型預測和真實標簽之間的差異下面介紹幾種常用的損失函數.
0-1損失函數 最直觀的損失函數是模型在訓練集上的錯誤率,即0-1 損失函數( 0-1 Loss Function ) :
L ( y , f ( x ; θ ) ) = { 0 if y = f ( x ; θ ) 1 if y ≠ f ( x ; θ ) = I ( y ≠ f ( x ; θ ) ) , \mathcal{L}\big(y,f(\mathbf{x};\theta)\big)=\left\{\begin{array}{c}0&\textrm{if}y=f(\mathbf{x};\theta)\\ 1&\textrm{if}y\neq f(\mathbf{x};\theta)\\ =I(y\neq f(\mathbf{x};\theta)),\end{array}\right. L(y,f(x;θ))=? ? ??01=I(y=f(x;θ)),?ify=f(x;θ)ify=f(x;θ)?
平方損失函數 平方損失函數(Quadratic Loss Function)經常用在預測標簽 y y y為實數值的任務中,定義為
L ( y , f ( x ; θ ) ) = 1 2 ( y ? f ( x ; θ ) ) 2 . \mathcal{L}\bigl(y,f(\mathbf{x};\theta)\bigr)=\dfrac{1}{2}\Bigl(y-f(\mathbf{x};\theta)\Bigr)^2. L(y,f(x;θ))=21?(y?f(x;θ))2.
平方損失函數一般不適用于分類問題。
交叉損失函數 交叉熵損失函數( Cross-Entropy Loss Function)一般用于分類問題. 假設樣本的標簽 y ∈ { 1 , . . . , C } y\in \{1,...,C\} y∈{1,...,C}為離散的類別,模型 f ( x ; θ ) ∈ [ 0 , 1 ] C f(\mathbf{x};\theta)\in[0,1]^{C} f(x;θ)∈[0,1]C的輸出為類別標簽的條件概率分布,即
p ( y = c ∣ x ; θ ) = f c ( x ; θ ) p(y=c|\mathbf{x};\theta)=f_c(\mathbf{x};\theta) p(y=c∣x;θ)=fc?(x;θ)
并滿足
f c ( x ; θ ) ∈ [ 0 , 1 ] , ∑ c = 1 C f c ( x ; θ ) = 1 f_c(\mathbf{x};\theta)\in[0,1],\quad\sum\limits_{c=1}^{C}f_c(\mathbf{x};\theta)=1 fc?(x;θ)∈[0,1],c=1∑C?fc?(x;θ)=1
我們可以用一個C維的one-hot 向量 y y y來表示樣本標簽。設樣本的標簽為k,那么標簽向量 y y y只有第k維的值為1,其余元素的值都為0.標簽向量y可以看作樣本標簽的真實條件概率分布 p r ( y / x ) p_r(y/x) pr?(y/x)即第c維(記為 y c y_c yc?$ 1\leq c\leq C$)是類別為c的真實條件概率.假設樣本的類別為 k k k,那么它屬于第k類的概率為1屬于其他類的概率為0.
對于兩個概率分布,一般可以用交叉熵來衡量它們的差異.標簽的真實分布y和模型預測分布 f ( x ; θ ) f(\mathbf{x};\theta) f(x;θ)之間的交叉熵為
L ( y , f ( x ; θ ) ) = ? y τ log ? f ( x ; θ ) = ? ∑ c = 1 C y c log ? f c ( x ; θ ) . \begin{array}{r}\mathcal{L}(\boldsymbol{y},f(\boldsymbol{x};\boldsymbol{\theta}))=-\boldsymbol{y}^{\tau}\log f(\boldsymbol{x};\boldsymbol{\theta})\\ =-\sum_{c=1}^{C}y_{c}\log f_{c}(\boldsymbol{x};\boldsymbol{\theta}).\end{array} L(y,f(x;θ))=?yτlogf(x;θ)=?∑c=1C?yc?logfc?(x;θ).?
比如對于三分類問題,一個樣本的標簽向量為 y = [ 0 , 0 , 1 ] T y =[0,0,1]^T y=[0,0,1]T,模型預測的標簽分布為 f ( x ; θ ) = [ 0.3 , 0.3 , 0.4 ] T f(x;\theta) =[0.3,0.3,0.4]^T f(x;θ)=[0.3,0.3,0.4]T,則它們的交叉熵為 ? ( 0 × l o g ( 0.3 ) + 0 × l o g ( 0.3 ) + 1 × l o g ( 0.4 ) ) = ? l o g ( 0.4 ) -(0 \times log(0.3) + 0\times log(0.3) + 1 \times log(0.4)) = - log(0.4) ?(0×log(0.3)+0×log(0.3)+1×log(0.4))=?log(0.4)
因為 y y y為one-hot向量,公式也可以寫為
L ( y , f ( x ; θ ) ) = ? log ? f y ( x ; θ ) \mathcal{L}\big(y,f(\mathbf{x};\theta)\big)=-\log f_y(\mathbf{x};\theta) L(y,f(x;θ))=?logfy?(x;θ)
其中 f y ( x ; θ ) f_y(\mathbf{x};\theta) fy?(x;θ)可以看作真實類別 y y y的似然函數。因此,交叉損失函數也就是負對數似然函數( Negative Log-Likelihood )。
Hinge 損失函數 對于二分類問題,假設y的取值為 ? 1 , + 1 {-1,+1} ?1,+1, f ( x ; θ ) ∈ R f(\mathbf{x};\theta)\in R f(x;θ)∈R.
Hinge損失函數(Hinge Loss Function)為
L ( y , f ( x ; θ ) ) = max ? ( 0 , 1 ? y f ( x ; θ ) ) ? [ 1 ? y f ( x ; θ ) ] + , \begin{array}{c}\mathcal{L}\big(y,f(\mathbf{x};\theta)\big)=\max\big(0,1-y f(\mathbf{x};\theta)\big)\\ \triangleq\big[1-y f(\mathbf{x};\theta)\big]_+,\end{array} L(y,f(x;θ))=max(0,1?yf(x;θ))?[1?yf(x;θ)]+?,?
其中 [ x ] + = m a x ( 0 , x ) \left[x\right]_{+}=\mathrm{max}(0,x) [x]+?=max(0,x)
風險最小化準則
一個好的模型 f ( x ; θ ) f(\mathbf{x};\theta) f(x;θ)應當有一個比較小的期望錯誤,但由于不知道真實的數據分布和映射函數,實際上無法計算其期望風險 R ( θ ) \mathcal{R}(\theta) R(θ). 給定一個訓練集 D = { ( x ( n ) , y ( n ) ) } n = 1 N {\cal D}=\{(x^{(n)},y^{(n)})\}_{n=1}^{N} D={(x(n),y(n))}n=1N?,我們可以計算的是經驗風險( Empirical Risk ),即在訓練集上的平均損失:
R D e m p ( θ ) = 1 N ∑ n = 1 N L ( y ( n ) , f ( x ( n ) ; θ ) ) \mathcal{R}_{D}^{emp}(\theta)=\dfrac{1}{N}\sum\limits_{n=1}^{N}\mathcal{L}(y^{(n)},f(\mathbf{x}^{(n)};\theta)) RDemp?(θ)=N1?n=1∑N?L(y(n),f(x(n);θ))
因此,一個切實可行的學習準則是找到一組參數 θ ? \theta^* θ? 使得經驗風險最小,即
θ ? = arg ? θ min ? R D e m p ( θ ) \theta^*=\arg\limits_\theta\min\mathcal{R}_D^{emp}(\theta) θ?=θarg?minRDemp?(θ)
這就是經驗風險最小化( Empirical Risk Minimization,ERM)準則。
過擬合 根據大數定理可知,當訓練集大小 ∣ D ∣ |D| ∣D∣趨向于無窮大時,經驗風險就趨向于期望風險.然而通常情況下,我們無法獲取無限的訓練樣本,并且訓練樣本往往是真實數據的一個很小的子集或者包含一定的噪聲數據,不能很好地反映全部數據的真實分布.經驗風險最小化原則很容易導致模型在訓練集上錯誤率很低,但是在未知數據上錯誤率很高.這就是所謂的過擬合(Overfitting).
過擬合問題往往是由于訓練數據少和噪聲以及模型能力強等原因造成的.為了解決過擬合問題,一般在經驗風險最小化的基礎上再引入參數的正則化( Regularization) 來限制模型能力,使其不要過度地最小化經驗風險,這種準則就是結構風險最小化(Structure Risk Minimization,SRM) 準則:
θ x = arg ? min ? R D s t r a c t ( θ ) = arg ? min ? R D e n e r ( θ ) + 1 2 λ ∥ θ ∥ 2 = arg ? min ? 1 N ∑ n = 1 N L ( y ( n ) , f ( x ( n ) ; θ ) ) + 1 2 λ ∥ θ ∥ 2 , \begin{aligned}\theta^x&=\arg\min\mathcal R_D^{stract}(\theta)\\\\ &=\arg\min\mathcal R_D^{ener}(\theta)+\frac12\lambda\|\theta\|^2\\\\ &=\arg\min\frac1N\sum_{n=1}^N\mathcal L(y^{(n)},f(x^{(n)};\theta))+\frac12\lambda\|\theta\|^2,\end{aligned} θx?=argminRDstract?(θ)=argminRDener?(θ)+21?λ∥θ∥2=argminN1?n=1∑N?L(y(n),f(x(n);θ))+21?λ∥θ∥2,?
其中 ∥ θ ∥ \|\theta\| ∥θ∥是 ? 2 {\boldsymbol{\ell}}_{2} ?2?范數的正則化項,用來減少參數空間,避免過擬合;用來控制正則化的強度.
正則化項也可以使用其他函數,比如 ? 1 {\boldsymbol{\ell}}_{1} ?1?范數。 ? 1 {\boldsymbol{\ell}}_{1} ?1?范數的入通常會使得參數有一定稀疏性,因此在很多算法中也經常使用.從貝葉斯學習的角度來講,正則化是引入了參數的先驗分布,使其不完全依賴訓練數據。
和過擬合相反的一個概念是欠擬合(Underfitting) ,即模型不能很好地擬合訓練數據,在訓練集上的錯誤率比較高.欠擬合一般是由于模型能力不足造成的.下圖給出了欠擬合和過擬合的示例.
總之,機器學習中的學習準則并不僅僅是擬合訓練集上的數據,同時也要使得泛化錯誤最低.給定一個訓練集,機器學習的目標是從假設空間中找到一個泛化錯誤較低的“理想”模型,以便更好地對未知的樣本進行預測,特別是不在訓練集中出現的樣本.
因此,我們可以將機器學習看作一個從有限、高維、有噪聲的數據上得到更一般性規律的泛化問題。
總結
以上是生活随笔為你收集整理的机器学习的三个基本因素【模型、学习准则、优化算法】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java程序员跳槽之旅,离开京东,12面
- 下一篇: 当 IT 直男约女生去看电影