chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

2a37_sessdw ? 來源:機器學(xué)習(xí)實驗室 ? 作者:louwill ? 2021-08-23 09:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

原始結(jié)構(gòu)的RNN還不夠處理較為復(fù)雜的序列建模問題,它存在較為嚴重的梯度消失問題,最直觀的現(xiàn)象就是隨著網(wǎng)絡(luò)層數(shù)增加,網(wǎng)絡(luò)會逐漸變得無法訓(xùn)練。長短期記憶網(wǎng)絡(luò)(Long Short Time Memory,LSTM)正是為了解決梯度消失問題而設(shè)計的一種特殊的RNN結(jié)構(gòu)。

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

在此前的普通深度神經(jīng)網(wǎng)絡(luò)和深度卷積網(wǎng)絡(luò)的講解時,圖1就是一個簡單的兩層普通網(wǎng)絡(luò),但當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)變深時,神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時碰到梯度爆炸或者梯度消失的情況。那么什么是梯度爆炸和梯度消失呢?它們又是怎樣產(chǎn)生的?

鑒于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練機制,不管是哪種類型的神經(jīng)網(wǎng)絡(luò),其訓(xùn)練都是通過反向傳播計算梯度來實現(xiàn)權(quán)重更新的。通過設(shè)定損失函數(shù),建立損失函數(shù)關(guān)于各層網(wǎng)絡(luò)輸入輸出的梯度計算,當(dāng)網(wǎng)絡(luò)訓(xùn)練開動起來的時候,系統(tǒng)便按照反向傳播機制來不斷更新網(wǎng)絡(luò)各層參數(shù)直到停止訓(xùn)練。但當(dāng)網(wǎng)絡(luò)層數(shù)加深時,這個訓(xùn)練系統(tǒng)并不是很穩(wěn),經(jīng)常會出現(xiàn)一些問題。其中梯度爆炸和梯度消失便是較為嚴重的兩個問題。

所謂梯度爆炸就是在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,梯度變得越來越大以使得神經(jīng)網(wǎng)絡(luò)權(quán)重得到瘋狂更新的情形,這種情況很容易發(fā)現(xiàn),因為梯度過大,計算更新得到的參數(shù)也會大到崩潰,這時候我們可能看到更新的參數(shù)值中有很多的NaN,這說明梯度爆炸已經(jīng)使得參數(shù)更新出現(xiàn)數(shù)值溢出。這便是梯度爆炸的基本情況。

然后是梯度消失。與梯度爆炸相反的是,梯度消失就是在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中梯度變得越來越小以至于梯度得不到更新的一種情形。當(dāng)網(wǎng)絡(luò)加深時,網(wǎng)絡(luò)深處的誤差很難因為梯度的減小很難影響到前層網(wǎng)絡(luò)的權(quán)重更新,一旦權(quán)重得不到有效的更新計算,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練機制也就失效了。

為什么神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中梯度怎么就會變得越來越大或者越來越?。靠梢杂帽緯谝恢v的神經(jīng)網(wǎng)絡(luò)反向傳播推導(dǎo)公式為例來解釋。

0a52f092-03ac-11ec-9bcf-12bb97331649.png

