1. 程式人生 > >機器學習演算法之正則化

機器學習演算法之正則化

>By joey周琦

正則化

假設目標函式為 J , 比如 J 可以是對數似然函式的負數形式,特徵 i 的係數為 wi , 係數向量 w=[w1,...,wK] ,假設一共有 K 個備選類。 機器學習(分類為例)的目標就是要解決一個優化問題

w=argminwL(w)

而為了避免模型的過擬合(overfitting), 所以需要在這裡進行正則化(regularization)[2]。正則化的主要思想就是控制係數

|w| 的大小,從而控制模型的複雜度,減小過擬合,提高泛化能力,常見的正則化選擇有一階和二階,如下
二階(L2):

w=argminwL(w)+α/2k=1Kw2k

一階(L1):

w=argminwL(w)+αk=1K|wk|

那麼在迭代優化時:
L2的更新公式為:

wt+1k=wtkλLwkλαwk

L1的更新公式為:

wt+1k=wtkλLwkλαsgn(wk)

L1 正則化在0處不可導,但是可以採用“次梯度”替代。在batch(批量資料)模式下,L1更容易產生稀疏的解,即很多不重要的特徵的係數會比較接近0,所以在從而可以達到特徵選擇的作用。在梯度下降優化中一般偏導數的公式是一個包含所有樣本的加和形式如下

Lwk=n=1NQn

可以看出梯度下降法的一次迭代即要用到所有的訓練資料,這樣的迭代速度過慢。為了提高更新速度,隨機梯度下降法將上述的全量加和梯度,近似為了單樣本的梯度如下:

LwkQn

對於凸優化問題,相對於梯度下降法,在學習率適當的收斂和一些溫和的假設下,隨機梯度下降法更快速接近全域性最優解[3]。
線上(online)模式,即以增量的形式更新,資料一條一條過來的時候,梯度下降法的batch模式無法應用 ,而應該使用隨機梯度下降法。對於隨機梯度下降法,L1正則化也得不到比較稀疏的解。所以線上模式中想要產生稀疏特徵,則要利用下面講的一些線上優化的方法。

線上優化

簡單截斷法

k 為視窗,當 t/k 不為整數時,進行標準的SGD迭代 wt+1k=wtkλLwk (不包含L1 or L2),當 t/k 為整數時

wt+1k=T0(wtkλLwk)
其中
T0(vi)={0,vi,|vi|θotherwise
其中 θ 是控制截斷的閾值。

截斷梯度法(Truncated Gradient, TG)

為了避免上述too aggressive的截斷方法,TG採用了一種比較溫和的截斷方法
k 為視窗,當 t/k 不為整數時,進行標準的SGD迭代 wt+1k=wtkλLwk ,當 t/k 為整數時

wt+1k=T1(wtkλLwk)
其中
T1(vi)=max(0,viα),min(0,vi+α),vi,|vi|[0,θ]|vi|[θ,0]otherwise

可以看出TG方法又增加了一個引數 α 來溫和截斷,原論文中有一個圖可以形象的對比兩種截斷方法。這裡寫圖片描述

參考
1 線上最優化求解,馮揚
2 wiki, Regularization (mathematics)
3 Stochastic gradient descent - Wikipedia