文章內(nèi)容來(lái)源:CSDN
需要正則化的原因:
監(jiān)督機(jī)器學(xué)習(xí)問(wèn)題無(wú)非就是“minimize your error while regularizing your parameters”,也就是在規(guī)則化參數(shù)的同時(shí)最小化誤差。最小化誤差是為了讓我們的模型擬合我們的訓(xùn)練數(shù)據(jù),而規(guī)則化參數(shù)是防止我們的模型過(guò)分?jǐn)M合我們的訓(xùn)練數(shù)據(jù)。參數(shù)太多,會(huì)導(dǎo)致我們的模型復(fù)雜度上升,容易過(guò)擬合,也就是我們的訓(xùn)練誤差會(huì)很小。但訓(xùn)練誤差小并不是我們的最終目標(biāo),我們的目標(biāo)是希望模型的測(cè)試誤差小,也就是能準(zhǔn)確的預(yù)測(cè)新的樣本。所以,我們需要保證模型“簡(jiǎn)單”的基礎(chǔ)上最小化訓(xùn)練誤差,這樣得到的參數(shù)才具有好的泛化性能(也就是測(cè)試誤差也?。?,而模型“簡(jiǎn)單”就是通過(guò)規(guī)則函數(shù)來(lái)實(shí)現(xiàn)的。
同時(shí), 規(guī)則化也符合奧卡姆剃刀(Occam's razor)原理。這名字好霸氣,razor!不過(guò)它的思想很平易近人:在所有可能選擇的模型中,我們應(yīng)該選擇能夠很好地解釋已知數(shù)據(jù)并且十分簡(jiǎn)單的模型

一般來(lái)說(shuō),監(jiān)督學(xué)習(xí)可以看做最小化上面的目標(biāo)函數(shù).??其中,第一項(xiàng)L(yi,f(xi;w)) 衡量我們的模型(分類(lèi)或者回歸)對(duì)第i個(gè)樣本的預(yù)測(cè)值f(xi;w)和真實(shí)的標(biāo)簽yi之前的誤差。因?yàn)槲覀兊哪P褪且獢M合我們的訓(xùn)練樣本的嘛,所以我們要求這一項(xiàng)最小,也就是要求我們的模型盡量的擬合我們的訓(xùn)練數(shù)據(jù)。但正如上面說(shuō)言,我們不僅要保證訓(xùn)練誤差最小,我們更希望我們的模型測(cè)試誤差小,所以我們需要加上第二項(xiàng),也就是對(duì)參數(shù)w的規(guī)則化函數(shù)Ω(w)去約束我們的模型盡量的簡(jiǎn)單.
機(jī)器學(xué)習(xí)的大部分帶參模型都和上面的這個(gè)公式不但形似,而且神似。是的,其實(shí)大部分無(wú)非就是變換這兩項(xiàng)而已。對(duì)于第一項(xiàng)Loss函數(shù),如果是Square loss,那就是最小二乘了;如果是Hinge Loss,那就是著名的SVM了;如果是exp-Loss,那就是牛逼的 Boosting了;如果是log-Loss,那就是Logistic Regression了;還有等等。不同的loss函數(shù),具有不同的擬合特性,這個(gè)也得就具體問(wèn)題具體分析的
規(guī)則化函數(shù)Ω(w)也有很多種選擇,一般是模型復(fù)雜度的單調(diào)遞增函數(shù),模型越復(fù)雜,規(guī)則化值就越大。比如,規(guī)則化項(xiàng)可以是模型參數(shù)向量的范數(shù)。然而,不同的選擇對(duì)參數(shù)w的約束不同,取得的效果也不同,但我們?cè)谡撐闹谐R?jiàn)的都聚集在:零范數(shù)、一范數(shù)、二范數(shù)、跡范數(shù)、Frobenius范數(shù)和核范數(shù)等等。
L0范數(shù)與L1范數(shù):
L0范數(shù)是指向量中非0的元素的個(gè)數(shù)。如果我們用L0范數(shù)來(lái)規(guī)則化一個(gè)參數(shù)矩陣W的話,就是希望W的大部分元素都是0。這太直觀了,太露骨了吧,換句話說(shuō),讓參數(shù)W是稀疏的。?L1范數(shù)是指向量中各個(gè)元素絕對(duì)值之和,也有個(gè)美稱(chēng)叫“稀疏規(guī)則算子”(Lasso regularization)
為什么不用L0,而要用L1呢?
個(gè)人理解一是因?yàn)長(zhǎng)0范數(shù)很難優(yōu)化求解(NP難問(wèn)題),二是L1范數(shù)是L0范數(shù)的最優(yōu)凸近似,而且它比L0范數(shù)要容易優(yōu)化求解
一句話總結(jié):
L1范數(shù)和L0范數(shù)可以實(shí)現(xiàn)稀疏,L1因具有比L0更好的優(yōu)化求解特性而被廣泛應(yīng)用
參數(shù)稀疏的好處:
1. 特征選擇:?一個(gè)關(guān)鍵原因在于它能實(shí)現(xiàn)特征的自動(dòng)選擇。一般來(lái)說(shuō),xi的大部分元素(也就是特征)都是和最終的輸出yi沒(méi)有關(guān)系或者不提供任何信息的,在最小化目標(biāo)函數(shù)的時(shí)候考慮xi這些額外的特征,雖然可以獲得更小的訓(xùn)練誤差,但在預(yù)測(cè)新的樣本時(shí),這些沒(méi)用的信息反而會(huì)被考慮,從而干擾了對(duì)正確yi的預(yù)測(cè)。稀疏規(guī)則化算子的引入就是為了完成特征自動(dòng)選擇的光榮使命,它會(huì)學(xué)習(xí)地去掉這些沒(méi)有信息的特征,也就是把這些特征對(duì)應(yīng)的權(quán)重置為0
2. 可解釋性:另一個(gè)青睞于稀疏的理由是,模型更容易解釋。例如患某種病的概率是y,然后我們收集到的數(shù)據(jù)x是1000維的,也就是我們需要尋找這1000種因素到底是怎么影響患上這種病的概率的。假設(shè)我們這個(gè)是個(gè)回歸模型:y=w1*x1+w2*x2+…+w1000*x1000+b(當(dāng)然了,為了讓y限定在[0,1]的范圍,一般還得加個(gè)Logistic函數(shù))。通過(guò)學(xué)習(xí),如果最后學(xué)習(xí)到的w*就只有很少的非零元素,例如只有5個(gè)非零的wi,那么我們就有理由相信,這些對(duì)應(yīng)的特征在患病分析上面提供的信息是巨大的,決策性的。也就是說(shuō),患不患這種病只和這5個(gè)因素有關(guān),那醫(yī)生就好分析多了。但如果1000個(gè)wi都非0,醫(yī)生面對(duì)這1000種因素,累覺(jué)不愛(ài)。
L2范數(shù):
?除了L1范數(shù),還有一種更受寵幸的規(guī)則化范數(shù)是L2范數(shù): ||W||2。在回歸里面,有人把它的回歸叫“嶺回歸”(Ridge Regression),有人也叫它“權(quán)值衰減weight decay”。這用的很多吧,因?yàn)樗膹?qiáng)大功效是改善機(jī)器學(xué)習(xí)里面一個(gè)非常重要的問(wèn)題:過(guò)擬合。至于過(guò)擬合是什么,上面也解釋了,就是模型訓(xùn)練時(shí)候的誤差很小,但在測(cè)試的時(shí)候誤差很大,也就是我們的模型復(fù)雜到可以擬合到我們的所有訓(xùn)練樣本了,但在實(shí)際預(yù)測(cè)新的樣本的時(shí)候,糟糕的一塌糊涂。
L2范數(shù)是指向量各元素的平方和然后求平方根。我們讓L2范數(shù)的規(guī)則項(xiàng)||W||2最小,可以使得W的每個(gè)元素都很小,都接近于0,但與L1范數(shù)不同,它不會(huì)讓它等于0,而是接近于0,這里是有很大的區(qū)別的哦。而越小的參數(shù)說(shuō)明模型越簡(jiǎn)單,越簡(jiǎn)單的模型則越不容易產(chǎn)生過(guò)擬合現(xiàn)象。為什么越小的參數(shù)說(shuō)明模型越簡(jiǎn)單?我也不懂,我的理解是:限制了參數(shù)很小,實(shí)際上就限制了多項(xiàng)式某些分量的影響很?。瓷厦婢€性回歸的模型的那個(gè)擬合的圖),這樣就相當(dāng)于減少參數(shù)個(gè)數(shù)。
L1和L2的區(qū)別:
一句話總結(jié)就是:L1會(huì)趨向于產(chǎn)生少量的特征,而其他的特征都是0,而L2會(huì)選擇更多的特征,這些特征都會(huì)接近于0。Lasso在特征選擇時(shí)候非常有用,而Ridge就只是一種規(guī)則化而已