式(11.1)~-式(11.8)是一個兩層網(wǎng)絡(luò)的反向傳播參數(shù)更新公式推導(dǎo)過程。離輸出層相對較遠的是輸入到隱藏層的權(quán)重參數(shù),可以看到損失函數(shù)對于隱藏層輸出輸入到隱藏層權(quán)重和偏置的梯度計算公式,一般而言都會轉(zhuǎn)換從下一層的權(quán)重乘以激活函數(shù)求導(dǎo)后的式子。如果激活函數(shù)求導(dǎo)后的結(jié)果和下一層權(quán)重的乘積大于1或者說遠遠大于1的話,在網(wǎng)絡(luò)層數(shù)加深時,層層遞增的網(wǎng)絡(luò)在做梯度更新時往往就會出現(xiàn)梯度爆炸的情況。如果激活函數(shù)求導(dǎo)和下一層權(quán)重的乘積小于1的話,在網(wǎng)絡(luò)加深時,淺層的網(wǎng)絡(luò)梯度計算結(jié)果會越來越小往往就會出現(xiàn)梯度消失的情況。所以可是說是反向傳播的機制本身造就梯度爆炸和梯度消失這兩種不穩(wěn)定因素。例如,一個100層的深度神經(jīng)網(wǎng)絡(luò),假設(shè)每一層的梯度計算值都為1.1,經(jīng)過由輸出到輸入的反向傳播梯度計算可能最后的梯度值就變成= 13780.61234,這是一個極大的梯度值了,足以造成計算溢出問題。若是每一層的梯度計算值為 0.9,反向傳播輸入層的梯度計算值則可能為= 0.000026561398,足夠小到造成梯度消失。本例只是一個簡化的假設(shè)情況,實際反向傳播計算要更為復(fù)雜。

所以總體來說,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中梯度過大或者過小引起的參數(shù)過大過小都會導(dǎo)致神經(jīng)網(wǎng)絡(luò)失效,那我們的目的就是要讓梯度計算回歸到正常的區(qū)間范圍,不要過大也不要過小,這也是解決這兩個問題的一個思路。

那么如何解決梯度爆炸和梯度消失問題?梯度爆炸較為容易處理,在實際訓(xùn)練的時候?qū)μ荻冗M行修剪即可,但是梯度消失的處理就比較麻煩了,由上述的分析我們知道梯度消失一個關(guān)鍵在于激活函數(shù)。Sigmoid激活函數(shù)本身就更容易產(chǎn)生這種問題,所以一般而言,我們換上更加魯棒的ReLu激活函數(shù)以及給神經(jīng)網(wǎng)絡(luò)加上歸一化激活函數(shù)層(BN層),一般問題都能得到很好的解決,但也不是任何情形下都管用,例如,RNN網(wǎng)絡(luò),具體在下文中我們再做集中探討。

以上便是梯度爆炸和梯度消失這兩種問題的基本解釋,下面我們回歸正題,來談?wù)劚疚牡闹鹘恰狶STM。

LSTM:讓RNN具備更好的記憶機制

前面說了很多鋪墊,全部都是為了來講LSTM。梯度爆炸和梯度消失,普通神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)有,那么循環(huán)神經(jīng)網(wǎng)絡(luò)RNN也有嗎?必須有。而且梯度消失和梯度爆炸的問題之于RNN來說傷害更大。當(dāng)RNN網(wǎng)絡(luò)加深時,因為梯度消失的問題使得前層的網(wǎng)絡(luò)權(quán)重得不到更新,RNN就會在一定程度上丟失記憶性。為此,在傳統(tǒng)的RNN網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上,研究人員給出一些著名的改進方案,因為這些改進方案都脫離不了經(jīng)典的RNN架構(gòu),所以一般來說我們也稱這些改進方案為RNN變種網(wǎng)絡(luò)。比較著名的就是GRU(循環(huán)門控單元)和LSTM(長短期記憶網(wǎng)絡(luò))。GRU和LSTM二者結(jié)構(gòu)基本一致,但有部分不同的地方,本講以更有代表性的LSTM來進行詳解。

在正式深入LSTM的技術(shù)細節(jié)之前,先要明確幾點。第一,LSTM的本質(zhì)是一種RNN網(wǎng)絡(luò)。第二,LSTM在傳統(tǒng)的RNN結(jié)構(gòu)上做了相對復(fù)雜的改進,這些改進使得LSTM相對于經(jīng)典RNN能夠很好的解決梯度爆炸和梯度消失問題,讓循環(huán)神經(jīng)網(wǎng)絡(luò)具備更強更好的記憶性能,這也是LSTM的價值所在。那咱們就來重點看一下LSTM的技術(shù)細節(jié)。

