相信對(duì)機(jī)器學(xué)習(xí)有一定了解的朋友對(duì)正則化(Regularization)這個(gè)概念都不會(huì)陌生??梢赃@么說(shuō),機(jī)器學(xué)習(xí)中被討論最廣泛也可以說(shuō)是最重要的一個(gè)問(wèn)題,就是防止過(guò)擬合(Overfitting)。
為什么這么說(shuō)呢?因?yàn)橥ㄟ^(guò)增加模型復(fù)雜性來(lái)在訓(xùn)練數(shù)據(jù)上達(dá)到完美的擬合實(shí)在太過(guò)容易。如果僅希望在訓(xùn)練數(shù)據(jù)上得到輸入x預(yù)期的輸出y,那么我們僅僅需要記住所有的訓(xùn)練數(shù)據(jù)(x,y)就可以了。而對(duì)于機(jī)器學(xué)習(xí),我們真正的關(guān)心的問(wèn)題,是在那些沒(méi)有見(jiàn)過(guò)的數(shù)據(jù)上,模型的表現(xiàn)如何,也就是模型的泛化能力。
至于正則化的方法,很多時(shí)候被大家簡(jiǎn)化理解為了“在目標(biāo)函數(shù)上增加關(guān)于參數(shù)的?1或?2范數(shù)”的簡(jiǎn)單表達(dá),但對(duì)于為何需要增加范數(shù)約束,以及增加以后所產(chǎn)生的效果不甚明了。
我們這里通過(guò)一個(gè)最簡(jiǎn)單的Logistic regression的例子來(lái)看看增加范數(shù)約束的必要性。對(duì)于Logistic regression問(wèn)題,通過(guò)給定的n個(gè)數(shù)據(jù){(xi,yi)}ni=1,其中yi∈{0,1},我們希望尋求到一個(gè)足夠好的w,使得σ(xi)盡可能接近yi,其中σ(x)=11+exp(?w?x)就是我們前文神經(jīng)網(wǎng)絡(luò)常用的Sigmoid函數(shù)。我們可以將Sigmoid函數(shù)的輸出解釋為某個(gè)輸出為1的概率,那么按照最大似然原則,需要求解如下優(yōu)化問(wèn)題:
假設(shè)我們求得某個(gè)w,能夠成功讓所有yi=1的正樣本σ(xi)>0.5,而負(fù)樣本輸出σ(xi)<0.5,已經(jīng)意味著我們可以通過(guò)該分類器完美對(duì)數(shù)據(jù)進(jìn)行區(qū)分。但如果仔細(xì)查看我們的最優(yōu)化問(wèn)題可以發(fā)現(xiàn),如果我們將w替換成2w,則可以進(jìn)一步降低目標(biāo)函數(shù)值,我們可以通過(guò)不斷放大w來(lái)進(jìn)一步降低目標(biāo)函數(shù)值。事實(shí)上,w與c?w所表達(dá)的是同一個(gè)分類器超平面(hyperplane),可以通過(guò)限制‖使其收斂到唯一解。
上面的例子是數(shù)學(xué)上一類Inverse problem的特例。這其中最簡(jiǎn)單的當(dāng)屬線性方程組求解的問(wèn)題。當(dāng)我們已知其生成過(guò)程y_i=w^Tx_i + \epsilon,其中\(zhòng)epsilon \sim \mathcal{N}(0, \sigma^2)為獨(dú)立同分布(i.i.d)的高斯隨機(jī)噪聲時(shí),可以證明,采用\ell_2范數(shù)進(jìn)行優(yōu)化,是在最大似然意義下的理論最優(yōu)解:
類似上述能夠給出具體數(shù)學(xué)描述的生成過(guò)程,及其Inverse problem最優(yōu)求解方法的問(wèn)題還有很多。最近哥倫比亞大學(xué)John Wright教授在字典學(xué)習(xí)問(wèn)題的突破(參見(jiàn)Complete Dictionary Recovery over the Sphere)的結(jié)果非常漂亮,堪稱是這一類Inverse problem和正則化應(yīng)用的典范。
談回深度學(xué)習(xí),我們可以看到目前應(yīng)用最廣泛的兩類正則化的方法,一類是通過(guò)給網(wǎng)絡(luò)參數(shù)w增加\|w\|_p的范數(shù)(并且往往p=2):
另一類是采用由Hinton et. al所提出的Dropout方法進(jìn)行正則化(參見(jiàn)Dropout: A Simple Way to Prevent Neural Networks from Overfitting)。并且這兩類方法經(jīng)常同時(shí)在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)被采用。
這兩種正則化方法在深度學(xué)習(xí)的應(yīng)用,與其說(shuō)是理論家的貢獻(xiàn),不如說(shuō)是實(shí)踐者的勝利。雖然通過(guò)添加范數(shù)的形式在傳統(tǒng)凸優(yōu)化中有大量可被證明正確性的應(yīng)用,并且將這個(gè)想法使用于神經(jīng)網(wǎng)絡(luò)極為自然,但對(duì)于超過(guò)一層隱藏層的神經(jīng)網(wǎng)絡(luò),范數(shù)所帶來(lái)的優(yōu)勢(shì)還很難被嚴(yán)格證明。這里我提供幾個(gè)非完全嚴(yán)格的“直觀”解釋:
Dropout是另一類目前被廣泛使用的正則化方法,其基本思路非常簡(jiǎn)單:在訓(xùn)練階段,對(duì)于每個(gè)mini-batch隨機(jī)抹去一定比例的神經(jīng)元進(jìn)行前向及后向傳播更新。這種方法子啊Hinton et. al的論文中所給出的解釋為:
This prevents units from co-adapting too much. This should make each hidden unit more robust and drive it towards creating useful features on its own without relying on other hidden units to correct its mistakes.
但由于深層神經(jīng)網(wǎng)絡(luò)的一大優(yōu)勢(shì)其實(shí)就在于對(duì)于特征的層級(jí)化表達(dá),并且深層單元可以對(duì)淺層單元進(jìn)行組合與復(fù)用。所以上述解釋雖然乍聽(tīng)之下合理,但真實(shí)的可靠性存疑。上述論文中提到了另個(gè)解釋,可能更為合理:通過(guò)控制每個(gè)單元的開(kāi)關(guān),我們潛在使用了2^N個(gè)不同的網(wǎng)絡(luò)(N為采用Dropout的神經(jīng)元數(shù)量),這樣的模型相當(dāng)于將2^N個(gè)不同的共享變量的網(wǎng)絡(luò)在預(yù)測(cè)時(shí)進(jìn)行幾何平均,從而達(dá)到平滑的效果。
對(duì)于一類更特定的模型,Dropout有在理論上有進(jìn)一步的論證。如果我們限制所研究的為廣義線性模型(Generalized linear models),并且Dropout只在輸入x變量上進(jìn)行,那么通過(guò)對(duì)廣義線性模型通過(guò)泰勒展開(kāi)進(jìn)行二次近似,可以得到
其中I(w)為參數(shù)w的Fisher information矩陣:
那么,對(duì)于輸入x進(jìn)行Dropout,實(shí)際上就相當(dāng)于首先將輸入x采用\text{diag}(I(w))^{-1/2}進(jìn)行歸一化得到\bar w,然后采用傳統(tǒng)范數(shù)\|\bar w\|_2對(duì)參數(shù)進(jìn)行正則化,從而建立起了采用Dropout與范數(shù)進(jìn)行正則化的聯(lián)系。具體的推導(dǎo)可以參見(jiàn):Dropout Training as Adaptive Regularization。
在下一次的分享中,我們給大家談?wù)劸矸e網(wǎng)絡(luò)(Convolutional network)的使用,歡迎關(guān)注。
聯(lián)系客服