0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深層神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練:過擬合優(yōu)化

電子設(shè)計 ? 來源:TOMORROW 星辰 ? 作者:TOMORROW 星辰 ? 2020-12-02 14:17 ? 次閱讀

·過擬合(Overfitting)

深層神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練過程,就是尋找一個模型能夠很好的擬合現(xiàn)有的數(shù)據(jù)(訓(xùn)練集),同時能夠很好的預(yù)測未來的數(shù)據(jù)。

在訓(xùn)練過程中由于模型建立的不恰當(dāng),往往所訓(xùn)練得到的模型能夠?qū)τ?xùn)練集的數(shù)據(jù)非常好的擬合,但是卻在預(yù)測未來的數(shù)據(jù)上表現(xiàn)得非常差,這種情況就叫做過擬合(Overfitting)。

為了訓(xùn)練出高效可用的深層神經(jīng)網(wǎng)絡(luò)模型,在訓(xùn)練時必須要避免過擬合的現(xiàn)象。過擬合現(xiàn)象的優(yōu)化方法通常有三種,分別是:正則化(Regulation),擴增訓(xùn)練集(Data augmentation)以及提前停止迭代(Early stopping)。

·正則化(Regulation)

正則化方法是指在進行損失函數(shù)(costfunction)優(yōu)化時,在損失函數(shù)后面加上一個正則項。

正則化方法中目前常用的有兩種方法:L2 正則化和 Dropout 正則化。

L2 正則

L2 正則是基于 L2 范數(shù),即在函數(shù)后面加上參數(shù)的 L2 范數(shù)的平方,即:

其中J0是原損失函數(shù),m 表示數(shù)據(jù)集的大小。使用下式對參數(shù)進行更新:

其中,因此知道 w 在進行權(quán)重衰減。在神經(jīng)網(wǎng)絡(luò)中,當(dāng)一個神經(jīng)元的權(quán)重越小時,那么該神經(jīng)元在神經(jīng)網(wǎng)絡(luò)中起到的作用就越小,當(dāng)權(quán)重為 0 時,那么該神經(jīng)元就可以被神經(jīng)網(wǎng)絡(luò)剔除。而過擬合現(xiàn)象出現(xiàn)的原因之一就是,模型復(fù)雜度過高。那么,也就是說 L2 正則化后,權(quán)重會衰減,從而降低了模型的復(fù)雜度,從而一定程度上避免對數(shù)據(jù)過擬合。

隨機失活(Dropout)正則

其實 Dropout 的思路與 L2 的思路是一致的,都是降低模型的復(fù)雜度,從而避免過擬合。只是實現(xiàn)的方法有所不同。

Dropout 的做法是,在訓(xùn)練過程中,按照一定的概率隨機的忽略掉一些神經(jīng)元,使其失活,從而就降低了模型的復(fù)雜度,提高了泛化的能力,一定程度上避免了過擬合。

常用的實現(xiàn)方法是 InvertedDropout。

使用 Dropout 的小技巧

·1、通常丟棄率控制在 20%~50%比較好,可以從 20%開始嘗試。如果比例太低則起不到效果,比例太高則會導(dǎo)致模型的欠學(xué)習(xí)。

·2、在大的網(wǎng)絡(luò)模型上應(yīng)用。當(dāng) dropout 用在較大的網(wǎng)絡(luò)模型時更有可能得到效果的提升,模型有更多的機會學(xué)習(xí)到多種獨立的表征。

·3、在輸入層(可見層)和隱藏層都使用 dropout。在每層都應(yīng)用 dropout 被證明會取得好的效果。

·4、增加學(xué)習(xí)率和沖量。把學(xué)習(xí)率擴大 10~100 倍,沖量值調(diào)高到 0.9~0.99.

·5、限制網(wǎng)絡(luò)模型的權(quán)重。大的學(xué)習(xí)率往往導(dǎo)致大的權(quán)重值。對網(wǎng)絡(luò)的權(quán)重值做最大范數(shù)正則化等方法被證明會提升效果。

·擴增訓(xùn)練集(Data augmentation)

“有時候不是因為算法好贏了,而是因為擁有更多的數(shù)據(jù)才贏了。”

特別在深度學(xué)習(xí)中,更多的訓(xùn)練數(shù)據(jù),意味著可以訓(xùn)練更深的網(wǎng)絡(luò),訓(xùn)練出更好的模型。

