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

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

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

梯度爆炸問(wèn)題的介紹和如何解決爆炸問(wèn)題詳細(xì)概述

深度學(xué)習(xí)實(shí)戰(zhàn) ? 2018-04-30 19:15 ? 次閱讀

最近在做一個(gè)文本檢測(cè)的項(xiàng)目,在訓(xùn)練的過(guò)程中遇到了很?chē)?yán)重的梯度爆炸情況,今天就來(lái)談?wù)勌荻缺ㄔ趺唇鉀Q。

首先我們要清楚,為什么會(huì)產(chǎn)生梯度爆炸。要知道就目前來(lái)說(shuō),我們一般都認(rèn)為深層的神經(jīng)網(wǎng)絡(luò)會(huì)比淺層的神經(jīng)網(wǎng)絡(luò)的表現(xiàn)要好,所以在處理一些較為復(fù)雜的任務(wù)的時(shí)候,人們往往會(huì)使用更深層次的神經(jīng)網(wǎng)絡(luò),而現(xiàn)在的大部分神經(jīng)網(wǎng)絡(luò)的權(quán)重更新都要依靠反向傳播。

那么,問(wèn)題來(lái)了。要知道權(quán)重的更新的公式是這樣的:

梯度爆炸問(wèn)題的介紹和如何解決爆炸問(wèn)題詳細(xì)概述

對(duì)于每個(gè)變量的更新,都要求梯度,也就是求鏈?zhǔn)狡珜?dǎo)。假如,我們想象一下,我們的模型處在一個(gè)很陡的陡坡上,那么在求梯度的時(shí)候,在網(wǎng)絡(luò)層上出現(xiàn)了指數(shù)型的遞增,也就是說(shuō),梯度爆炸了。

那么具體上是怎么樣的呢?我們來(lái)看下面這張圖:

梯度爆炸問(wèn)題的介紹和如何解決爆炸問(wèn)題詳細(xì)概述

可以看到,上面是我輸出的每一步的損失函數(shù)的值,損失值在指數(shù)型地增加。nan是not a number的意思,它表示無(wú)窮大的數(shù)或者無(wú)意義的數(shù)。遇到這個(gè)問(wèn)題的時(shí)候,我第一反應(yīng)是:是不是我學(xué)習(xí)率太大了。然后我調(diào)小了學(xué)習(xí)率,發(fā)現(xiàn)情況有所改善,但是到最后還是出現(xiàn)的梯度爆炸。然后我又思考,會(huì)不會(huì)是我網(wǎng)絡(luò)結(jié)構(gòu)有問(wèn)題啊,為了驗(yàn)證這問(wèn)題,我把batch size調(diào)為了1,固定輸入一張圖片,發(fā)現(xiàn)也是收斂到一定程度也出現(xiàn)了梯度爆炸的情況。那么我可以斷定了,是由于網(wǎng)絡(luò)層數(shù)過(guò)多導(dǎo)致的梯度爆炸的問(wèn)題。

問(wèn)題找到了,那我面臨了兩個(gè)選擇:一是降低網(wǎng)絡(luò)層數(shù),二是做梯度裁剪??紤]到了數(shù)據(jù)的復(fù)雜性,我選擇了后者。好,那就來(lái)說(shuō)說(shuō)梯度裁剪是什么?如何做梯度裁剪。

梯度裁剪

梯度裁剪是指在一個(gè)變量計(jì)算的梯度過(guò)大的情況下,人為地將梯度控制在一定的范圍以內(nèi)。

梯度爆炸問(wèn)題的介紹和如何解決爆炸問(wèn)題詳細(xì)概述

那直接來(lái)看一下代碼實(shí)現(xiàn)。

optimizer = tf.train.GradientDescentOptimizer(learning_rate)params = tf.trainable_variables()gradients = tf.gradients(loss, params)clipped_gradients, norm = tf.clip_by_global_norm(gradients, clip_norm)optimizer_op = optimizer.apply_gradients(zip(clipped_gradients, params), global_step)

