基于梯度爆炸的解決方法:clip gradient
1. 梯度爆炸的影響
在一個(gè)只有一個(gè)隱藏節(jié)點(diǎn)的網(wǎng)絡(luò)中,損失函數(shù)和權(quán)值w偏置b構(gòu)成error surface,其中有一堵墻,如下所示
損失函數(shù)每次迭代都是每次一小步,但是當(dāng)遇到這堵墻時(shí),在墻上的某點(diǎn)計(jì)算梯度,梯度會(huì)瞬間增大,指向某處不理想的位置。如果我們使用縮放,可以把誤導(dǎo)控制在可接受范圍內(nèi),如虛線(xiàn)箭頭所示
2. 解決梯度爆炸問(wèn)題的方法
通常會(huì)使用一種叫”clip gradients “的方法. 它能有效地權(quán)重控制在一定范圍之內(nèi).
算法步驟如下。
首先設(shè)置一個(gè)梯度閾值:clip_gradient
在后向傳播中求出各參數(shù)的梯度,這里我們不直接使用梯度進(jìn)去參數(shù)更新,我們求這些梯度的l2范數(shù)
然后比較梯度的l2范數(shù)||g||與clip_gradient的大小
如果前者大,求縮放因子clip_gradient/||g||, 由縮放因子可以看出梯度越大,則縮放因子越小,這樣便很好地控制了梯度的范圍
最后將梯度乘上縮放因子便得到最后所需的梯度
3. 有無(wú)clip_gradient在GRU模型中的結(jié)果比較
無(wú)clip_gradient
可以很清楚地發(fā)現(xiàn)在2000次迭代出發(fā)生了梯度爆炸,最終影響了訓(xùn)練的效果。
有clip_gradient
可以發(fā)現(xiàn)clip_gradient在前期有效了控制了梯度爆炸的影響,使得最終的loss能下降到滿(mǎn)意的結(jié)果
以上這篇基于梯度爆炸的解決方法:clip gradient就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 使用while寫(xiě)猜年齡小游戲過(guò)程解析
這篇文章主要介紹了python 使用while寫(xiě)猜年齡小游戲過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10Python +Selenium解決圖片驗(yàn)證碼登錄或注冊(cè)問(wèn)題(推薦)
這篇文章主要介紹了Python Selenium解決圖片驗(yàn)證碼登錄或注冊(cè)問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02Python基礎(chǔ)之字符串操作常用函數(shù)集合
這篇文章主要介紹了Python基礎(chǔ)之字符串操作常用函數(shù)集合,需要的朋友可以參考下2020-02-02Python如何統(tǒng)計(jì)函數(shù)調(diào)用的耗時(shí)
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)統(tǒng)計(jì)函數(shù)調(diào)用的耗時(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04python中設(shè)置超時(shí)跳過(guò),超時(shí)退出的方式
今天小編就為大家分享一篇python中設(shè)置超時(shí)跳過(guò),超時(shí)退出的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12使用python爬蟲(chóng)獲取黃金價(jià)格的核心代碼
這篇文章主要介紹了利用python爬蟲(chóng)獲取黃金價(jià)格,需要的朋友可以參考下2018-06-06使用Python實(shí)現(xiàn)圖像有效壓縮的方法
在數(shù)字時(shí)代,圖像作為信息傳遞的重要媒介,在網(wǎng)頁(yè)設(shè)計(jì)、移動(dòng)應(yīng)用和多媒體制作中扮演著不可或缺的角色,本文將詳細(xì)介紹如何使用Python,一個(gè)功能強(qiáng)大且易于學(xué)習(xí)的編程語(yǔ)言,來(lái)實(shí)現(xiàn)圖像的有效壓縮,感興趣的朋友可以參考下2024-03-03