1.過擬合定義+處理
1.1 過擬合概述(低偏差,高方差)
定義 :過擬合簡(jiǎn)單的描述就是在訓(xùn)練集上的表現(xiàn)很好,但在未見過的測(cè)試集上的表現(xiàn)卻較差。專業(yè)一點(diǎn)的定義就是:給定一個(gè)假設(shè)空間H,一個(gè)假設(shè)h屬于H,如果存在其他的假設(shè)h'也屬于H,使得在訓(xùn)練樣例上h的錯(cuò)誤率小于h',但是在整個(gè)實(shí)例分布上h'比h的錯(cuò)誤率小,那么則稱假設(shè)h過度擬合訓(xùn)練數(shù)據(jù)。
危害 :一個(gè)過擬合的模型試圖連“誤差”都去解釋,而實(shí)際上噪音是不需要解釋的,這個(gè)解釋的過程導(dǎo)致模型的泛化能力較差,模型在預(yù)測(cè)集上的效果較差,因?yàn)檎`差是不能夠代表整體數(shù)據(jù)的特性的。
1.2 過擬合處理
獲取使用更多的數(shù)據(jù)集 :
解決過擬合的一個(gè)比較有效的方法是為模型提供更多的數(shù)據(jù),使得數(shù)據(jù)能盡可能的反應(yīng)整體的全貌,讓模型在數(shù)據(jù)上充分的學(xué)習(xí)并不斷的修正。但是,現(xiàn)實(shí)當(dāng)中受限于數(shù)據(jù)搜集成本等多方面因素,搜集無限多的數(shù)據(jù)集似乎是不可能的,因此,常用的辦法是調(diào)整已有的數(shù)據(jù)集,通過添加“噪音”、圖像銳化、圖像旋轉(zhuǎn)、圖像明暗度調(diào)節(jié)等方法增大數(shù)據(jù)量。之所以可以這樣處理,是因?yàn)榫矸e神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別的過程中有強(qiáng)大的“不變性”規(guī)則,即待辨識(shí)的物體在圖像中的形狀、姿勢(shì)、位置、明暗度都不會(huì)影響分類結(jié)果。
進(jìn)一步的數(shù)據(jù)清洗
導(dǎo)致過擬合的其中一個(gè)原因也有可能是數(shù)據(jù)不純導(dǎo)致的, 如果出現(xiàn)了過擬合就需要我們重新清洗數(shù)據(jù)。
采用合適的模型(降低模型復(fù)雜度) :
不同的模型對(duì)過擬合的返回能力是不同的,一般來說,深度學(xué)習(xí)中網(wǎng)絡(luò)深度越大,模型越容易產(chǎn)生過擬合現(xiàn)象
采用模型集成的方式
模型集成即基于現(xiàn)有數(shù)據(jù)集訓(xùn)練多個(gè)模型并進(jìn)行組合。但是,問題在于模型訓(xùn)練與測(cè)試非常耗時(shí),并且,模型組合的方式也非常重要。
使用dropout函數(shù) :
dropout的思想是:(1)訓(xùn)練階段:在前向傳播的過程中, 讓某個(gè)神經(jīng)元的激活值以一定的概p繼續(xù)工作(1-p)的概率停止工作 ,這種方式可以有效的減少隱層節(jié)點(diǎn)之間的相互作用,檢測(cè)器相互作用是指某些檢測(cè)器依賴其他檢測(cè)器才能發(fā)揮作用。通過這種方式,在每一次“前向傳播+后向反饋”過程中,相當(dāng)于訓(xùn)練了不同的模型并集合了不同的模型,思想上類似于“模型集成”。
(2)測(cè)試階段:權(quán)重系數(shù)w要乘p,即:pw。原因?yàn)椋耗骋浑[藏層的一個(gè)神經(jīng)元在dropout之前的輸出為x, dropout之后的期望輸出為:E=p*x+(1-p)*0=px 。而在測(cè)試中,每個(gè)神經(jīng)元都是存在的,因此,為保持同樣的數(shù)學(xué)期望并使得下一層也得到同樣的結(jié)果,需要調(diào)整w→pw. 其中p是Bernoulli分布(0-1分布)中值為1的概率。但是,上邊這種方式需要在在激勵(lì)函數(shù)的輸入數(shù)據(jù)計(jì)算中在權(quán)重w上乘以p進(jìn)行縮放,這樣需要對(duì)測(cè)試的代碼進(jìn)行更改并增加了測(cè)試時(shí)的計(jì)算量,非常影響測(cè)試性能。通常為了提高測(cè)試的性能(減少測(cè)試時(shí)的運(yùn)算時(shí)間),可以將縮放的工作轉(zhuǎn)移到訓(xùn)練階段,而測(cè)試階段與不使用dropout時(shí)相同,稱為?inverted dropout?:將前向傳播dropout時(shí)保留下來的神經(jīng)元的權(quán)重乘上1/p(看做懲罰項(xiàng),使權(quán)重?cái)U(kuò)大為原來的1/p倍,這樣測(cè)試時(shí)不用再縮小權(quán)重)。
未進(jìn)行dropout時(shí)的計(jì)算:
?進(jìn)行dropout時(shí)的計(jì)算:
權(quán)重衰減
在擬合產(chǎn)生的時(shí)候,模型因?yàn)橐獙?duì)所有的特征進(jìn)行擬合,因此在一個(gè)原本平滑的擬合曲線上會(huì)產(chǎn)生大量的急劇變化的突起或者凹陷,即這些點(diǎn)的導(dǎo)數(shù)非常大,且過大的導(dǎo)數(shù)值從擬合的模型上來看,數(shù)學(xué)模型的系數(shù)會(huì)非常大,即權(quán)重也會(huì)非常大。而權(quán)重衰減(正則化)問題在一定程度上緩解了這個(gè)問題,通過對(duì)權(quán)重值在一定范圍內(nèi)的修正,使其不再偏離一個(gè)均值太大,從而降低過擬合的程度。權(quán)重衰減的具體做法為:
?實(shí)際中的使用分為L(zhǎng)1和L2正則,即:
?公式(1)中C0為損失函數(shù),后半部分為L(zhǎng)2正則化相,系數(shù)λ為權(quán)重衰減系數(shù)η為模型學(xué)習(xí)速率,公式(1)分別對(duì)權(quán)重ω和誤差項(xiàng)b求導(dǎo)可得:
從求導(dǎo)結(jié)果中可見,添加了L2正則化項(xiàng)的損失函數(shù)不會(huì)對(duì)誤差項(xiàng)b產(chǎn)生影響,而ω的偏導(dǎo)數(shù)則多了一項(xiàng),由此可知,在權(quán)值更新的過程當(dāng)中ω的計(jì)算公式變成如下形式:
?上式中ωij為對(duì)象的第i個(gè)特征所對(duì)應(yīng)的第j個(gè)權(quán)重,δj表示誤差反向傳播時(shí)第j個(gè)神經(jīng)元對(duì)應(yīng)的誤差,n為樣本總數(shù),xi為對(duì)象第i個(gè)特征的特征值。從最終的結(jié)果中可以看出,n、δj、λ和n均為正數(shù),所以ωij之前的系數(shù)必定小于1,因此,起到了對(duì)ωij的縮小作用。
Early Stopping
基本思想是判斷單簽?zāi)P偷膿p失值(loss)或者準(zhǔn)確率(accuracy)不在發(fā)生變化時(shí)就停止模型訓(xùn)練。但是,實(shí)際情況下模型的loss或者accuracy是在不斷的波動(dòng)中的,因此,可以設(shè)定某一個(gè)范圍,若連續(xù)k次出現(xiàn)在這個(gè)認(rèn)為設(shè)定的可接受的范圍內(nèi)時(shí),則認(rèn)為模型已較好的收斂。
學(xué)習(xí)速率衰減
學(xué)習(xí)率過大,在算法優(yōu)化的前期會(huì)加速學(xué)習(xí),使得模型更容易接近局部或全局最優(yōu)解。但是在后期會(huì)有較大波動(dòng),甚至出現(xiàn)損失函數(shù)的值圍繞最小值徘徊,波動(dòng)很大,始終難以達(dá)到最優(yōu)。學(xué)習(xí)速率過小,會(huì)嚴(yán)重提升模型的訓(xùn)練成本,收斂速度較慢。所以引入學(xué)習(xí)率衰減的概念,直白點(diǎn)說,就是在 模型訓(xùn)練初期,會(huì)使用較大的學(xué)習(xí)率進(jìn)行模型優(yōu)化 ,隨著迭代次數(shù)增加, 學(xué)習(xí)率會(huì)逐漸進(jìn)行減小,保證模型在訓(xùn)練后期不會(huì)有太大的波動(dòng) ,從而更加接近最優(yōu)解。
學(xué)習(xí)速率衰減的類型分為:線性衰減、非線性衰減(tf.train. exponential_decay (learning_rate, global_step, decay_steps, decay_rate, staircase=False, name=None)
Batch_Normalization
該方法的思想是在數(shù)據(jù)經(jīng)過卷積層之后,真正進(jìn)入激活函數(shù)之前需要對(duì)其進(jìn)行一次Batch_Normalization,分批對(duì)輸入的數(shù)據(jù)求取均值和方差之后重新對(duì)數(shù)據(jù)進(jìn)行一次 歸一化 處理。這樣做的好處是對(duì)數(shù)據(jù)進(jìn)行了一定程度上的預(yù)處理,使得無論是訓(xùn)練數(shù)據(jù)集還是測(cè)試數(shù)據(jù)集都在一定范圍內(nèi)進(jìn)行分布與波動(dòng),對(duì)數(shù)據(jù)中包含的誤差進(jìn)行掩蓋話處理,從而增大模型的泛化能力。
2.欠擬合定義+處理
2.1 欠擬合概述(高偏差,低方差)
定義 :欠擬合表示模型未較好的捕捉到數(shù)據(jù)的特征不能夠很好的擬合數(shù)據(jù)。
2.2 欠擬合處理
增強(qiáng)數(shù)據(jù)表達(dá)能力
模型出現(xiàn)欠擬合的時(shí)候是因?yàn)樘卣黜?xiàng)不夠?qū)е碌?,可以添加其他特征?xiàng)來很好地解決。例如,“ 組合 ”、“ 泛化 ”、“ 相關(guān)性 ”三類特征是特征添加的重要手段,除此之外,“ 上下文特征 ”、“ 平臺(tái)特征 ”等等,都可以作為特征添加的首選項(xiàng)。
模型復(fù)雜化
包括兩種思路:(1)現(xiàn)有模型復(fù)雜化:線性模型->多項(xiàng)式模型、增加神經(jīng)網(wǎng)絡(luò)的深度等;(2)換更加復(fù)雜的模型
調(diào)整參數(shù)或超參
超參數(shù)包括:(1)神經(jīng)網(wǎng)絡(luò)中:學(xué)習(xí)率、學(xué)習(xí)衰減率、隱藏層數(shù)、隱藏層的單元數(shù)、Adam優(yōu)化算法中的β1和β2參數(shù)、batch_size數(shù)值等;(2)其他算法中:隨機(jī)森林的樹數(shù)量,k-means中的cluster數(shù),正則化參數(shù)λ等
降低正則化約束
正則化約束是為了防止模型過擬合,如果模型壓根不存在過擬合而是欠擬合了,那么就考慮是否降低正則化參數(shù)λ或者直接去除正則化項(xiàng)
【注意】 :
一般來說,進(jìn)一步的增加數(shù)據(jù)量是沒有效果的,欠擬合的本質(zhì)實(shí)際上是模型本身的學(xué)習(xí)能力不足,此時(shí),增加再多的數(shù)據(jù)也于事無補(bǔ)。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
