正則化由淺入深的進(jìn)階之路(粉絲投稿)
本文之前我假設(shè)你已經(jīng)學(xué)習(xí)了關(guān)于線性回歸、logistic回歸和梯度下降的相關(guān)內(nèi)容。
正則化(Regularization)方法是為解決過(guò)擬合(overfitting)問(wèn)題,而向原始模型引入額外信息,以便防止過(guò)擬合和提高模型泛化性能的一類方法的統(tǒng)稱。本文將從過(guò)擬合問(wèn)題引入,并通過(guò)在線性回歸和logistic回歸中進(jìn)行正則化幫助理解思想。最后通過(guò)解讀應(yīng)用正則化思想的相關(guān)文獻(xiàn)來(lái)貫通正則化的應(yīng)用,此部分為選讀內(nèi)容。主要內(nèi)容來(lái)自Andrew Ng的Coursera機(jī)器學(xué)習(xí)課程,符號(hào)記法也采用Andrew Ng的記法。
01?過(guò)擬合(overfitting)問(wèn)題
以新型冠狀肺炎發(fā)病人數(shù)y隨時(shí)間x變化為例(Fig.1)。

Figure1.新型冠狀肺炎患病人數(shù)的線性回歸模型
圖中選取了幾個(gè)不同時(shí)間下的發(fā)病人數(shù)的樣本點(diǎn),時(shí)間軸開(kāi)始時(shí)發(fā)病人數(shù)少,隨著時(shí)間軸推進(jìn),發(fā)病人數(shù)極速增長(zhǎng)在2月中下旬達(dá)到峰值,隨后增長(zhǎng)速率放緩。
(a)模型擬合了一階線性函數(shù),可以明顯看出該模型沒(méi)有很好地?cái)M合訓(xùn)練數(shù)據(jù),具有高偏差,我們稱該問(wèn)題為欠擬合(underfitting)。即該算法不顧數(shù)據(jù)的不符合,有很強(qiáng)的偏見(jiàn)地認(rèn)為時(shí)間與患病人數(shù)時(shí)線性相關(guān)的,最終導(dǎo)致數(shù)據(jù)擬合效果很差。
(b)模型擬合了二階多項(xiàng)式函數(shù),效果不錯(cuò)。
(c)模型擬合了一個(gè)四階多項(xiàng)式函數(shù),該曲線繪制后全部通過(guò)每個(gè)數(shù)據(jù)點(diǎn),看似很好的擬合訓(xùn)練數(shù)據(jù) [注1],但曲線扭曲上下波動(dòng)明顯,具有高方差,所以這并不是一個(gè)很好的預(yù)測(cè)模型,我們稱該問(wèn)題為過(guò)擬合(overfitting)。即直觀上來(lái)看,過(guò)擬合的算法雖然能集合幾乎所有數(shù)據(jù),但是擬合的假設(shè)函數(shù)(hypothesis)會(huì)太過(guò)龐大、變量太多。雖然該例子只有五項(xiàng)參數(shù)不夠明顯,但倘若我們每一個(gè)小時(shí)更新患病人數(shù),為完全擬合數(shù)據(jù),函數(shù)會(huì)有極多項(xiàng),同時(shí)這也導(dǎo)致對(duì)該假設(shè)函數(shù)我們沒(méi)有足夠的數(shù)據(jù)進(jìn)行訓(xùn)練,因?yàn)閿?shù)據(jù)全用來(lái)擬合函數(shù)。
總結(jié)過(guò)擬合問(wèn)題:擁有太多變量的訓(xùn)練好的假設(shè)模型會(huì)近乎完美地?cái)M合訓(xùn)練集,但會(huì)難以泛化(generalize)[注2]新的樣本。
[注1]:擬合得好是說(shuō)該模型的代價(jià)函數(shù)(cost function)約為零,在線性回歸模型中即為T(mén)ex parse error
[注2]:’泛化‘術(shù)語(yǔ)是指:一個(gè)假設(shè)模型(hypothesis)應(yīng)用到新樣本的能力。其中,在本例中新的樣本是說(shuō)沒(méi)有出現(xiàn)在訓(xùn)練集的不同時(shí)間的患病人數(shù)。
事實(shí)上,新冠肺炎的發(fā)病人數(shù)變化并不僅僅與時(shí)間有關(guān),更與在漢醫(yī)護(hù)人員數(shù)量、口罩?jǐn)?shù)量、消毒劑酒精的每日使用量、人員流動(dòng)性程度等諸多變量有關(guān),這也符合我們?cè)趯?shí)際中機(jī)器學(xué)習(xí)模型會(huì)擁有諸多特征變量(features),而不僅僅是單一變量。
但擁有太多變量,顯而易見(jiàn)繪圖會(huì)變得更加困難,因此通過(guò)數(shù)據(jù)的可視化來(lái)決定保留哪些特征變量會(huì)更為困難。正如我們之前所講的,多特征變量、數(shù)據(jù)量不足會(huì)導(dǎo)致過(guò)擬合問(wèn)題,為解決過(guò)擬合問(wèn)題,我們有如下的幾個(gè)思路:
1.減少特征變量(features)的數(shù)量
人工檢查變量清單
模型選擇算法(model selection algorithm)
該思路可以有效的減少過(guò)擬合現(xiàn)象的發(fā)生,但其缺點(diǎn)是舍棄了一部分變量,即舍棄了一部分關(guān)于問(wèn)題的信息,如我們新冠肺炎的發(fā)病人數(shù)例子中,舍棄了口罩?jǐn)?shù)量、消毒劑酒精的每日使用量、人員流動(dòng)性程度等諸多變量,但所有的變量或多或少都對(duì)預(yù)測(cè)有用,實(shí)際上我們并不想丟失這些信息。
2.正則化(Regularization)方法
保留所有變量,但減少量級(jí)(magnitude)或參數(shù)(parameters)Θj的大小。
該思路相較于第一種方法,保留了所有對(duì)結(jié)果y有用的信息,對(duì)過(guò)擬合問(wèn)題效果良好。
02?正則化(Regularization)
2.1?引入正則化思想
前面我們已經(jīng)得到了解決過(guò)擬合問(wèn)題采用減少量級(jí)或減少參數(shù)大小的正則化方法最為有效。那我們接下來(lái)繼續(xù)討論,正則化是怎么做到減少參數(shù)值的大小的呢?