咱們先擺一張經(jīng)典RNN結(jié)構(gòu)與LSTM結(jié)構(gòu)對比圖,這樣能夠有一個宏觀的把握,然后再針對LSTM結(jié)構(gòu)圖中各個部分進行拆解分析。圖2所示是標(biāo)準RNN結(jié)構(gòu),圖3所示是LSTM結(jié)構(gòu)。

0ae0b4a4-03ac-11ec-9bcf-12bb97331649.png

圖2 RNN結(jié)構(gòu)

0b0ffda4-03ac-11ec-9bcf-12bb97331649.png

圖3 LSTM結(jié)構(gòu)

從圖3中可以看到,相較于RNN單元,LSTM單元要復(fù)雜許多。每個LSTM單元中包含了4個交互的網(wǎng)絡(luò)層,現(xiàn)在將LSTM單元放大,并標(biāo)注上各個結(jié)構(gòu)名稱,如圖4所示。

0b3e4380-03ac-11ec-9bcf-12bb97331649.png

圖4 LSTM單元

根據(jù)圖4,一個完整的LSTM單元可以用式(11.9)~(11.14)來表示,其中符號表示兩個向量合并。

0b5aacb4-03ac-11ec-9bcf-12bb97331649.png

現(xiàn)在我們將LSTM單元結(jié)構(gòu)圖進行分解,根據(jù)結(jié)構(gòu)圖和公式來逐模塊解釋LSTM。

1. 記憶細胞

如圖5紅色部分所示,可以看到在LSTM單元的最上面部分有一條貫穿的箭頭直線,這條直線由輸入到輸出,相較于RNN,LSTM提供了c作為記憶細胞輸入。記憶細胞提供了記憶的功能,在網(wǎng)絡(luò)結(jié)構(gòu)加深時仍能傳遞前后層的網(wǎng)絡(luò)信息。這樣貫穿的直線使得記憶信息在網(wǎng)絡(luò)各層之間保持下去很容易。

0b8d801c-03ac-11ec-9bcf-12bb97331649.png

圖5 LSTM記憶細胞

2. 遺忘門(Forget Gate)

遺忘門的計算公式如下:

0bb8b4a8-03ac-11ec-9bcf-12bb97331649.png

遺忘門的作用是要決定從記憶細胞c中是否丟棄某些信息,這個過程可以通過一個 Sigmoid函數(shù)來進行處理。遺忘門在整個結(jié)構(gòu)中的位置如圖11.6所示??梢钥吹?,遺忘門接受來自輸入和上一層隱狀態(tài)的值進行合并后加權(quán)計算處理。

3. 記憶細胞候選值和更新門

更新門(Update Gate)表示需要將什么樣的信息能存入記憶細胞中。除了計算更新門之外,還需要使用tanh計算記憶細胞的候選值。LSTM中更新門需要更加細心一點。記憶細胞候選值和更新門的計算公式如下:

0c2fd024-03ac-11ec-9bcf-12bb97331649.png

更新門和tanh在整個結(jié)構(gòu)中的位置如圖7所示。

0c5044ee-03ac-11ec-9bcf-12bb97331649.png

圖7 記憶細胞候選值和更新門

4. 記憶細胞更新

結(jié)合遺忘門、更新門、上一個單元記憶細胞值和記憶細胞候選值來共同決定和更新當(dāng)前細胞狀態(tài):

0c73d4ea-03ac-11ec-9bcf-12bb97331649.png

記憶細胞更新在LSTM整個結(jié)構(gòu)中位置如圖8所示:

0c9d7304-03ac-11ec-9bcf-12bb97331649.png

圖8 記憶細胞更新

5. 輸出門

LSTM 提供了單獨的輸出門(Output Gate)。計算公式如下:

0cc035f6-03ac-11ec-9bcf-12bb97331649.png

輸出門的位置如圖9所示。