你只要設(shè)置里面的clip_norm就可以了,那么設(shè)置多少合適呢?

梯度爆炸問(wèn)題的介紹和如何解決爆炸問(wèn)題詳細(xì)概述

t_list在這里是所有梯度的張量,然后可以看下它是怎么算的。如果global_norm

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4733

    瀏覽量

    100417
  • 梯度
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    10300

原文標(biāo)題:項(xiàng)目實(shí)戰(zhàn) | 實(shí)戰(zhàn)中如何解決梯度爆炸的問(wèn)題

文章出處:【微信號(hào):gh_a204797f977b,微信公眾號(hào):深度學(xué)習(xí)實(shí)戰(zhàn)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    電視機(jī)顯像管為什么能爆炸傷人

    電視機(jī)爆炸傷人的事件時(shí)有發(fā)生,南方某省曾發(fā)生一次爆炸傷亡7人的事件。多年來(lái)無(wú)合理解釋。火調(diào)王工認(rèn)為:電視機(jī)大威力爆炸的原因是顯像管內(nèi)部電極間發(fā)生了電弧,電弧高溫使電極物質(zhì)蒸發(fā),顯像管內(nèi)的氣壓由負(fù)壓
    發(fā)表于 01-19 10:12

    電容爆炸

    電容過(guò)壓爆炸,該如何換電容?各種型號(hào)都不知道怎么選
    發(fā)表于 04-09 19:40

    格氏鋰電池爆炸了!?。?b class='flag-5'>爆炸了?。。?/a>

    `慎用格氏鋰電池?。?!慎用山寨充電器?。?!格氏鋰電池充電過(guò)程中爆炸了!??!一聲巨響?。?!屋子里全是濃煙?。?!幸運(yùn)的沒(méi)有受傷!??!不會(huì)在用格式了!??!`
    發(fā)表于 08-14 10:22

    沖擊、碰撞、爆炸、跌落力測(cè)量系統(tǒng)介紹

    本帖最后由 123559792 于 2017-8-30 14:06 編輯 沖擊、碰撞、爆炸、跌落力測(cè)量系統(tǒng)介紹,包括采集、傳感器、軟件等全面介紹。
    發(fā)表于 08-28 17:06

    電解電容爆炸的原因及措施

    電解電容內(nèi)有電極、介質(zhì)材料、電解液,根據(jù)其結(jié)構(gòu)與可能的工作條件,電解電容爆炸的原因分析如下:1、電解液受熱會(huì)膨脹,當(dāng)膨脹到一定程度就會(huì)撐開(kāi)電容的外殼漏出來(lái),這就是俗稱(chēng)的漏液。2、當(dāng)溫度上升速度較慢
    發(fā)表于 06-03 22:27

    電解電容爆炸的原因分析

    電解電容內(nèi)有電極、介質(zhì)材料、電解液,根據(jù)其結(jié)構(gòu)與可能的工作條件,電解電容爆炸的原因分析如下:1、電解液受熱會(huì)膨脹,當(dāng)膨脹到一定程度就會(huì)撐開(kāi)電容的外殼漏出來(lái),這就是俗稱(chēng)的漏液。2、當(dāng)溫度上升速度較慢
    發(fā)表于 07-16 04:20

    零基礎(chǔ)快速制作爆炸圖?試一試浩辰3D軟件!

    爆炸圖的介紹,關(guān)于爆炸圖的更多詳細(xì)功能,會(huì)在后期的文章中不斷推送。想GET更多3D繪圖技巧嗎?那趕緊關(guān)注我吧!
    發(fā)表于 09-17 17:39

    電容為什么會(huì)爆炸?如何防止?

    什么是電解電容電容為什么會(huì)爆炸?如何防止?電解電容串聯(lián)解析
    發(fā)表于 03-16 08:25

    鉛酸電池會(huì)爆炸嗎_鉛酸電池爆炸的原因

    很多人都以為鉛酸電池不會(huì)爆炸,小編特意咨詢了一下維修鉛酸電池的老師傅,據(jù)老師傅介紹:和鋰電池相比,鉛酸電池的安全性還是非常高,出現(xiàn)爆炸的現(xiàn)象非常少,但目前市場(chǎng)競(jìng)爭(zhēng)激烈,一些不良的商家為了降低電池成本,采用劣質(zhì)的極板,極容易造成短
    發(fā)表于 08-20 11:17 ?13.3w次閱讀

    電動(dòng)車(chē)鋰電池爆炸原因_怎么防止電動(dòng)車(chē)鋰電池爆炸

    本文首先分析了電動(dòng)車(chē)電池壽命短的原因,其次介紹了電動(dòng)車(chē)鋰電池爆炸原因,最后介紹了防止電動(dòng)車(chē)鋰電池爆炸注意事項(xiàng)。
    發(fā)表于 03-17 11:03 ?5.1w次閱讀

    深度神經(jīng)網(wǎng)絡(luò)的困擾 梯度爆炸梯度消失

    ,LSTM)正是為了解決梯度消失問(wèn)題而設(shè)計(jì)的一種特殊的RNN結(jié)構(gòu)。 深度神經(jīng)網(wǎng)絡(luò)的困擾:梯度爆炸梯度消失 在此前的普通深度神經(jīng)網(wǎng)絡(luò)和深度卷積網(wǎng)絡(luò)的講解時(shí),圖1就是一個(gè)簡(jiǎn)單的兩層普通網(wǎng)
    的頭像 發(fā)表于 08-23 09:12 ?4467次閱讀
    深度神經(jīng)網(wǎng)絡(luò)的困擾 <b class='flag-5'>梯度</b><b class='flag-5'>爆炸</b>與<b class='flag-5'>梯度</b>消失

    電容會(huì)爆炸嗎 電容在什么情況下會(huì)爆炸

    電容會(huì)爆炸嗎 電容在什么情況下會(huì)爆炸? 電容是電子元件中常見(jiàn)的一種,它主要用于電路中的儲(chǔ)能和濾波等功能。但是,在某些情況下,電容也會(huì)出現(xiàn)一些比較危險(xiǎn)的事故,如爆炸等。本文將詳細(xì)
    的頭像 發(fā)表于 09-04 15:43 ?1.1w次閱讀

    電容爆炸的原因有哪些?

    詳細(xì)介紹這些原因。 1. 過(guò)壓 在正常工作范圍內(nèi)操作的電容器可以承受一定電壓,但如果電壓超過(guò)了它們的額定值,那么它們就有可能爆炸。過(guò)壓可能會(huì)導(dǎo)致電場(chǎng)過(guò)于強(qiáng)烈,使電容器內(nèi)部的電介質(zhì)無(wú)法承受,從而導(dǎo)致電容器失效。這種情
    的頭像 發(fā)表于 09-07 15:58 ?1.1w次閱讀

    什么是電池的爆炸?怎樣預(yù)防電池爆炸

    什么是電池的爆炸?怎樣預(yù)防電池爆炸? 電池的爆炸是指電池在使用或處理過(guò)程中發(fā)生異常爆炸情況,導(dǎo)致嚴(yán)重的人員傷亡和物質(zhì)損失。一般來(lái)說(shuō),電池爆炸
    的頭像 發(fā)表于 11-06 10:56 ?1341次閱讀

    電容器爆炸的3個(gè)常見(jiàn)原因 當(dāng)電容器爆炸時(shí)應(yīng)該怎么辦

    電容器爆炸的3個(gè)常見(jiàn)原因 當(dāng)電容器爆炸時(shí)應(yīng)該怎么辦 電容器是一種用于存儲(chǔ)電荷和能量的設(shè)備,但由于各種原因,電容器爆炸是一種可能發(fā)生的危險(xiǎn)情況。本文將詳細(xì)
    的頭像 發(fā)表于 12-20 17:05 ?4375次閱讀