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

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

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

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

穎脈Imgtec ? 2023-12-30 08:27 ? 次閱讀

來源:Coggle數(shù)據(jù)科學(xué)


神經(jīng)網(wǎng)絡(luò)模型使用隨機(jī)梯度下降進(jìn)行訓(xùn)練,模型權(quán)重使用反向傳播算法進(jìn)行更新。通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型解決的優(yōu)化問題非常具有挑戰(zhàn)性,盡管這些算法在實(shí)踐中表現(xiàn)出色,但不能保證它們會及時(shí)收斂到一個(gè)良好的模型。

  • 訓(xùn)練神經(jīng)網(wǎng)絡(luò)的挑戰(zhàn)在訓(xùn)練數(shù)據(jù)集的新示例之間取得平衡。
  • 七個(gè)具體的技巧,可幫助您更快地訓(xùn)練出更好的神經(jīng)網(wǎng)絡(luò)模型。

學(xué)習(xí)和泛化

使用反向傳播設(shè)計(jì)和訓(xùn)練網(wǎng)絡(luò)需要做出許多看似任意的選擇,例如節(jié)點(diǎn)的數(shù)量和類型、層的數(shù)量、學(xué)習(xí)率、訓(xùn)練和測試集等。這些選擇可能至關(guān)重要,但卻沒有百分之百可靠的決策法則,因?yàn)樗鼈冊诤艽蟪潭壬先Q于問題和數(shù)據(jù)。訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的目標(biāo)最具挑戰(zhàn)性,因?yàn)樗鉀Q兩個(gè)難題:

  • 學(xué)習(xí)訓(xùn)練數(shù)據(jù)集以最小化損失。
  • 泛化模型性能以便在未見過的示例上進(jìn)行預(yù)測。

在這些問題之間存在權(quán)衡,因?yàn)閷W(xué)得太好的模型泛化能力可能較差,而泛化良好的模型可能欠擬合。訓(xùn)練神經(jīng)網(wǎng)絡(luò)的目標(biāo)是在這兩方面找到一個(gè)良好的平衡。在擬合神經(jīng)網(wǎng)絡(luò)模型時(shí),這些術(shù)語可以定義為:

  • 偏差:衡量網(wǎng)絡(luò)輸出在所有數(shù)據(jù)集上的平均差異與期望函數(shù)的差異。

方差:衡量網(wǎng)絡(luò)輸出在數(shù)據(jù)集之間變化的程度。

這種表述將模型的容量定義為偏差的選擇,控制可以學(xué)習(xí)的函數(shù)范圍。它將方差視為訓(xùn)練過程的函數(shù),并在過擬合訓(xùn)練數(shù)據(jù)集和泛化誤差之間取得平衡。

  • 在訓(xùn)練初期,偏差較大,因?yàn)榫W(wǎng)絡(luò)輸出與期望函數(shù)相差很遠(yuǎn)。方差非常小,因?yàn)閿?shù)據(jù)尚未產(chǎn)生太大的影響。在訓(xùn)練后期,偏差較小,因?yàn)榫W(wǎng)絡(luò)已經(jīng)學(xué)到了基本函數(shù)。

然而,如果訓(xùn)練時(shí)間太長,網(wǎng)絡(luò)還將學(xué)到特定數(shù)據(jù)集的噪聲,這稱為過度訓(xùn)練。在這種情況下,方差將很大,因?yàn)樵肼曉跀?shù)據(jù)集之間變化。


技巧1:隨機(jī)梯度下降與批量學(xué)習(xí)

隨機(jī)梯度下降,也稱為在線梯度下降,是指從訓(xùn)練數(shù)據(jù)集中隨機(jī)選擇一個(gè)示例,估算誤差梯度,然后更新模型參數(shù)(權(quán)重)的算法版本。它的效果是快速訓(xùn)練模型,盡管可能會導(dǎo)致模型權(quán)重的大幅、嘈雜的更新。

