日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python3__深度學(xué)習(xí)__過擬合/欠擬合的處理

系統(tǒng) 2162 0

1.過擬合定義+處理

python3__深度學(xué)習(xí)__過擬合/欠擬合的處理_第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ì)算:

python3__深度學(xué)習(xí)__過擬合/欠擬合的處理_第2張圖片

?進(jìn)行dropout時(shí)的計(jì)算:

python3__深度學(xué)習(xí)__過擬合/欠擬合的處理_第3張圖片

權(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ì)算公式變成如下形式:

python3__深度學(xué)習(xí)__過擬合/欠擬合的處理_第4張圖片

?上式中ω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)行掩蓋話處理,從而增大模型的泛化能力。

python3__深度學(xué)習(xí)__過擬合/欠擬合的處理_第5張圖片

2.欠擬合定義+處理

python3__深度學(xué)習(xí)__過擬合/欠擬合的處理_第6張圖片

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ì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 达州市| 富顺县| 西充县| 兴文县| 永春县| 华池县| 祁东县| 唐河县| 霍林郭勒市| 江孜县| 若羌县| 阳泉市| 鞍山市| 九台市| 昌都县| 商河县| 渑池县| 股票| 隆昌县| 亳州市| 延安市| 施秉县| 乐都县| 新平| 前郭尔| 林西县| 长兴县| 凯里市| 宜昌市| 宜章县| 丹江口市| 大同县| 元氏县| 尼勒克县| 东辽县| 裕民县| 河曲县| 彰化县| 体育| 庐江县| 农安县|