日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

随时间的反向传播算法 BPTT

發布時間:2024/4/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 随时间的反向传播算法 BPTT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文轉自:https://www.cntofu.com/book/85/dl/rnn/bptt.md

隨時間反向傳播(BPTT)算法


先簡單回顧一下RNN的基本公式:

?

st=tanh(Uxt+Wst?1)st=tanh?(Uxt+Wst?1)

?

?

y^t=softmax(Vst)y^t=softmax(Vst)

?

RNN的損失函數定義為交叉熵損失:

?

Et(yt,y^t)=?ytlogy^tEt(yt,y^t)=?ytlog?y^t

?

?

E(y,y^)=tEt(yt,y^t)=?tytlogy^tE(y,y^)=∑tEt(yt,y^t)=?∑tytlog?y^t

?

?

ytyt

是時刻t的樣本實際值,?

y^ty^t

是預測值,我們通常把整個序列作為一個訓練樣本,所以總的誤差就是每一步的誤差的加和。我們的目標是計算損失函數的梯度,然后通過梯度下降方法學習出所有的參數U, V, W。比如:

?E?W=t?Et?W?E?W=∑t?Et?W

?

為了更好理解BPTT我們來推導一下公式:

前向 前向傳播1:

?

a0=x0?ua0=x0?u

?

?

b0=s?1?wb0=s?1?w

?

?

z0=a0+b0+kz0=a0+b0+k

?

?

s0=func(z0)s0=func(z0)

?(

funcfunc

?是 sig或者tanh)

?

前向 前向傳播2:

?

a1=x1?ua1=x1?u

?

?

b1=s0?wb1=s0?w

?

?

z1=a1+b1+kz1=a1+b1+k

?

?

s1=func(z1)s1=func(z1)

(

funcfunc

?是 sig 或者tanh)

?

?

q=s1?v1q=s1?v1

?

$$z_t = ux_t + ws_{t-1} + k$$

?

st=func(zt)st=func(zt)

?

輸出 層:

?

o=func(q)o=func(q)

(

funcfunc

?是 softmax)

?

?

E=func(o)E=func(o)

(

funcfunc

?是 x-entropy)

?

下面 是U的推導

?

?E/?u=?E/?u1+?E/?u0?E/?u=?E/?u1+?E/?u0

?

?

?E/?u1=?E/?o??o/?q??q/?s1??s1/?z1??z1/?a1??a1/?u1?E/?u1=?E/?o??o/?q??q/?s1??s1/?z1??z1/?a1??a1/?u1

?

?

?E/?u0=?E/?o??o/?q??q/?s1??s1/?z1??z1/?b1??b1/?s0??s0/dz0??z0/?a0??a0/?u0?E/?u0=?E/?o??o/?q??q/?s1??s1/?z1??z1/?b1??b1/?s0??s0/dz0??z0/?a0??a0/?u0

?

?

?E/?u=?E/?o??o/?q?v1??s1/?z1?((1?x1)+(1?w1??s0/?z0?1?x0))?E/?u=?E/?o??o/?q?v1??s1/?z1?((1?x1)+(1?w1??s0/?z0?1?x0))

?

?

?E/?u=?E/?o??o/?q?v1??s1/?z1?(x1+w1??s0/?z0?x0)?E/?u=?E/?o??o/?q?v1??s1/?z1?(x1+w1??s0/?z0?x0)

?

W參數的推導如下

?

?E/?w=?E/?o??o/?q?v1??s1/?z1?(s0+w1??s0/?z0?s?1)?E/?w=?E/?o??o/?q?v1??s1/?z1?(s0+w1??s0/?z0?s?1)

?

總結

?

?L?u=t?L?ut=?L?o?o?s1?s1?u1+?L?o?o?s1?s1?s0?s0?u0?L?u=∑t?L?ut=?L?o?o?s1?s1?u1+?L?o?o?s1?s1?s0?s0?u0

?

?

?L?w=t?L?wt=?L?o?o?s1?s1?w1+?L?o?o?s1?s1?s0?s0?w0?L?w=∑t?L?wt=?L?o?o?s1?s1?w1+?L?o?o?s1?s1?s0?s0?w0

?

?

xtxt

是時間t的輸入

?

轉載于:https://www.cnblogs.com/carlber/p/11084932.html

總結

以上是生活随笔為你收集整理的随时间的反向传播算法 BPTT的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。