我們?cè)俅位氐阶畛蹶P(guān)于新冠狀肺炎的例子中,F(xiàn)ig 2.(b)模型的 二階函數(shù) [注2]與Fig 2.(c)模型的四階函數(shù)[注3]相比,顯然只要四階函數(shù)的參數(shù)(parameters)Θ3、Θ4都非常小,兩者函數(shù)就會(huì)相似。為了達(dá)到這個(gè)目的,我們懲罰(penalize)參數(shù)Θ3、Θ4使其變小,我們來(lái)看下該過(guò)程在線性規(guī)劃中是如何實(shí)現(xiàn)的。

線性回歸中,我們的優(yōu)化目標(biāo)是要最小化其均方誤差代價(jià)函數(shù)(square error cost function)。在不進(jìn)行懲罰時(shí),優(yōu)化目標(biāo)的函數(shù)描述為:


其中,10000是我們隨便選取的較大的數(shù)方便直觀理解。此時(shí),因?yàn)閰?shù)Θ3、Θ4都與10000相乘,為了最小化整體的函數(shù),我們就需要使參數(shù)Θ3、Θ4盡量接近于0。而如果、都很小的話,我們的四階函數(shù)假設(shè)模型就大致相當(dāng)于二階函數(shù)模型了,這就是我們正則化懲罰的思想。
但我們?cè)趯?shí)際中,比如新冠肺炎發(fā)病人數(shù)的例子,口罩?jǐn)?shù)量、消毒劑酒精的每日使用量、人員流動(dòng)性程度等諸多特征變量(features)都與預(yù)測(cè)結(jié)果有關(guān),而每個(gè)特征變量在我們總體的衡量得失中所占有的比重我們并不能一開(kāi)始就準(zhǔn)確地知道,那我們要如何跟上述例子一樣選擇具體確切的變量Θ3、Θ4進(jìn)行懲罰(penalize)呢?
因此實(shí)際問(wèn)題上對(duì)每個(gè)變量權(quán)重并不準(zhǔn)確了解,對(duì)此我們就采用將所有變量均縮小的辦法。
回到上述例子中,我們就是要將所有參數(shù)(parameters)Θi均縮小,通過(guò)將代價(jià)函數(shù)(cost function)后加一個(gè)額外的正則化項(xiàng)實(shí)現(xiàn),該項(xiàng)的作用是縮小每一個(gè)參數(shù)Θi的值,修改后如下:

