馮蓉珍 翟高粵
摘 要:在深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的各種模型訓(xùn)練過(guò)程中,在訓(xùn)練數(shù)據(jù)不夠多時(shí),自己常常會(huì)遇到的問(wèn)題就是過(guò)擬合(overfitting),過(guò)擬合就是模型過(guò)度接近訓(xùn)練的數(shù)據(jù),使得模型的泛化能力降低,泛化能力降低表現(xiàn)為模型在訓(xùn)練集上測(cè)試的誤差很低,但是真正在驗(yàn)證集上測(cè)試時(shí)卻發(fā)現(xiàn)誤差很大。過(guò)擬合的模型不是我們想要的模型,本文先簡(jiǎn)單介紹過(guò)擬合的概念和產(chǎn)生的原因,并提出幾種對(duì)模型進(jìn)行優(yōu)化的方法,從而提高其泛化性能,使其在測(cè)試時(shí)模型表現(xiàn)更好。
關(guān)鍵詞:機(jī)器學(xué)習(xí);過(guò)擬合;正則化;Dropout;數(shù)據(jù)增強(qiáng)
機(jī)器學(xué)習(xí)的主要目的是從訓(xùn)練集上學(xué)習(xí)到數(shù)據(jù)的真實(shí)模型,從而能夠在未見(jiàn)過(guò)的測(cè)試集上也能夠表現(xiàn)良好,機(jī)器學(xué)習(xí)的這種能力叫做泛化能力。通常來(lái)說(shuō),訓(xùn)練集和測(cè)試集都采樣自某個(gè)相同的數(shù)據(jù)分布p(x)。采樣到的樣本是相互獨(dú)立的,但是又來(lái)自于相同的分布,這種假設(shè)叫做獨(dú)立同分布假設(shè)(Independent Identical Distribution assumption,簡(jiǎn)稱i.i.d.)。
模型的表達(dá)能力,也稱之為模型的容量(Capacity)。當(dāng)模型的表達(dá)能力偏弱時(shí),比如單一線性層,它只能學(xué)習(xí)到線性模型,無(wú)法良好地逼近非線性模型(欠擬合);但模型的表達(dá)能力過(guò)強(qiáng)時(shí),它就有可能把訓(xùn)練集的噪聲模態(tài)也學(xué)到(過(guò)擬合),導(dǎo)致在測(cè)試集上面表現(xiàn)不佳的現(xiàn)象(泛化能力偏弱)。因此針對(duì)不同的網(wǎng)絡(luò)模型和任務(wù),設(shè)計(jì)合適容量的模型算法才能取得較好的泛化性能。
一、過(guò)擬合和欠擬合
(一)模型的容量
模型的容量或表達(dá)能力,是指模型擬合復(fù)雜函數(shù)的能力。一種體現(xiàn)模型容量的指標(biāo)為模型的假設(shè)空間(Hypothesis Space)大小,即模型可以表示的函數(shù)集的大小。假設(shè)空間越大越完備,從假設(shè)空間中搜索出逼近真實(shí)模型的函數(shù)也就越有可能;反之,如果假設(shè)空間非常受限,就很難從中找到逼近真實(shí)模型的函數(shù)。
但是過(guò)大的假設(shè)空間無(wú)疑會(huì)增加搜索難度和計(jì)算代價(jià)。實(shí)際上,在有限的計(jì)算資源的約束下,較大的假設(shè)空間并不一定能搜索出更好的函數(shù)模型。同時(shí)由于觀測(cè)誤差的存在,較大的假設(shè)空間中可能包含了大量表達(dá)能力過(guò)強(qiáng)的函數(shù),能夠?qū)⒂?xùn)練樣本的觀測(cè)誤差也學(xué)習(xí)進(jìn)來(lái),從而傷害了模型的泛化能力。因此挑選合適容量的學(xué)習(xí)模型是一個(gè)很大的難題。
(二)過(guò)擬合和欠擬合
由于真實(shí)數(shù)據(jù)的分布往往是未知而且復(fù)雜的,無(wú)法推斷出其分布函數(shù)的類型和相關(guān)參數(shù),因此人們?cè)谶x擇學(xué)習(xí)模型的容量時(shí),往往會(huì)根據(jù)經(jīng)驗(yàn)值選擇稍大的模型容量。但模型的容量過(guò)大時(shí),有可能出現(xiàn)在訓(xùn)練集上表現(xiàn)較好,但是測(cè)試集上表現(xiàn)較差的現(xiàn)象,如圖1紅色豎線右邊區(qū)域所示;當(dāng)模型容量過(guò)小時(shí),有可能出現(xiàn)在訓(xùn)練集和測(cè)試集表現(xiàn)皆不佳的現(xiàn)象,如圖1紅色豎線左邊區(qū)域所示。
當(dāng)模型的容量過(guò)大時(shí),網(wǎng)絡(luò)模型除了學(xué)習(xí)到訓(xùn)練集數(shù)據(jù)的模態(tài)之外,還把額外的觀測(cè)誤差也學(xué)習(xí)進(jìn)來(lái),導(dǎo)致學(xué)習(xí)的模型在訓(xùn)練集上面表現(xiàn)較好,但是在未見(jiàn)的樣本上表現(xiàn)不佳,也就是模型泛化能力偏弱,我們把這種現(xiàn)象叫作過(guò)擬合(Overfitting)。當(dāng)模型的容量過(guò)小時(shí),模型不能夠很好地學(xué)習(xí)到訓(xùn)練集數(shù)據(jù)的模態(tài),導(dǎo)致訓(xùn)練集上表現(xiàn)不佳,同時(shí)在未見(jiàn)的樣本上表現(xiàn)也不佳,我們把這種現(xiàn)象叫作欠擬合(Underfitting)。
二、過(guò)擬合優(yōu)化模型的設(shè)計(jì)
為了驗(yàn)證不同模型對(duì)過(guò)擬合的影響程度,首先把數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集,但為了挑選模型超參數(shù)和檢測(cè)過(guò)擬合現(xiàn)象,一般需要將原來(lái)的訓(xùn)練集再次切分為新的訓(xùn)練集和驗(yàn)證集。訓(xùn)練集用于訓(xùn)練模型參數(shù),測(cè)試集用于測(cè)試模型的泛化能力,測(cè)試集中的樣本不能參與模型的訓(xùn)練,防止模型“記憶”住數(shù)據(jù)的特征,損害模型的泛化能力。訓(xùn)練集和測(cè)試集都是采樣自相同的數(shù)據(jù)分布,比如MNIST手寫(xiě)數(shù)字圖片集共有7萬(wàn)張樣本圖片,其中6萬(wàn)張圖片用做訓(xùn)練集,余下的1萬(wàn)張圖片用于測(cè)試集。訓(xùn)練集與測(cè)試集的分配比例可以由用戶自行定義,比如80%的數(shù)據(jù)用于訓(xùn)練,剩下的20%用于測(cè)試。當(dāng)數(shù)據(jù)集規(guī)模偏小時(shí),為了測(cè)試集能夠比較準(zhǔn)確地測(cè)試出模型的泛化能力,可以適當(dāng)增加測(cè)試集的比例。
(一)模型的設(shè)計(jì)
通過(guò)驗(yàn)證集可以判斷網(wǎng)絡(luò)模型是否過(guò)擬合或者欠擬合,從而為調(diào)整網(wǎng)絡(luò)模型的容量提供判斷依據(jù)。對(duì)于神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),網(wǎng)絡(luò)的層數(shù)和參數(shù)量是網(wǎng)絡(luò)容量很重要的參考指標(biāo),通過(guò)減少網(wǎng)絡(luò)的層數(shù),并減少每層中網(wǎng)絡(luò)參數(shù)量的規(guī)模,可以有效降低網(wǎng)絡(luò)的容量。反之,如果發(fā)現(xiàn)模型欠擬合,需要增大網(wǎng)絡(luò)的容量,可以通過(guò)增加層數(shù),增大每層的參數(shù)量等方式實(shí)現(xiàn)。
(二)正則化
通過(guò)設(shè)計(jì)不同層數(shù)、大小的網(wǎng)絡(luò)模型可以為優(yōu)化算法提供初始的函數(shù)假設(shè)空間,但是模型的實(shí)際容量可以隨著網(wǎng)絡(luò)參數(shù)的優(yōu)化更新而產(chǎn)生變化。以多項(xiàng)式函數(shù)模型為例:
上述模型的容量可以通過(guò)n簡(jiǎn)單衡量。在訓(xùn)練的過(guò)程中,如果網(wǎng)絡(luò)參數(shù)βk+1,…,βn均為 0,那么網(wǎng)絡(luò)的實(shí)際容量退化到k次多項(xiàng)式的函數(shù)容量。因此,通過(guò)限制網(wǎng)絡(luò)參數(shù)的稀疏性,可以來(lái)約束網(wǎng)絡(luò)的實(shí)際容量。這種約束一般通過(guò)在損失函數(shù)上添加額外的參數(shù)稀疏性懲罰項(xiàng)實(shí)現(xiàn),在未加約束之前的優(yōu)化目標(biāo)是
對(duì)模型的參數(shù)添加額外的約束后,優(yōu)化的目標(biāo)變?yōu)?/p>
其中Ω(θ)表示對(duì)網(wǎng)絡(luò)參數(shù)θ的稀疏性約束函數(shù)。一般地,參數(shù)θ的稀疏性約束通過(guò)約束參數(shù)θ的L范數(shù)實(shí)現(xiàn),即
其中‖θi‖l表示參數(shù)θi的l范數(shù)。
新的優(yōu)化目標(biāo)除了要最小化原來(lái)的損失函數(shù)(x,y)之外,還需要約束網(wǎng)絡(luò)參數(shù)的稀疏性Ω(θ)),優(yōu)化算法會(huì)在降低(x,y)的同時(shí),盡可能地迫使網(wǎng)絡(luò)參數(shù)θi變得稀疏,它們之間的權(quán)重關(guān)系通過(guò)超參數(shù)λ來(lái)平衡。較大的λ意味著網(wǎng)絡(luò)的稀疏性更重要;較小的λ則意味著網(wǎng)絡(luò)的訓(xùn)練誤差更重要。通過(guò)選擇合適的λ超參數(shù),可以獲得較好的訓(xùn)練性能,同時(shí)保證網(wǎng)絡(luò)的稀疏性,從而獲得不錯(cuò)的泛化能力。常用的正則化方式有L0、L1、L2 則化。本文這里不做詳細(xì)介紹。
(三)Dropout
2012年,Hinton等人在其論文《Improving neural networks by preventing co-adaptation of feature detectors》中使用了Dropout方法來(lái)提高模型性能。Dropout通過(guò)隨機(jī)斷開(kāi)神經(jīng)網(wǎng)絡(luò)的連接,減少每次訓(xùn)練時(shí)實(shí)際參與計(jì)算的模型的參數(shù)量;但是在測(cè)試時(shí),Dropou會(huì)恢復(fù)所有的連接,保證模型測(cè)試時(shí)獲得最好的性能。
圖2是全連接層網(wǎng)絡(luò)在某次前向計(jì)算時(shí)連接狀況的示意圖。圖(a)是標(biāo)準(zhǔn)的全連接神經(jīng)網(wǎng)絡(luò),當(dāng)前節(jié)點(diǎn)與前一層的所有輸入節(jié)點(diǎn)相連。在添加了Dropout功能的網(wǎng)絡(luò)層中,如圖(b)所示,每條連接是否斷開(kāi)符合某種預(yù)設(shè)的概率分布,如斷開(kāi)概率為ρ的伯努利分布。圖(b)中的顯示了某次具體的采樣結(jié)果,虛線代表了采樣結(jié)果為斷開(kāi)的連接線,實(shí)線代表了采樣結(jié)果不斷開(kāi)的連接線。
實(shí)驗(yàn)結(jié)果顯示,在不添加Dropout層時(shí),網(wǎng)絡(luò)模型與之前觀測(cè)的結(jié)果一樣,出現(xiàn)了明顯的過(guò)擬合現(xiàn)象;隨著Dropout層的增加,網(wǎng)絡(luò)模型訓(xùn)練時(shí)的實(shí)際容量減少,泛化能力變強(qiáng)。
(四)數(shù)據(jù)增強(qiáng)
除了上述介紹的方式可以有效檢測(cè)和抑制過(guò)擬合現(xiàn)象之外,增加數(shù)據(jù)集規(guī)模是解決過(guò)擬合最重要的途徑。但是收集樣本數(shù)據(jù)和標(biāo)簽往往是代價(jià)昂貴的,在有限的數(shù)據(jù)集上,通過(guò)數(shù)據(jù)增強(qiáng)技術(shù)可以增加訓(xùn)練的樣本數(shù)量,獲得一定程度上的性能提升。數(shù)據(jù)增強(qiáng)(Data Augmentation)是指在維持樣本標(biāo)簽不變的條件下,根據(jù)先驗(yàn)知識(shí)改變樣本的特征,使得新產(chǎn)生的樣本也符合或者近似符合數(shù)據(jù)的真實(shí)分布。
以圖片數(shù)據(jù)為例,我們知道旋轉(zhuǎn)、縮放、平移、裁剪、改變視角、遮擋某局部區(qū)域都不會(huì)改變圖片的主體類別標(biāo)簽,因此針對(duì)圖片數(shù)據(jù),可以有旋轉(zhuǎn)、縮放、平移、裁剪、改變視角、遮擋某局部區(qū)域多種數(shù)據(jù)增強(qiáng)方式。通過(guò)這些增強(qiáng)方式的處理可以增加訓(xùn)練樣本的數(shù)量,從而使過(guò)擬合問(wèn)題得到一定的優(yōu)化和改善。
三、結(jié)論
現(xiàn)代深度神經(jīng)網(wǎng)絡(luò)中過(guò)擬合現(xiàn)象非常容易出現(xiàn),主要是因?yàn)樯窠?jīng)網(wǎng)絡(luò)的表達(dá)能力非常強(qiáng),訓(xùn)練集樣本數(shù)不夠很容易就出現(xiàn)了神經(jīng)網(wǎng)絡(luò)的容量偏大的現(xiàn)象,通過(guò)對(duì)模型采取上述防止過(guò)擬合的方法,實(shí)驗(yàn)結(jié)果顯示,網(wǎng)絡(luò)的層數(shù)和參數(shù)量是過(guò)擬合產(chǎn)生的很重要的參考指標(biāo),通過(guò)減少網(wǎng)絡(luò)的層數(shù),并減少每層中網(wǎng)絡(luò)參數(shù)量的規(guī)模,可以有效降低網(wǎng)絡(luò)的容量。反之,如果發(fā)現(xiàn)模型欠擬合,需要增大網(wǎng)絡(luò)的容量,可以通過(guò)增加層數(shù),增大每層的參數(shù)量等方式實(shí)現(xiàn)。防止過(guò)擬合具體的方法有正則化、Dropout和數(shù)據(jù)增強(qiáng)等。
參考文獻(xiàn):
[1] 張鶴凝等.基于seq2seq模型的心理咨詢對(duì)話系統(tǒng)的研究[J],信息記錄材料,2021(3).
[2] 董波等. 機(jī)器學(xué)習(xí)在解決過(guò)擬合現(xiàn)象中的作用[J],心理科學(xué),2021(3).
[3] 閆濤. 深度學(xué)習(xí)算法實(shí)踐 [M]. 電子工業(yè)出版社出版社,2020.
[4] 李恒基. 基于深度學(xué)習(xí)過(guò)擬合現(xiàn)象的分析[J],中國(guó)科技信息,2020(7).