RNN 為什么不能直接反向傳播?為什么會(huì)出現(xiàn)梯度消失和梯度爆炸?

RNN應(yīng)該是目前用的比較多的技術(shù)框架 ,無論是NLP還是CV等領(lǐng)域,今天 我們就詳細(xì)的講解一下關(guān)于RNN的具體知識(shí)

1、RNN為什么不能直接反向傳播呢?

首先我們回顧一下普通的反向傳播,過程如下所示:

、、

我們?yōu)榱撕啽銜簳r(shí)不考慮激活函數(shù),我們可以用以下的鏈?zhǔn)椒▌t計(jì)算:


這個(gè)是非常簡單的,現(xiàn)在我們來看看RNN是什么樣子的:


這樣我們就不能直接求偏導(dǎo)了,如果我們還是按照上面那種方法求偏導(dǎo),試想以下,后面遞歸的w3變量將會(huì)是無窮多,因?yàn)閔也是遞歸的,如果要解決這個(gè)問題,必須將這個(gè)時(shí)間序列給拆開,如以下形式:


但是這種仍然存在一個(gè)毛病,我們需要求單個(gè)RNN的時(shí)候,就需要求所有先前時(shí)間步長的梯度和得到一個(gè)梯度,并且用梯度來更新RNN,素以這時(shí)間步數(shù)的增加,這種計(jì)算會(huì)變得非常的昂貴,于是提出來了截?cái)嗟幕谑录姆聪騻鞑ィ═BPTT),用來優(yōu)化遞歸的模型。這里可以參考以下文獻(xiàn),意思就是我們只計(jì)算倒數(shù)到t-T的時(shí)候就結(jié)束了。并沒有從一開始就計(jì)算導(dǎo)數(shù)。(簡而言之就是上面那個(gè)求和公式我不需要全部求和 我只求最近的一部分)

BPTT的限制

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容