其中,正則化項(xiàng)中的λ為正則化參數(shù)[注4],其作用是控制兩個(gè)不同目標(biāo)[注5]之間的取舍來(lái)避免出現(xiàn)過(guò)擬合的情況。

[注5]:兩個(gè)不同的目標(biāo),第一個(gè)目標(biāo)是指前面項(xiàng)的累加,是為更好地?cái)M合數(shù)據(jù)和訓(xùn)練集;第二個(gè)目標(biāo)是指我們要盡可能地是參數(shù)值小,這與目標(biāo)函數(shù)的第二項(xiàng)即正則化項(xiàng)有關(guān) 。
在新冠肺炎的例子中,如果我們采用上述正則化后的代價(jià)函數(shù)J(Θ),那我們擬合的曲線雖然不會(huì)如二階函數(shù)般契合,但是一定比四階函數(shù)模型曲線更加平滑更加簡(jiǎn)單。
2.2?從線性回歸說(shuō)起正則化
通過(guò)前一小節(jié)的引入,我們已經(jīng)介紹了正則化后的線性回歸模型的代價(jià)函數(shù)和優(yōu)化目標(biāo)分別為:

接下來(lái)我們將分別介紹兩種求解線性回歸模型算法(梯度下降算法和正規(guī)方程法)的正則化形式。
在不加入正則化的時(shí)候,我們使用了梯度下降(gradient descent)進(jìn)行常規(guī)的線性回歸,算法如下:

我們可以注意到算法中標(biāo)紅出處,我們是將j=0的情況單獨(dú)拿了出來(lái)進(jìn)行迭代更新(update),為什么要這么做呢?
不知道大家有沒(méi)有注意,我們前面正則化對(duì)參數(shù)進(jìn)行的懲罰對(duì)象是從參數(shù)Θ1開(kāi)始的,并不包含參數(shù)Θ0?。。∥覀儚膮?shù)Θ1開(kāi)始加入正則化項(xiàng)后,算法修改如下:

我們假設(shè)了大家已經(jīng)閱讀了本系列文章關(guān)于梯度下降的內(nèi)容,我這里就不具體用微積分展開(kāi)證明:算法中方括號(hào)部分就是J(Θ)對(duì)Θj的偏導(dǎo)數(shù),要注意J(Θ)是我們正則化后的包含正則化項(xiàng)的函數(shù)。
梯度下降算法中對(duì)于變量Θ從1到n的更新(update),去掉中括號(hào)后更新式變?yōu)槿缦拢?/p>

該變式的第二項(xiàng),實(shí)際上與我們未進(jìn)行正則化的梯度下降更新項(xiàng)是一樣。
我們來(lái)看下線性回歸模型求解的第二種算法:正規(guī)方程法(normal equation)的正則化形式。
該方法原有形式為:

即經(jīng)過(guò)最小化代價(jià)函數(shù),我們可以得到:

如果我們使用正則化,那該式需要增加一個(gè)矩陣,修改后如下:

該式中的矩陣為n+1·n+1階的矩陣,n表示特征變量的數(shù)量。進(jìn)行正則化后還有一個(gè)好處是,即使樣本總量小于特征變量數(shù),也不需要擔(dān)心該修改后的式子是不可逆(non-invertible)[注6]的。
[注6]:不可逆問(wèn)題是線性代數(shù)關(guān)于逆矩陣方面的基本問(wèn)題,請(qǐng)自行參考線代知識(shí)。這里需要提及的一點(diǎn)是:即使是未進(jìn)行正則化的式子存在不可逆的可能,但我們?cè)谑褂胢atlab進(jìn)行計(jì)算時(shí),采用的pinv函數(shù)會(huì)直接求偽逆。
2.3?從logistic回歸續(xù)談?wù)齽t化
logistic回歸章的講解在大家已經(jīng)閱讀完線性回歸內(nèi)容后,很多內(nèi)容會(huì)不再進(jìn)行贅述,主要通過(guò)代碼實(shí)現(xiàn)讓大家理解更深刻。
回歸的代價(jià)函數(shù)為解決過(guò)擬合現(xiàn)象,在添加正則化項(xiàng)以達(dá)到懲罰參數(shù)的目的后,代價(jià)函數(shù)變?yōu)槿缦滦问剑?/p>

