# Recurrent Neural Network(RNN) ##### 1.RNN概念說明 ##### 2.RNN的應用 ##### 3.LSTM簡介 ##### 4.參考資料 --- ## 一、RNN概念說明 RNN是循環神經網絡,為了對序列數據進行建模而產生的。文本,是字母和 詞彙的序列;語音,是音節的序列;影片,是圖像的序列;氣象觀測數據,股 票交易數據等等,也都是序列數據  RNN計算公式 : U、V、W為初始權重 g(.)為優化函數可選擇sigmoid、relu等等   --- 另外,依據 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』。  --- ## 二、RNN的應用 1. 語言模型與生成語句: 給定之前詞語的情況下我們希望產生出下一個詞語是什麼。語言模型的作用就 是讓我們可以衡量一個句子的可能性。 EX : AI點寫天龍八部 網址=> https://leemeng.tw/how-to-generate-interesting-text-with-tensorflow2-and-tensorflow-js.html 2. 機器翻譯: 機器翻譯類似於語言模型,其輸入為需要翻譯的句子,輸出則是翻譯的目標語 言的句子。 3. 生成圖片描述: 與CNN結合,RNN可以為無標籤的圖片生成描述,模型甚至可以排列好這些描述 成更加類似人類語言的形式。  ## 三、LSTM(長短期記憶網路)簡介 LSTM(Long Short Term Memory Network)為RNN的衍伸,為什麼需要LSTM?原因就在於RNN訓練上常常會有梯度爆炸或是消失的狀況發生,而LSTM正好可以解決這些問題。  原先RNN結構圖 ---  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
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.