0ce5e5d0-03ac-11ec-9bcf-12bb97331649.png

圖9 輸出門

以上便是完整的LSTM結(jié)構(gòu)。雖然復(fù)雜,但經(jīng)過逐步解析之后也就基本清晰了。LSTM 在自然語言處理、問答系統(tǒng)、股票預(yù)測等等領(lǐng)域都有著廣泛而深入的應(yīng)用。

責(zé)任編輯:haq

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

    關(guān)注

    42

    文章

    4830

    瀏覽量

    106917
  • LSTM
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    4310

原文標(biāo)題:深入理解LSTM

文章出處:【微信號:sessdw,微信公眾號:三星半導(dǎo)體互動平臺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    神經(jīng)網(wǎng)絡(luò)的初步認識

    日常生活中的智能應(yīng)用都離不開深度學(xué)習(xí),而深度學(xué)習(xí)則依賴于神經(jīng)網(wǎng)絡(luò)的實現(xiàn)。什么是神經(jīng)網(wǎng)絡(luò)?神經(jīng)網(wǎng)絡(luò)的核心思想是模仿生物
    的頭像 發(fā)表于 12-17 15:05 ?36次閱讀
    <b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的初步認識

    CNN卷積神經(jīng)網(wǎng)絡(luò)設(shè)計原理及在MCU200T上仿真測試

    數(shù)的提出很大程度的解決了BP算法在優(yōu)化深層神經(jīng)網(wǎng)絡(luò)時的梯度耗散問題。當(dāng)x&gt;0 時,梯度恒為1,無梯度耗散問題,收斂快;當(dāng)x&lt;0 時,該層的輸出為0。 CNN
    發(fā)表于 10-29 07:49

    NMSIS神經(jīng)網(wǎng)絡(luò)庫使用介紹

    NMSIS NN 軟件庫是一組高效的神經(jīng)網(wǎng)絡(luò)內(nèi)核,旨在最大限度地提高 Nuclei N 處理器內(nèi)核上的神經(jīng)網(wǎng)絡(luò)的性能并最??大限度地減少其內(nèi)存占用。 該庫分為多個功能,每個功能涵蓋特定類別
    發(fā)表于 10-29 06:08

    在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗

    本帖欲分享在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗。我們采用jupyter notebook作為開發(fā)IDE,以TensorFlow2為訓(xùn)練框架,目標(biāo)是訓(xùn)練一個手寫數(shù)字識別的神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 10-22 07:03

    液態(tài)神經(jīng)網(wǎng)絡(luò)(LNN):時間連續(xù)性與動態(tài)適應(yīng)性的神經(jīng)網(wǎng)絡(luò)

    1.算法簡介液態(tài)神經(jīng)網(wǎng)絡(luò)(LiquidNeuralNetworks,LNN)是一種新型的神經(jīng)網(wǎng)絡(luò)架構(gòu),其設(shè)計理念借鑒自生物神經(jīng)系統(tǒng),特別是秀麗隱桿線蟲的神經(jīng)結(jié)構(gòu),盡管這種微生物的
    的頭像 發(fā)表于 09-28 10:03 ?739次閱讀
    液態(tài)<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>(LNN):時間連續(xù)性與動態(tài)適應(yīng)性的<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>

    深度學(xué)習(xí)模型在傳感器數(shù)據(jù)處理中的應(yīng)用(二):LSTM

    序列數(shù)據(jù)時遇到的梯度消失梯度爆炸問題。標(biāo)準 RNN 在反向傳播過程中,由于鏈式法則的應(yīng)用,梯度可能會在多層傳播中指數(shù)級地減小(
    的頭像 發(fā)表于 02-20 10:48 ?1474次閱讀
    <b class='flag-5'>深度</b>學(xué)習(xí)模型在傳感器數(shù)據(jù)處理中的應(yīng)用(二):LSTM

    梯度科技推出DeepSeek智算一體機

    近日,梯度科技搭載DeepSeek大模型的智算一體機正式發(fā)布。該產(chǎn)品基于“國產(chǎn)服務(wù)器+國產(chǎn)GPU+自主算法”核心架構(gòu),搭載梯度科技人工智能應(yīng)用開發(fā)平臺,形成了軟硬一體解決方案。
    的頭像 發(fā)表于 02-17 09:53 ?1355次閱讀

    BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的比較

    BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)在多個方面存在顯著差異,以下是對兩者的比較: 一、結(jié)構(gòu)特點 BP神經(jīng)網(wǎng)絡(luò) : BP神經(jīng)網(wǎng)絡(luò)是一種多層的前饋神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 02-12 15:53 ?1386次閱讀

    如何優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率

    訓(xùn)練過程中發(fā)生震蕩,甚至無法收斂到最優(yōu)解;而過小的學(xué)習(xí)率則會使模型收斂速度緩慢,容易陷入局部最優(yōu)解。因此,正確設(shè)置和調(diào)整學(xué)習(xí)率對于訓(xùn)練高效、準確的神經(jīng)網(wǎng)絡(luò)模型至關(guān)重要。 二、學(xué)習(xí)率優(yōu)化算法 梯度下降法及其變種 : 標(biāo)準梯
    的頭像 發(fā)表于 02-12 15:51 ?1468次閱讀

    BP神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點分析

    BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network)作為一種常用的機器學(xué)習(xí)模型,具有顯著的優(yōu)點,同時也存在一些不容忽視的缺點。以下是對BP神經(jīng)網(wǎng)絡(luò)優(yōu)缺點的分析: 優(yōu)點
    的頭像 發(fā)表于 02-12 15:36 ?1637次閱讀

    什么是BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法

    神經(jīng)網(wǎng)絡(luò)(即反向傳播神經(jīng)網(wǎng)絡(luò))的核心,它建立在梯度下降法的基礎(chǔ)上,是一種適合于多層神經(jīng)元網(wǎng)絡(luò)的學(xué)習(xí)算法。該算法通過計算每層網(wǎng)絡(luò)的誤差,并將這
    的頭像 發(fā)表于 02-12 15:18 ?1330次閱讀

    BP神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)的關(guān)系

    BP神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)之間存在著密切的關(guān)系,以下是對它們之間關(guān)系的介紹: 一、BP神經(jīng)網(wǎng)絡(luò)的基本概念 BP神經(jīng)網(wǎng)絡(luò),即反向傳播神經(jīng)網(wǎng)絡(luò)(Ba
    的頭像 發(fā)表于 02-12 15:15 ?1385次閱讀

    BP神經(jīng)網(wǎng)絡(luò)的基本原理

    BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network)的基本原理涉及前向傳播和反向傳播兩個核心過程。以下是關(guān)于BP神經(jīng)網(wǎng)絡(luò)基本原理的介紹: 一、網(wǎng)絡(luò)結(jié)構(gòu) BP神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 02-12 15:13 ?1560次閱讀

    深度學(xué)習(xí)入門:簡單神經(jīng)網(wǎng)絡(luò)的構(gòu)建與實現(xiàn)

    深度學(xué)習(xí)中,神經(jīng)網(wǎng)絡(luò)是核心模型。今天我們用 Python 和 NumPy 構(gòu)建一個簡單的神經(jīng)網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò)由多個神經(jīng)元組成,
    的頭像 發(fā)表于 01-23 13:52 ?863次閱讀

    人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法

    在上一篇文章中,我們介紹了傳統(tǒng)機器學(xué)習(xí)的基礎(chǔ)知識和多種算法。在本文中,我們會介紹人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法,供各位老師選擇。 01 人工神經(jīng)網(wǎng)絡(luò) ? 人工神經(jīng)網(wǎng)絡(luò)模型之所
    的頭像 發(fā)表于 01-09 10:24 ?2301次閱讀
    人工<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的原理和多種<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>架構(gòu)方法