與線性回歸的正則化類似,該正則化項(xiàng)的作用是減小參數(shù)。
logistic回歸的梯度下降算法形式上與線性回歸相似,其區(qū)別在于假設(shè)模型(hypothesis) 是不一樣的,logistics回歸的假設(shè)模型為:

但梯度下降算法的形式與線性回歸一致:

我們?cè)诒菊赂鼮殛P(guān)注如何實(shí)現(xiàn)正則化后的logistic回歸模型,并且我們會(huì)通過(guò)學(xué)習(xí)率的取值分別展現(xiàn)出過(guò)擬合(overfitting)、欠擬合(underfitting)和正則化(regularize)后的情況。
首先,我們建立一個(gè)命名為costFunction的函數(shù),該函數(shù)需要返回兩個(gè)值,第一個(gè)值是計(jì)算代價(jià)函數(shù)的J(Θ)值,第二個(gè)需要返回值是梯度(gradient),即分別對(duì)于每個(gè)i值的梯度我們進(jìn)行求導(dǎo):

我們建立的costfunction函數(shù)返回的兩個(gè)值需要返回到我們的主函數(shù)中,主函數(shù)要做的主要功能是將costfunction最小化。
另外為了清晰地繪制簡(jiǎn)單明了的圖像方便大家理解,編寫(xiě)了函數(shù)mapfeature來(lái)將數(shù)據(jù)繪制在圖中;函數(shù)plotDecisonBoundary繪制決策邊界(DecisonBoundary);函數(shù)sigmoid表示假設(shè)模型(hypothesis);這些簡(jiǎn)易函數(shù)與本章無(wú)關(guān)就不盡興一一贅述,具體可參考Github中吳恩達(dá)的作業(yè)。
我們可以得到在學(xué)習(xí)率λ為1的情況下我們正則化后的決策邊界較為理想,如Fig.3所示。

那如果我們的學(xué)習(xí)率λ為0和100情況分別會(huì)怎么樣呢?

我們可以看到Fig .4的處理相當(dāng)于沒(méi)有正則化處理的logistic回歸模型,即具有過(guò)擬合問(wèn)題。近乎很好的擬合所有數(shù)據(jù),但帶來(lái)的問(wèn)題是邊界曲線顯然扭曲,上下波動(dòng)明顯,具有高方差。

Fig .5的處理情況,就是我們的欠擬合現(xiàn)象,即具有高偏差,與數(shù)據(jù)集是顯然不符合的。
03?正則化的應(yīng)用之路
我們以一篇文獻(xiàn)EEG-Based Emotion Recognition Using Regularized Graph Neural Networks(基于正則化圖神經(jīng)網(wǎng)絡(luò)的腦電情緒識(shí)別)來(lái)應(yīng)用正則化的思想。
我們只關(guān)注其中的正則化內(nèi)容,略掉其余的不同領(lǐng)域的背景相關(guān)知識(shí),包括關(guān)于作者利用腦電圖信號(hào)的拓?fù)浣Y(jié)構(gòu)建立稀疏鄰接矩陣,以及簡(jiǎn)單圖卷積網(wǎng)絡(luò)(graph convolution network)和對(duì)無(wú)向連接圖采用切比雪夫多項(xiàng)式(Chebyshev polynomials)來(lái)代替卷積核的圖傅里葉變換進(jìn)行濾波 。
對(duì)相關(guān)知識(shí)感興趣可以參考文獻(xiàn)和一篇該方向研究生的論文解讀,本部分主要基于兩者。
參考文獻(xiàn):
https://arxiv.org/pdf/1907.07835.pdf
研究生的論文解讀:
https://mp.weixin.qq.com/s/R0B3gE1X69D1HYOcmZgtPA


