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

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

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

DNN(深度神經(jīng)網(wǎng)絡(luò))在訓(xùn)練過(guò)程中遇到的一些問(wèn)題

新機(jī)器視覺(jué) ? 來(lái)源:新機(jī)器視覺(jué) ? 2023-02-06 16:21 ? 次閱讀

深度學(xué)習(xí)已經(jīng)成為解決許多具有挑戰(zhàn)性的現(xiàn)實(shí)世界問(wèn)題的方法。對(duì)目標(biāo)檢測(cè)語(yǔ)音識(shí)別和語(yǔ)言翻譯來(lái)說(shuō),這是迄今為止表現(xiàn)最好的方法。許多人將深度神經(jīng)網(wǎng)絡(luò)(DNNs)視為神奇的黑盒子,我們放進(jìn)去一堆數(shù)據(jù),出來(lái)的就是我們的解決方案!事實(shí)上,事情沒(méi)那么簡(jiǎn)單。

在設(shè)計(jì)和應(yīng)用DNN到一個(gè)特定的問(wèn)題上可能會(huì)遇到很多挑戰(zhàn)。為了達(dá)到現(xiàn)實(shí)世界應(yīng)用所需的性能標(biāo)準(zhǔn),對(duì)數(shù)據(jù)準(zhǔn)備,網(wǎng)絡(luò)設(shè)計(jì),訓(xùn)練和推斷等各個(gè)階段的正確設(shè)計(jì)和執(zhí)行至關(guān)重要。

今天給大家講講DNN(深度神經(jīng)網(wǎng)絡(luò))在訓(xùn)練過(guò)程中遇到的一些問(wèn)題,然后我們應(yīng)該怎么去注意它,并學(xué)會(huì)怎么去訓(xùn)練它。

1、數(shù)據(jù)集的準(zhǔn)備:

必須要保證大量、高質(zhì)量且?guī)в袦?zhǔn)確標(biāo)簽的數(shù)據(jù),沒(méi)有該條件的數(shù)據(jù),訓(xùn)練學(xué)習(xí)很困難的(但是最近我看了以為作者寫的一篇文章,說(shuō)明不一定需要大量數(shù)據(jù)集,也可以訓(xùn)練的很好,有空和大家來(lái)分享其思想---很厲害的想法);

2、數(shù)據(jù)預(yù)處理:

這個(gè)不多說(shuō),就是0均值和1方差化,其實(shí)還有很多方法;

3、Minibatch:

這個(gè)有時(shí)候還要根據(jù)你的硬件設(shè)備而定,一般建議用128,8這組,但是128,1也很好,只是效率會(huì)非常慢,注意的是:千萬(wàn)不要用過(guò)大的數(shù)值,否則很容易過(guò)擬合;

4、梯度歸一化:

其實(shí)就是計(jì)算出來(lái)梯度之后,要除以Minibatch的數(shù)量,這個(gè)可以通過(guò)閱讀源碼得知(我之前有寫過(guò)SGD);

5、學(xué)習(xí)率:

① 一般都會(huì)有默認(rèn)的學(xué)習(xí)率,但是剛開始還是用一般的去學(xué)習(xí),然后逐漸的減小它;

② 一個(gè)建議值是0.1,適用于很多NN的問(wèn)題,一般傾向于小一點(diǎn);但是如果對(duì)于的大數(shù)據(jù),何凱明老師也說(shuō)過(guò),要把學(xué)習(xí)率調(diào)到很小,他說(shuō)0.00001都不為過(guò)(如果記得不錯(cuò),應(yīng)該是這么說(shuō)的);

③ 一個(gè)對(duì)于調(diào)度學(xué)習(xí)率的建議:如果在驗(yàn)證集上性能不再增加就讓學(xué)習(xí)率除以2或者5,然后繼續(xù),學(xué)習(xí)率會(huì)一直變得很小,到最后就可以停止訓(xùn)練了;

④ 很多人用的一個(gè)設(shè)計(jì)學(xué)習(xí)率的原則就是監(jiān)測(cè)一個(gè)比率(每次更新梯度的norm除以當(dāng)前weight的norm),如果這個(gè)比率在10e-3附近,且小于這個(gè)值,學(xué)習(xí)會(huì)很慢,如果大于這個(gè)值,那么學(xué)習(xí)很不穩(wěn)定,由此會(huì)帶來(lái)學(xué)習(xí)失敗。

6、驗(yàn)證集的使用:

使用驗(yàn)證集,可以知道什么時(shí)候開始降低學(xué)習(xí)率和什么時(shí)候停止訓(xùn)練;

7、weight初始化:

① 如果你不想繁瑣的話,直接用0.02*randn(num_params)來(lái)初始化,當(dāng)然別的值也可以去嘗試;

② 如果上面那個(gè)建議不太好使,那么就依次初始化每一個(gè)weight矩陣用init_scale / sqrt(layer_width) * randn,init_scale可以被設(shè)置為0.1或者1;

③ 初始化參數(shù)對(duì)結(jié)果的影響至關(guān)重要,要引起重視;

④ 在深度網(wǎng)絡(luò)中,隨機(jī)初始化權(quán)重,使用SGD的話一般處理的都不好,這是因?yàn)槌跏蓟臋?quán)重太小了。這種情況下對(duì)于淺層網(wǎng)絡(luò)有效,但是當(dāng)足夠深的時(shí)候就不行,因?yàn)閣eight更新的時(shí)候,是靠很多weight相乘的,越乘越小,類似梯度消失的意思。

8、RNN&&LSTM(這方面沒(méi)有深入了解,借用別人的意思):

如果訓(xùn)練RNN或者LSTM,務(wù)必保證gradient的norm被約束在15或者5(前提還是要先歸一化gradient),這一點(diǎn)在RNN和LSTM中很重要;

9、梯度檢查:

檢查下梯度,如果是你自己計(jì)算的梯度;如果使用LSTM來(lái)解決長(zhǎng)時(shí)依賴的問(wèn)題,記得初始化bias的時(shí)候要大一點(diǎn);

10、數(shù)據(jù)增廣:

盡可能想辦法多的擴(kuò)增訓(xùn)練數(shù)據(jù),如果使用的是圖像數(shù)據(jù),不妨對(duì)圖像做一點(diǎn)扭轉(zhuǎn),剪切,分割等操作來(lái)擴(kuò)充數(shù)據(jù)訓(xùn)練集合;

11、dropout:(先空著,下次我要單獨(dú)詳細(xì)講解Dropout)

12、評(píng)價(jià)結(jié)果:

評(píng)價(jià)最終結(jié)果的時(shí)候,多做幾次,然后平均一下他們的結(jié)果。

補(bǔ)充:

1、選擇優(yōu)化算法

傳統(tǒng)的隨機(jī)梯度下降算法雖然適用很廣,但并不高效,最近出現(xiàn)很多更靈活的優(yōu)化算法,例如Adagrad、RMSProp等,可在迭代優(yōu)化的過(guò)程中自適應(yīng)的調(diào)節(jié)學(xué)習(xí)速率等超參數(shù),效果更佳;

2、參數(shù)設(shè)置技巧

無(wú)論是多核CPU還是GPU加速,內(nèi)存管理仍然以字節(jié)為基本單元做硬件優(yōu)化,因此將參數(shù)設(shè)定為2的指數(shù)倍,如64,128,512,1024等,將有效提高矩陣分片、張量計(jì)算等操作的硬件處理效率;

3、正則優(yōu)化

除了在神經(jīng)網(wǎng)絡(luò)單元上添加傳統(tǒng)的L1/L2正則項(xiàng)外,Dropout更經(jīng)常在深度神經(jīng)網(wǎng)絡(luò)應(yīng)用來(lái)避免模型的過(guò)擬合。初始默認(rèn)的0.5的丟棄率是保守的選擇,如果模型不是很復(fù)雜,設(shè)置為0.2就可以;

4、其他方法

除了上述訓(xùn)練調(diào)優(yōu)的方法外,還有其他一些常用方法,包括:使用mini-batch learning方法、遷移訓(xùn)練學(xué)習(xí)、打亂訓(xùn)練集順序、對(duì)比訓(xùn)練誤差和測(cè)試誤差調(diào)節(jié)迭代次數(shù)、日志可視化觀察等等。

審核編輯 :李倩

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