然而很多時候,收集更多的數(shù)據(jù)并不那么容易,要付出很大的代價。那么,為了得到更多的訓(xùn)練數(shù)據(jù),我們可以在原有的數(shù)據(jù)上做一些改動產(chǎn)生新的可用數(shù)據(jù),以圖片數(shù)據(jù)為例,將圖片水平翻轉(zhuǎn),放大或者選擇一個小角度都可以得到新的圖片數(shù)據(jù)用于訓(xùn)練。

雖然這樣的效果沒有全新的數(shù)據(jù)更加好,但是付出的代價卻是接近于零的。所以,很多情況下,這是一個非常好的數(shù)據(jù)擴增方法。

·提前停止迭代(Early stopping)

在訓(xùn)練過程中繪制訓(xùn)練集誤差函數(shù)的同時也繪制交叉驗證集的誤差。從下面的圖可以看出,訓(xùn)練集誤差隨著迭代次數(shù)增加而不斷降低,而驗證集誤差卻是先降低后上升。很明顯,在這個模型中,我們希望驗證集誤差和訓(xùn)練集誤差都盡量的小,那么最優(yōu)點就是在驗證集誤差的最低點,訓(xùn)練應(yīng)該在該點處停止,也就是選取該點處的權(quán)重值作為神經(jīng)網(wǎng)絡(luò)的參數(shù)。

