GRU神經網絡

轉自:http://blog.csdn.net/wangyangzhizhou/article/details/77332582

前面已經詳細講了LSTM神經網絡(文末有鏈接回去),接着往下講講LSTM的一個很流行的變體。

GRU是什麼

GRU即Gated Recurrent Unit。前面說到爲了克服RNN無法很好處理遠距離依賴而提出了LSTM,而GRU則是LSTM的一個變體,當然LSTM還有有很多其他的變體。GRU保持了LSTM的效果同時又使結構更加簡單,所以它也非常流行。

GRU模型

回顧一下LSTM的模型,LSTM的重複網絡模塊的結構很複雜,它實現了三個門計算,即遺忘門、輸入門和輸出門。

這裏寫圖片描述

而GRU模型如下,它只有兩個門了,分別爲更新門和重置門,即圖中的ztrt。更新門用於控制前一時刻的狀態信息被帶入到當前狀態中的程度,更新門的值越大說明前一時刻的狀態信息帶入越多。重置門用於控制忽略前一時刻的狀態信息的程度,重置門的值越小說明忽略得越多。

這裏寫圖片描述

GRU向前傳播

根據前面GRU模型圖來一步步看他是怎麼向前傳播的,根據圖不難得到以下式子: 

rt=σ(Wr[ht1,xt])

zt=σ(Wz[ht1,xt])

h~t=tanh(Wh~[rtht1,xt])

ht=(1zt)ht1+zth~t

yt=σ(Woht)

其中[]表示兩個向量相連接,*表示矩陣元素相乘。

GRU的訓練

從前面的公式中可以看到需要學習的參數就是WrWzWhWo那些權重參數,其中前三個權重都是拼接的,所以在學習時需要分割出來,即

Wr=Wrx+Wrh

Wz=Wzx+Wzh

Wh~=Wh~x+Wh~h

輸出層的輸入yit=Woh,輸出爲yot=σ(yit)

設某時刻的損失函數爲Et=12(ydyot)2,則某樣本的損失爲

E=Tt=1Et

與前面LSTM網絡類似,最終可以推出

EWo=δy,tht

EWzx=δz,txt

EWzh=δz,tht1

EWh~x=δtxt

EWh~h=δt(rtht1)

EWrx=δr,txt

EWrh=δr,tht1

δy,t=(ydyot)σ

δh,t=δy,tWo+δz,t+1Wzh+δt+1Wh~hrt+1+δh,t+1Wrh+δh,t+1(1zt+1)

δz,t=δt,h(h~tht1)σ

δt=δh,tztϕ

δr,t=ht1[(δh,tztϕ)Wh~h]σ

以下是廣告相關閱讀

========廣告時間========

公衆號的菜單已分爲“分佈式”、“機器學習”、“深度學習”、“NLP”、“Java深度”、“Java併發核心”、“JDK源碼”、“Tomcat內核”等,可能有一款適合你的胃口。

鄙人的新書《Tomcat內核設計剖析》已經在京東銷售了,有需要的朋友可以購買。感謝各位朋友。

爲什麼寫《Tomcat內核設計剖析》

=========================

相關閱讀:

LSTM神經網絡

循環神經網絡

卷積神經網絡

機器學習之神經網絡

機器學習之感知器

歡迎關注:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章