原文標(biāo)題:基礎(chǔ)入門:“煉丹師”——深度學(xué)習(xí)訓(xùn)練技巧

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    循環(huán)神經(jīng)網(wǎng)絡(luò)的優(yōu)化技巧

    循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,簡(jiǎn)稱RNN)是種用于處理序列數(shù)據(jù)的深度學(xué)習(xí)模型,它能夠捕捉時(shí)間序列的動(dòng)態(tài)特征。然而,RNN
    的頭像 發(fā)表于 11-15 09:51 ?249次閱讀

    FPGA深度神經(jīng)網(wǎng)絡(luò)的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network, DNN)作為其核心算法之,圖像識(shí)別、語(yǔ)音識(shí)別、自然語(yǔ)
    的頭像 發(fā)表于 07-24 10:42 ?713次閱讀

    深度神經(jīng)網(wǎng)絡(luò)雷達(dá)系統(tǒng)的應(yīng)用

    深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN雷達(dá)系統(tǒng)的應(yīng)用近年來(lái)取得了顯著進(jìn)展,為雷達(dá)信號(hào)處理、目標(biāo)檢測(cè)、跟蹤以及識(shí)
    的頭像 發(fā)表于 07-15 11:09 ?764次閱讀

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

    脈沖神經(jīng)網(wǎng)絡(luò)(SNN, Spiking Neural Network)的訓(xùn)練個(gè)復(fù)雜但充滿挑戰(zhàn)的過(guò)程,它模擬了生物神經(jīng)元通過(guò)脈沖(或稱為尖
    的頭像 發(fā)表于 07-12 10:13 ?646次閱讀

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

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

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

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

    如何利用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 ?1925次閱讀

    神經(jīng)網(wǎng)絡(luò)前向傳播和反向傳播神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中的作用

    神經(jīng)網(wǎng)絡(luò)種強(qiáng)大的機(jī)器學(xué)習(xí)模型,它通過(guò)模擬人腦神經(jīng)元的連接方式來(lái)處理復(fù)雜的數(shù)據(jù)。神經(jīng)網(wǎng)絡(luò)的核心是前向傳播和反向傳播算法。本文將詳細(xì)介紹神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 11:11 ?1477次閱讀

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

    神經(jīng)網(wǎng)絡(luò)許多領(lǐng)域都有廣泛的應(yīng)用,如語(yǔ)音識(shí)別、圖像識(shí)別、自然語(yǔ)言處理等。然而,BP神經(jīng)網(wǎng)絡(luò)也存在一些問(wèn)題,如容易陷入局部最優(yōu)解、訓(xùn)練時(shí)間長(zhǎng)、
    的頭像 發(fā)表于 07-03 11:00 ?828次閱讀

    BP神經(jīng)網(wǎng)絡(luò)屬于DNN

    深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,簡(jiǎn)稱DNN)則是指具有多個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò),可以處理復(fù)雜的數(shù)據(jù)和任務(wù)。那么,BP神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 10:18 ?805次閱讀

    bp神經(jīng)網(wǎng)絡(luò)深度神經(jīng)網(wǎng)絡(luò)

    Network)有相似之處,但它們之間還是存在一些關(guān)鍵的區(qū)別。 、引言 神經(jīng)網(wǎng)絡(luò)種模擬人腦神經(jīng)元結(jié)構(gòu)的計(jì)算模型,它由大量的
    的頭像 發(fā)表于 07-03 10:14 ?872次閱讀

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

    訓(xùn)練過(guò)程以及應(yīng)用場(chǎng)景。 1. 卷積神經(jīng)網(wǎng)絡(luò)的基本概念 1.1 卷積神經(jīng)網(wǎng)絡(luò)的定義 卷積神經(jīng)網(wǎng)絡(luò)種前饋
    的頭像 發(fā)表于 07-03 09:15 ?436次閱讀

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

    處理具有空間層次結(jié)構(gòu)的數(shù)據(jù)時(shí)表現(xiàn)出色。本文將從卷積神經(jīng)網(wǎng)絡(luò)的歷史背景、基本原理、網(wǎng)絡(luò)結(jié)構(gòu)、訓(xùn)練過(guò)程以及應(yīng)用領(lǐng)域等方面進(jìn)行詳細(xì)闡述,以期全面解析這重要算法。
    的頭像 發(fā)表于 07-02 18:27 ?916次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本原理、結(jié)構(gòu)及訓(xùn)練過(guò)程

    、訓(xùn)練過(guò)程以及應(yīng)用場(chǎng)景。 、卷積神經(jīng)網(wǎng)絡(luò)的基本原理 卷積運(yùn)算 卷積運(yùn)算是卷積神經(jīng)網(wǎng)絡(luò)的核心,它是種數(shù)學(xué)運(yùn)算,用于提取圖像
    的頭像 發(fā)表于 07-02 14:21 ?2678次閱讀

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

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