第五週:迴圈神經網路
阿新 • • 發佈:2020-08-22
# 第五週:迴圈神經網路
## 視訊學習
### 緒論
#### 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上是