1. 程式人生 > >第五週:迴圈神經網路

第五週:迴圈神經網路

# 第五週:迴圈神經網路 ## 視訊學習 ### 緒論 #### 1. 迴圈神經網路的應用 語音問答、視覺問答、機器翻譯、股票預測、作詞機、作詩、仿寫論文及程式碼、**影象理解** #### 2. 迴圈神經網路 vs 卷積神經網路 - RNN核心問題:上下文關係(時序) - 迴圈神經網路與卷積神經網路的不同 - 傳統神經網路、卷積神經網路,輸入和輸出之間是相互獨立的 - RNN可以更好的處理具有時序關係的任務 - RNN通過其迴圈結構引入“記憶”的概念 - 輸出不僅依賴於輸入,還依賴“記憶” - 將同一個結構迴圈利用 ### 基本組成結構 - 隱層狀態h可以被看作是“記憶”,因為它包含了之前時間點上的相關資訊。 - 輸出y不僅由當前的輸入所決定,還會考慮到之前的“記憶”。由兩者共同決定。 - RNN在不同時刻共享一組引數(U,W,V),極大地減小了需要訓練和預估的引數量。 #### 1. 基本結構 - 隱層的資料被存入到一個“記憶”單元中 - 存在“記憶”中的資料會被作為另外一個輸入與原始輸入一起輸入到神經網路中 - 兩種輸入 - 兩種輸出 ![](https://img2020.cnblogs.com/blog/800956/202008/800956-20200822192907504-124966270.png) #### 2. 深度RNN 深度較深,特徵表示能力較強。 ![](https://img2020.cnblogs.com/blog/800956/202008/800956-20200822192926380-484016902.png) #### 3. 雙向RNN 同時聯絡上、下文資訊。 ![](https://img2020.cnblogs.com/blog/800956/202008/800956-20200822192940896-1223402945.png) #### 4. BPTT演算法 與BP演算法相似,複合函式鏈式求導需要考慮所有與W相關的h。 ![](https://img2020.cnblogs.com/blog/800956/202008/800956-20200822193011042-740313892.png) ### 迴圈神經網路的變種 #### 1. 傳統RNN的問題 - 當迴圈神經網路在時間維度上非常深的時候,會導致梯度消失(較多)或者梯度爆炸(對優化過程影響很大)的問題。 - 梯度爆炸導致的問題:模型訓練不穩定,梯度變為Nan(無效數字),Inf(無窮大) - 梯度爆炸問題的改進: - 權重衰減 - 梯度截斷:誤差梯度超過閾值,截斷梯度,將梯度設為閾值 - 梯度消失導致的問題:長時依賴問題 - 隨著時間間隔不斷增大,RNN會喪失學習到連線較遠資訊的能力。 - 梯度消失問題的改進: - 改進模型 - LSTM,GRU #### 2. LSTM ![](https://img2020.cnblogs.com/blog/800956/202008/800956-20200822193030022-728508299.png) LSTM中“記憶”不會被新的輸入覆蓋(相加)。 如果前面的輸入對 C~t~ 產生了影響,那這個影響會一直存在,除非遺忘門的權重為0。 - LSTM實現三個門的計算: - 遺忘門:遺忘資訊,通過記住後資訊 - 輸入門:確定需要更新的資訊 - 輸出門:確定輸出資訊 > - 小技巧: > - LSTM中learning rate可以被儘量的設定小 > - 初始化將輸出門bias置為正數(1或5),這樣模型剛開始訓練時forget gate的值接近於1,不會發生梯度消失 #### 3. GRU ![](https://img2020.cnblogs.com/blog/800956/202008/800956-20200822193045757-2131975105.png) 解決LSTM運算複雜的問題。 - GRU只有兩個門: - 重置門:控制忽略前一時刻的狀態資訊的程度,重置門越小說明忽略的越多 - 更新門:控制前一時刻的狀態資訊被帶入到當前狀態中的程度,更新門越大表示前一時刻的狀態資訊帶入越多 - 相似: - 從t-1到t時刻的記憶的更新都引入加法 - 可以防止梯度消失 ### 擴充套件 #### 1. 解決RNN梯度消失的其他方法 - Clockwise RNN - 把隱層分成很多組,每組有不同的迴圈週期,有的週期是1(同普通RNN),有的週期更長。這樣距離較遠的某個依賴關係就可以通過週期較長的cell少數幾次迴圈訪問到,從而網路層數不太深,更容易學到。 #### 2. 基於attention的RNN - 每個時刻根據當前記憶學到一個attention權重矩陣 - 同一時刻該權重在每個channel上是