1. 程式人生 > >機器學習與深度學習系列連載: 第二部分 深度學習(十三)迴圈神經網路 1(Recurre Neural Network 基本概念 )

機器學習與深度學習系列連載: 第二部分 深度學習(十三)迴圈神經網路 1(Recurre Neural Network 基本概念 )

迴圈神經網路 1(Recurre Neural Network 基本概念 )

在這裡插入圖片描述

迴圈神經網路的特點:
• RNNs 在每個時間點連線引數值,引數只有一份
• 神經網路出了輸入以外,還會建立在以前的“記憶”的基礎上
• 記憶體的要求與輸入的規模有關

當然,他的深度不只有一層:
在這裡插入圖片描述

1. 公式表達

對於輸入x1…xT , 我們有記憶h和分類結果yhat
在這裡插入圖片描述
在這裡插入圖片描述

2 .RNN 語言處理模型

在自然語言處理中,RNN和它的模型變種,是主力軍。
(1) 輸入層、隱藏層、引數設定
在這裡插入圖片描述
是初始化的在時間點0的隱藏層向量
在這裡插入圖片描述
是在時間點t的輸入向量

在這裡插入圖片描述
是其中各引數集的維度設定:

(2) Loss
在這裡插入圖片描述
是在整個詞彙表中的概率分佈
整個Loss函式:
在這裡插入圖片描述

整體的Loss:
在這裡插入圖片描述

3 .RNN 訓練

RNN的訓練比較難,原因如下:

  1. 每次前向傳播的時候,乘以的都是同一個引數矩陣W
  2. 好多步以前的輸入,可能會影響現在的結果
  3. 求導的過程非常長

相應的就會出現梯度消失或者爆炸的問題(vanishing/exploding)

原因推導:

  1. 總的誤差是每一個時間點的誤差的和

在這裡插入圖片描述

  1. 根據chain-rule:

在這裡插入圖片描述

很多數值的相乘,如果乘數大於1,結果容易爆炸,如果小於1,結果趨近於0

本專欄圖片、公式很多來自臺灣大學李弘毅老師、斯坦福大學cs229,斯坦福大學cs231n 、斯坦福大學cs224n課程。在這裡,感謝這些經典課程,向他們致敬!