通常情況下,基本反向傳播首選隨機(jī)學(xué)習(xí),原因有三:

  1. 隨機(jī)學(xué)習(xí)通常比批量學(xué)習(xí)快得多。
  2. 隨機(jī)學(xué)習(xí)通常會導(dǎo)致更好的解決方案。
  3. 隨機(jī)學(xué)習(xí)可用于跟蹤變化。

批量梯度下降涉及使用訓(xùn)練數(shù)據(jù)集中所有示例的平均值來估算誤差梯度。它執(zhí)行更快,從理論上更容易理解,但導(dǎo)致學(xué)習(xí)速度較慢。

盡管隨機(jī)學(xué)習(xí)具有諸多優(yōu)勢,仍有理由考慮使用批量學(xué)習(xí):

  1. 收斂條件是眾所周知的。
  2. 許多加速技術(shù)(例如共軛梯度)僅在批量學(xué)習(xí)中操作。

對權(quán)重動(dòng)態(tài)和收斂速率的理論分析更簡單。

盡管批量更新具有優(yōu)勢,但在處理非常大的數(shù)據(jù)集時(shí),隨機(jī)學(xué)習(xí)仍然通常是首選方法,因?yàn)樗唵胃臁?/p>


技巧2:打亂樣本順序

神經(jīng)網(wǎng)絡(luò)從最意外的樣本中學(xué)得最快。因此,建議在每次迭代中選擇對系統(tǒng)最不熟悉的樣本。實(shí)現(xiàn)這個(gè)技巧的一個(gè)簡單方法是確保用于更新模型參數(shù)的連續(xù)示例來自不同的類別。

這個(gè)技巧也可以通過向模型展示并重新展示它在進(jìn)行預(yù)測時(shí)犯的最多錯(cuò)誤或產(chǎn)生最多錯(cuò)誤的示例來實(shí)現(xiàn)。這種方法可能是有效的,但如果在訓(xùn)練期間過度表示的示例是離群值,它也可能導(dǎo)致災(zāi)難。

選擇信息內(nèi)容最大的示例:

  1. 打亂訓(xùn)練集,使連續(xù)的訓(xùn)練示例永遠(yuǎn)(很少)不屬于同一類別。

更頻繁地呈現(xiàn)產(chǎn)生大誤差的輸入示例,而不是產(chǎn)生小誤差的示例。


技巧3:標(biāo)準(zhǔn)化輸入

當(dāng)訓(xùn)練數(shù)據(jù)集中的示例總和為零時(shí),神經(jīng)網(wǎng)絡(luò)通常學(xué)得更快。這可以通過從每個(gè)輸入變量中減去平均值(稱為居中)來實(shí)現(xiàn)。通常,如果訓(xùn)練集上每個(gè)輸入變量的平均值接近零,收斂速度會更快。

此外將輸入居中也會提高模型對來自先前層的輸入到隱藏層的收斂性。這是令人著迷的,因?yàn)樗鼮楹髞斫?5年發(fā)展并廣泛流行的批量歸一化技術(shù)奠定了基礎(chǔ)。

因此,最好將輸入移動(dòng),以使訓(xùn)練集的平均值接近零。這個(gè)啟發(fā)式方法應(yīng)該應(yīng)用于所有層,這意味著我們希望節(jié)點(diǎn)的輸出的平均值接近零,因?yàn)檫@些輸出是下一層的輸入。

轉(zhuǎn)換輸入

  1. 訓(xùn)練集上每個(gè)輸入變量的平均值應(yīng)接近零。
  2. 縮放輸入變量,使它們的協(xié)方差大致相同。

如果可能的話,輸入變量應(yīng)該無關(guān)聯(lián)。


技巧4:Sigmoid 激活函數(shù)

非線性激活函數(shù)賦予神經(jīng)網(wǎng)絡(luò)非線性能力。其中一種最常見的激活函數(shù)形式是 Sigmoid。

