# Recurrent Neural Network(RNN) ##### 1.RNN概念說明 ##### 2.RNN的應用 ##### 3.LSTM簡介 ##### 4.參考資料 --- ## 一、RNN概念說明 RNN是循環神經網絡,為了對序列數據進行建模而產生的。文本,是字母和 詞彙的序列;語音,是音節的序列;影片,是圖像的序列;氣象觀測數據,股 票交易數據等等,也都是序列數據 ![](https://i.imgur.com/cJkb6so.png) RNN計算公式 : U、V、W為初始權重 g(.)為優化函數可選擇sigmoid、relu等等 ![](https://i.imgur.com/H7PuqKm.png) ![](https://i.imgur.com/DVlubkQ.png) --- 另外,依據 input 及 output 的數目,RNN 可以有很多的變化與應用: 1. 一對一(one to one):固定長度的輸入(input)及輸出(output),即一般 的 Neural Network 模型。 2. 一對多(one to many):單一輸入、多個輸出,例如影像標題(Image Captioning),輸入一個影像,希望偵測影像內多個物體,並一一給予標題,這稱之為『Sequence output』。 3. 多對一(many to one):多個輸入、單一輸出,例如情緒分析(Sentiment Analysis),輸入一大段話,判斷這段話是正面或負面的情緒表達,這稱之為『Sequence input』。 4. 多對多(many to many):多個輸入、多個輸出,例如語言翻譯(Machine Translation),輸入一段英文句子,翻譯成中文,這稱之為『Sequence input and sequence output 』。 5. 另一種多對多(many to many):『同步』(Synchronize)的多個輸入、多個輸出,例如視訊分類(Video Classification),輸入一段影片,希望為每一幀(Frame)產生一個標題,這稱之為『Synced sequence input and output』。 ![](https://i.imgur.com/VneA3sM.png) --- ## 二、RNN的應用 1. 語言模型與生成語句: 給定之前詞語的情況下我們希望產生出下一個詞語是什麼。語言模型的作用就 是讓我們可以衡量一個句子的可能性。 EX : AI點寫天龍八部 網址=> https://leemeng.tw/how-to-generate-interesting-text-with-tensorflow2-and-tensorflow-js.html 2. 機器翻譯: 機器翻譯類似於語言模型,其輸入為需要翻譯的句子,輸出則是翻譯的目標語 言的句子。 3. 生成圖片描述: 與CNN結合,RNN可以為無標籤的圖片生成描述,模型甚至可以排列好這些描述 成更加類似人類語言的形式。 ![](https://i.imgur.com/kSJ5Rnm.png) ## 三、LSTM(長短期記憶網路)簡介 LSTM(Long Short Term Memory Network)為RNN的衍伸,為什麼需要LSTM?原因就在於RNN訓練上常常會有梯度爆炸或是消失的狀況發生,而LSTM正好可以解決這些問題。 ![](https://i.imgur.com/286eBT2.png) 原先RNN結構圖 --- ![](https://i.imgur.com/WRhcNgA.png) LSTM內部結構圖 --- * 遺忘門 :是決定我們要從單元狀態中捨棄什麼信息。這一步由激活函數是sigmoid的神經層決定,我們稱之為。首先我們將和作為遺忘門的輸入,對於的每一個數字,遺忘門輸出一個[0,1]區間的數字,輸出1代表“完全保留”,輸出0代表“完全遺忘”。 * 輸入門 :是決定我們將要在單元狀態中存儲哪些新的信息。這有兩個部分。首先,激活函數為sigmoid的稱為“輸入門”的層決定我們將更新哪些值。接下來,激活函數為tanh的層創建一個新的候選值向量,,可以添加到單元狀態。下一步,我們將結合這兩部分來更新狀態。 * 輸出門 :需要決定輸出的內容。這個輸出將基於我們的單元狀態,但將是一個過濾版。首先,我們運行一個sigmoid層,決定我們要輸出單元狀態的哪些部分。然後,我們通過tanh函數(把值轉換為[-1,1]區間)把它的單元狀態與sigmoid門的輸出相乘,這樣我們只輸出我們決定的部分。 ## 四、參考資料 * 動態圖理解RNN https://kknews.cc/zh-tw/tech/a4aee9x.html * 李宏毅教授hackmd https://hackmd.io/@overkill8927/SyyCBk3Mr?type=view * RNN & LSTM說明 https://www.itread01.com/content/1549269013.html * 知乎 傳統RNN的缺點,LSTM結構解析 https://zhuanlan.zhihu.com/p/33113729 * 莫凡講解LSTM https://www.youtube.com/watch?v=Vdg5zlZAXnU