RGNN整體框架
FC表示全鏈接的圖層(fully-connected layer),CE表示交叉熵?fù)p失(cross-entropy loss),GRL是節(jié)點(diǎn)域?qū)褂?xùn)練中采用的梯度反轉(zhuǎn)層(GRL)具體后述會(huì)展開(kāi),KL表示Kullback-Leibler散度是我們情感分布學(xué)習(xí)中的模型函數(shù)。
該整體框架表述的思想簡(jiǎn)而言之,就是對(duì)訓(xùn)練數(shù)據(jù)集(Training Samples)一方面采用分布學(xué)習(xí)計(jì)算損失函數(shù),另一方面,訓(xùn)練數(shù)據(jù)集和訓(xùn)練測(cè)試集(Texting Samples)共同經(jīng)過(guò)領(lǐng)域分類器即NodeDAT采用梯度反轉(zhuǎn)層(GRL)計(jì)算可得其主損失函數(shù)和相關(guān)的分類標(biāo)簽。
其偽代碼如下:

上面的偽代碼有沒(méi)有熟悉的感覺(jué)?對(duì)于變量的更新(update)與我們線性回歸模型的梯度下降算法是不是很相似!梯度下降算法中的方括號(hào)部分內(nèi)容正是對(duì)代價(jià)函數(shù)的求導(dǎo),我們下面附上梯度下降算法在線性回歸中的形式以供對(duì)比參考:

我們可以看到還是RGNN的實(shí)現(xiàn)只不過(guò)在一般梯度下降算法中采用了結(jié)合兩個(gè)代價(jià)函數(shù)的方法,即對(duì)13、14步中對(duì)W和A的更新是混合節(jié)點(diǎn)域?qū)褂?xùn)練(NodeDAT)和基于情緒感知的分布學(xué)習(xí)(EmotionDL)的損失函數(shù)的梯度,β表示節(jié)點(diǎn)域?qū)褂?xùn)練中域分離器所使用梯度反轉(zhuǎn)層(GRL)[注7]的比例因子。
[注 7]:梯度反轉(zhuǎn)層是指在反向傳播期間反轉(zhuǎn)域分類器的梯度。
節(jié)點(diǎn)域?qū)褂?xùn)練就是一個(gè)域分類器。
下面我們分別介紹節(jié)點(diǎn)域?qū)褂?xùn)練(NodeDAT)和基于情緒感知的分布學(xué)習(xí)(EmotionDL)。對(duì)于域分類器我們只寫(xiě)出其損失函數(shù),不具體展開(kāi)推導(dǎo)以及詳細(xì)優(yōu)勢(shì)和實(shí)現(xiàn)過(guò)程,選擇展開(kāi)講解情緒感知的分布學(xué)習(xí)。
領(lǐng)域分類器的目標(biāo)是最小化以下兩個(gè)二進(jìn)制交叉熵?fù)p失的總和:

在SEED與SEED-IV腦電圖數(shù)據(jù)集上,分別可以劃分為三類和四類情緒。SEED有積極、中性和消極三類情緒,并有相應(yīng)的類指標(biāo)分別是 0 1 2,將每個(gè)訓(xùn)練樣本標(biāo)簽


注8:?KL散度(Kullback-Leibler Divergence)是一個(gè)用來(lái)衡量?jī)蓚€(gè)概率分布的相似性的一個(gè)度量指標(biāo)。
一般來(lái)說(shuō),我們無(wú)法獲取數(shù)據(jù)的總體,我們只能拿到數(shù)據(jù)的部分樣本,根據(jù)數(shù)據(jù)的部分樣本,我們會(huì)對(duì)數(shù)據(jù)的整體做一個(gè)近似的估計(jì),而數(shù)據(jù)整體本身有一個(gè)真實(shí)的分布(我們可能永遠(yuǎn)無(wú)法知道),那么近似估計(jì)的概率分布和數(shù)據(jù)整體真實(shí)的概率分布的相似度,或者說(shuō)差異程度,可以用 KL 散度來(lái)表示。
具體可以參考關(guān)于KL散度的CSDN博客:
https://links.jianshu.com/go?to=https%3A%2F%2Fblog.csdn.net%2Fmatrix_space%2Farticle%2Fdetails%2F80550561
已獲作者或躍在淵_NUE授權(quán)
原文鏈接:https://www.jianshu.com/p/f275072a6927
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。