在隱藏層使用 logistic 和 tanh 激活函數(shù)不再是一個(gè)合理的默認(rèn)選擇,因?yàn)槭褂?ReLU 的性能模型收斂速度更快。


技巧5:選擇目標(biāo)值

在二元分類問題的情況下,目標(biāo)變量可能是 logistic 激活函數(shù)的漸近值集合 {0, 1},或者是雙曲正切函數(shù)的漸近值集合 {-1, 1},分別對應(yīng)使用交叉熵或鉸鏈損失函數(shù),即使在現(xiàn)代神經(jīng)網(wǎng)絡(luò)中也是如此。在激活函數(shù)的飽和點(diǎn)(邊緣)取得值可能需要更大的權(quán)重,這可能使模型變得不穩(wěn)定。


技巧6:初始化權(quán)重

權(quán)重的初始值對訓(xùn)練過程有很大影響。權(quán)重應(yīng)該隨機(jī)選擇,但以 sigmoid 函數(shù)的線性區(qū)域?yàn)橹饕せ顓^(qū)域。這個(gè)建議也適用于 ReLU 的權(quán)重激活,其中函數(shù)的線性部分是正的。

初始權(quán)重對模型學(xué)習(xí)有重要影響,其中大權(quán)重使激活函數(shù)飽和,導(dǎo)致不穩(wěn)定的學(xué)習(xí),而小權(quán)重導(dǎo)致梯度非常小,進(jìn)而學(xué)習(xí)緩慢。理想情況下,我們尋求模型權(quán)重位于激活函數(shù)的線性(非曲線)部分之上。


技巧7:選擇學(xué)習(xí)率

學(xué)習(xí)率是模型權(quán)重在算法的每次迭代中更新的量。較小的學(xué)習(xí)率可能導(dǎo)致收斂較慢,但可能得到更好的結(jié)果,而較大的學(xué)習(xí)率可能導(dǎo)致更快的收斂,但可能得到不太理想的結(jié)果。

建議當(dāng)權(quán)重值開始來回變化,例如振蕩時(shí),減小學(xué)習(xí)率。

  • 大多數(shù)方案在權(quán)重向量“振蕩”時(shí)減小學(xué)習(xí)率,并在權(quán)重向量遵循相對穩(wěn)定方向時(shí)增加學(xué)習(xí)率。

