循環神經網絡

本文只是簡單的說明一下RNN的結構,不涉及RNN的發展歷史

一般的神經網絡,比如前饋神經網絡,其特點是:

                  1  共有輸入層,隱層,輸出層3層;

                  2  輸入層的輸入與時間並無關係

                       隱層的每一層的神經元彼此之間並不相連

                       輸出層的輸出是由所有的輸入層以及網絡架構決定的,與時間無關

而循環神經網絡恰恰相反,即:

                 1   隱層之間的節點不是相互獨立而是有連接的,且隱層的輸入不僅包括輸入層的輸出,還包括上一時刻隱藏層的輸出

                 2   而且輸入層進行輸入後,而是隨時間進行變化進行相應的計算,同時每次計算都會產生一個輸出,即就是輸出也是隨時間變化的

二者對比如下:左邊爲一個簡單的神經網絡結構圖,右邊則爲RNN結構圖

                     

                      簡單的神經網絡                                                                                                                      循環神經網絡

看起來循環神經網絡很複雜,我們可以循環神經網絡進行展開:

                                                                    

                                             參數意義:o表示輸出,x爲輸入,s爲隱層,U,V,W均爲權重

那麼,瞭解了RNN的結構,我們還需要知道怎麼進行操作:

            如上圖所示,令X = {x1,x2,x3,......xt,xt+1,......}表示輸入;令 O={o1,o2,.......ot,ot+1,......}表示輸出;令S={s1,s2,......st,st+1,......}表示隱層的神經元的狀態

                                    U表示輸入層與隱層之間的權重,W表示隱層自身的權重,V表示隱層與輸出層之間的權重

           X t 表示X在第 t 步的輸入,由上圖可以知道X i 是按照 i 從左向右由小向大依次作爲輸入的;

           那麼S在 t 時刻的狀態由公式(1)決定:            S(t) = f [S(t-1) * W + X(t) *U + b]    (1)      

                   其中 f 爲激活函數,b爲偏置

           注意 W,U,V三個權重在所有時刻都是共享的

           輸出層:O(t) = softmax( V * S(t));

          

以上便爲循環神經神經網絡的基本結構。本文並沒有接受相應的算法,只是簡單的對循環神經網絡的結構做了個瞭解,若有不足,懇請指正。


相關原理來源:  http://blog.csdn.net/heyongluoyao8/article/details/48636251

                              https://zhuanlan.zhihu.com/p/22266022

                              http://blog.csdn.net/u010751535/article/details/54044222

                             



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