但是這種優(yōu)化方法有很大的缺點。因為提前停止訓(xùn)練,也就是停止優(yōu)化訓(xùn)練集的誤差,通常情況下,在驗證集誤差達到最小值時,訓(xùn)練集誤差還未處于一個足夠小的值。從而使得該模型雖然沒有出現(xiàn)過擬合現(xiàn)象,卻是出現(xiàn)了欠擬合的情況。當(dāng)然,這種優(yōu)化方法還是有著表現(xiàn)優(yōu)異的使用場景的。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關(guān)推薦

    如何使用經(jīng)過訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型

    使用經(jīng)過訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型是一個涉及多個步驟的過程,包括數(shù)據(jù)準(zhǔn)備、模型加載、預(yù)測執(zhí)行以及后續(xù)優(yōu)化等。
    的頭像 發(fā)表于 07-12 11:43 ?459次閱讀

    神經(jīng)網(wǎng)絡(luò)優(yōu)化器有哪些

    神經(jīng)網(wǎng)絡(luò)優(yōu)化器是深度學(xué)習(xí)中用于調(diào)整網(wǎng)絡(luò)參數(shù)以最小化損失函數(shù)的重要工具。這些優(yōu)化器通過不同的策略來更新網(wǎng)絡(luò)權(quán)重,以提高
    的頭像 發(fā)表于 07-11 16:33 ?316次閱讀

    神經(jīng)網(wǎng)絡(luò)辨識模型具有什么特點

    神經(jīng)網(wǎng)絡(luò)辨識模型是一種基于人工神經(jīng)網(wǎng)絡(luò)的系統(tǒng)辨識方法,它具有以下特點: 非線性映射能力 :神經(jīng)網(wǎng)絡(luò)能夠處理非線性問題,可以很好地擬合復(fù)雜的非
    的頭像 發(fā)表于 07-11 11:12 ?234次閱讀

    怎么對神經(jīng)網(wǎng)絡(luò)重新訓(xùn)練

    重新訓(xùn)練神經(jīng)網(wǎng)絡(luò)是一個復(fù)雜的過程,涉及到多個步驟和考慮因素。 引言 神經(jīng)網(wǎng)絡(luò)是一種強大的機器學(xué)習(xí)模型,廣泛應(yīng)用于圖像識別、自然語言處理、語音識別等領(lǐng)域。然而,隨著時間的推移,數(shù)據(jù)分布可
    的頭像 發(fā)表于 07-11 10:25 ?303次閱讀

    pytorch中有神經(jīng)網(wǎng)絡(luò)模型

    當(dāng)然,PyTorch是一個廣泛使用的深度學(xué)習(xí)框架,它提供了許多預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。 PyTorch中的神經(jīng)網(wǎng)絡(luò)模型 1. 引言 深度學(xué)習(xí)是
    的頭像 發(fā)表于 07-11 09:59 ?527次閱讀

    PyTorch神經(jīng)網(wǎng)絡(luò)模型構(gòu)建過程

    PyTorch,作為一個廣泛使用的開源深度學(xué)習(xí)庫,提供了豐富的工具和模塊,幫助開發(fā)者構(gòu)建、訓(xùn)練和部署神經(jīng)網(wǎng)絡(luò)模型。在神經(jīng)網(wǎng)絡(luò)模型中,輸出層是
    的頭像 發(fā)表于 07-10 14:57 ?303次閱讀

    人工神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的基本原理

    圖像識別、語音識別、自然語言處理等。本文將介紹人工神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的基本原理。 1. 神經(jīng)網(wǎng)絡(luò)的基本概念 1.1 神經(jīng)
    的頭像 發(fā)表于 07-05 09:16 ?329次閱讀

    神經(jīng)網(wǎng)絡(luò)擬合的誤差怎么分析

    神經(jīng)網(wǎng)絡(luò)擬合誤差分析是一個復(fù)雜且深入的話題,涉及到多個方面,需要從數(shù)據(jù)質(zhì)量、模型結(jié)構(gòu)、訓(xùn)練過程和正則化方法等多個角度進行綜合考慮。 引言 神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 10:36 ?327次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的是什么

    、訓(xùn)練過程以及應(yīng)用場景。 1. 卷積神經(jīng)網(wǎng)絡(luò)的基本概念 1.1 卷積神經(jīng)網(wǎng)絡(luò)的定義 卷積神經(jīng)網(wǎng)絡(luò)是一種前饋深度學(xué)習(xí)模型,其核心思想是利用卷積
    的頭像 發(fā)表于 07-03 09:15 ?220次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)和bp神經(jīng)網(wǎng)絡(luò)的區(qū)別

    不同的神經(jīng)網(wǎng)絡(luò)模型,它們在結(jié)構(gòu)、原理、應(yīng)用等方面都存在一定的差異。本文將從多個方面對這兩種神經(jīng)網(wǎng)絡(luò)進行詳細的比較和分析。 引言 神經(jīng)網(wǎng)絡(luò)是一種模擬人腦
    的頭像 發(fā)表于 07-02 14:24 ?1013次閱讀

    數(shù)學(xué)建模神經(jīng)網(wǎng)絡(luò)模型的優(yōu)缺點有哪些

    、預(yù)測分析等。然而,神經(jīng)網(wǎng)絡(luò)模型也存在一些優(yōu)缺點。本文將詳細分析神經(jīng)網(wǎng)絡(luò)模型的優(yōu)缺點。 一、優(yōu)點 強大的非線性擬合能力
    的頭像 發(fā)表于 07-02 11:36 ?581次閱讀

    如何訓(xùn)練優(yōu)化神經(jīng)網(wǎng)絡(luò)

    神經(jīng)網(wǎng)絡(luò)是人工智能領(lǐng)域的重要分支,廣泛應(yīng)用于圖像識別、自然語言處理、語音識別等多個領(lǐng)域。然而,要使神經(jīng)網(wǎng)絡(luò)在實際應(yīng)用中取得良好效果,必須進行有效的訓(xùn)練優(yōu)化。本文將從
    的頭像 發(fā)表于 07-01 14:14 ?268次閱讀

    助聽器降噪神經(jīng)網(wǎng)絡(luò)模型

    抑制任務(wù)是語音增強領(lǐng)域的一個重要學(xué)科, 隨著深度神經(jīng)網(wǎng)絡(luò)的興起,提出了幾種基于深度模型的音頻處理新方法[1,2,3,4]。然而,這些通常是為離線處理而開發(fā)的,不需要考慮實時性。當(dāng)使用神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 05-11 17:15

    Kaggle知識點:訓(xùn)練神經(jīng)網(wǎng)絡(luò)的7個技巧

    科學(xué)神經(jīng)網(wǎng)絡(luò)模型使用隨機梯度下降進行訓(xùn)練模型權(quán)重使用反向傳播算法進行更新。通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 12-30 08:27 ?544次閱讀
    Kaggle知識點:<b class='flag-5'>訓(xùn)練</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的7個技巧

    如何訓(xùn)練這些神經(jīng)網(wǎng)絡(luò)來解決問題?

    神經(jīng)網(wǎng)絡(luò)建模中,經(jīng)常會出現(xiàn)關(guān)于神經(jīng)網(wǎng)絡(luò)應(yīng)該有多復(fù)雜的問題,即它應(yīng)該有多少層,或者它的濾波器矩陣應(yīng)該有多大。這個問題沒有簡單的答案。與此相關(guān),討論網(wǎng)絡(luò)
    發(fā)表于 11-24 15:35 ?639次閱讀
    如何<b class='flag-5'>訓(xùn)練</b>這些<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>來解決問題?