顯然,為網(wǎng)絡(luò)中的每個(gè)權(quán)重選擇不同的學(xué)習(xí)率(eta)可以提高收斂性。[…] 主要思想是確保網(wǎng)絡(luò)中的所有權(quán)重大致以相同的速度收斂。

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

    關(guān)注

    42

    文章

    4722

    瀏覽量

    100306
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4256

    瀏覽量

    62223
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3054

    瀏覽量

    48569
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

    脈沖神經(jīng)網(wǎng)絡(luò)(SNN, Spiking Neural Network)的訓(xùn)練是一個(gè)復(fù)雜但充滿挑戰(zhàn)的過程,它模擬了生物神經(jīng)元通過脈沖(或稱為尖峰)進(jìn)行信息傳遞的方式。以下是對脈沖
    的頭像 發(fā)表于 07-12 10:13 ?385次閱讀

    如何編寫一個(gè)BP神經(jīng)網(wǎng)絡(luò)

    BP(反向傳播)神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),它通過反向傳播算法來訓(xùn)練網(wǎng)絡(luò)中的權(quán)重和偏置,以最小化輸出誤差。BP神經(jīng)網(wǎng)絡(luò)的核心在于其前向傳
    的頭像 發(fā)表于 07-11 16:44 ?317次閱讀

    20個(gè)數(shù)據(jù)可以訓(xùn)練神經(jīng)網(wǎng)絡(luò)

    當(dāng)然可以,20個(gè)數(shù)據(jù)點(diǎn)對于訓(xùn)練個(gè)神經(jīng)網(wǎng)絡(luò)來說可能非常有限,但這并不意味著它們不能用于訓(xùn)練。實(shí)際上,神經(jīng)
    的頭像 發(fā)表于 07-11 10:29 ?467次閱讀

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

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

    BP神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)和訓(xùn)練過程

    網(wǎng)絡(luò)結(jié)構(gòu),通過誤差反向傳播算法(Error Backpropagation Algorithm)來訓(xùn)練網(wǎng)絡(luò),實(shí)現(xiàn)對復(fù)雜問題的學(xué)習(xí)和解決。以下將詳細(xì)闡述BP神經(jīng)網(wǎng)絡(luò)的工作方式,涵蓋其基本
    的頭像 發(fā)表于 07-10 15:07 ?2322次閱讀
    BP<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的基本結(jié)構(gòu)和<b class='flag-5'>訓(xùn)練</b>過程

    如何利用Matlab進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練

    ,使得神經(jīng)網(wǎng)絡(luò)的創(chuàng)建、訓(xùn)練和仿真變得更加便捷。本文將詳細(xì)介紹如何利用Matlab進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,包括網(wǎng)絡(luò)創(chuàng)建、數(shù)據(jù)預(yù)處理、
    的頭像 發(fā)表于 07-08 18:26 ?1338次閱讀

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

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

    深度神經(jīng)網(wǎng)絡(luò)與基本神經(jīng)網(wǎng)絡(luò)的區(qū)別

    在探討深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks, DNNs)與基本神經(jīng)網(wǎng)絡(luò)(通常指傳統(tǒng)神經(jīng)網(wǎng)絡(luò)或前向神經(jīng)網(wǎng)絡(luò))的區(qū)別時(shí),我們需要從多個(gè)維度進(jìn)行深入分析。這些維度包括
    的頭像 發(fā)表于 07-04 13:20 ?483次閱讀

    反向傳播神經(jīng)網(wǎng)絡(luò)和bp神經(jīng)網(wǎng)絡(luò)的區(qū)別

    神經(jīng)網(wǎng)絡(luò)在許多領(lǐng)域都有廣泛的應(yīng)用,如語音識別、圖像識別、自然語言處理等。然而,BP神經(jīng)網(wǎng)絡(luò)也存在一些問題,如容易陷入局部最優(yōu)解、訓(xùn)練時(shí)間長、對初始權(quán)重敏感等。為了解決這些問題,研究者們提出了一些改進(jìn)的BP
    的頭像 發(fā)表于 07-03 11:00 ?515次閱讀

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

    結(jié)構(gòu)、原理、應(yīng)用場景等方面都存在一定的差異。以下是對這兩種神經(jīng)網(wǎng)絡(luò)的比較: 基本結(jié)構(gòu) BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),由輸入層、隱藏層和輸出層組成。每個(gè)神經(jīng)元之間通過權(quán)重連接,并通
    的頭像 發(fā)表于 07-03 10:12 ?710次閱讀

    卷積神經(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í)模型,其核心思想是利用卷積操作提取輸入數(shù)據(jù)的局部特征,并通過多層結(jié)構(gòu)進(jìn)
    的頭像 發(fā)表于 07-03 09:15 ?270次閱讀

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

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

    BP神經(jīng)網(wǎng)絡(luò)算法的基本流程

    訓(xùn)練經(jīng)過約50次左右迭代,在訓(xùn)練集上已經(jīng)能達(dá)到99%的正確率,在測試集上的正確率為90.03%,單純的BP神經(jīng)網(wǎng)絡(luò)能夠提升的空間不大了,但kaggle上已經(jīng)有人有卷積
    發(fā)表于 03-20 09:58 ?1820次閱讀
    BP<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>算法的基本流程

    如何訓(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)該有多大。這個(gè)問題沒有簡單的答案。與此相關(guān),討論網(wǎng)絡(luò)過擬合和欠擬合非常重要。過擬合是模型過于復(fù)雜且
    發(fā)表于 11-24 15:35 ?663次閱讀
    如何<b class='flag-5'>訓(xùn)練</b>這些<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>來解決問題?