【AI60問】Q43什麼是循環神經網路 Recurrent Neural Networks, RNN?

by 提拔我園丁
緯育TibaMe AI小教室-Q43什麼是循環神經網路?

RNN,又稱為遞歸神經網路(Recurrent Neural Network, RNN)。它是一個擁有 LSTM (活性資料記憶體)的神經網路,可用於一系列資料以猜測接下來會發生的內容。某些層的輸出內容透過 RNN 送回前一層當成輸入內容,即可以建立回饋迴路。它允許輸入與輸出的資料不只是單一組向量,而是多組向量組成的序列。

這是什麼意思呢?

通常一般人在思考問題時,不會從零開始,而是會根據自己以往的經驗與記憶做出判斷,舉例來說,你現在在閱讀時,不會細細觀看所讀的每一個字詞,而是會結合前面所看到的詞彙來理解意義,這可以說明,人類的思考具備「連續性」。

而傳統的神經網路做不到這件事,但RNN卻是可以做到的。

再舉個例子,當你想要將一部電影的每個鏡頭進行分類、判斷螢幕上在演什麼,可是傳統神經網路只能單獨看待每一幀,無法把上個鏡頭的畫面串連起下一秒發生的情節。而RNN(循環神經網絡)其實能解決這個問題,它就是能夠將資訊在網路中再次循環的網路。

緯育TibaMeAI 60問-圖 43-1含有「環」(loop)的循環神經網絡
圖 43-1含有「環」(loop)的循環神經網絡

上圖 43-1 就是 RNN 的一部分,A 的輸入是 Xt(向量),輸出為值 ht。

這個循環能夠讓資訊從神經網路中的一步傳遞到下一步,雖然這些環看起來讓RNN變得有點複雜,但是它其實與傳統神經網路類似,只是把同一個網路多次複製,將資訊傳遞到下一個網路。

如果我們將這個循環拆開,就能比較容易理解:

緯育TibaMeAI 60問-圖 43-2 一個展開的 RNN
圖 43-2 一個展開的 RNN

RNN 像鏈條一樣的網絡,實際上也體現出特點:它與「序列」有緊密關係,它們是處理此類數據的重要架構,且能夠順利應用。

過去幾年,RNN 應用於解決「語音識別、語言建模、機器翻譯、為圖像取標題」…等問題,不僅帶來成功,且它的應用領域還不斷擴展。

這些成功的關鍵在於:它們使用了 GRU、LSTM。GRU、LSTM 是 RNN 的一種特殊形式,而它的普適性比起傳統的 RNN 要好得多。

* GRU:Gated Recurrent Unit
RNN的變形,與LSTM類似的模型,
它能加快執行速度及減少記憶體的耗用。

* LSTM:長短期記憶(Long Short Term Memory,LSTM)
使用記憶來加強當前的決策,
利用三個控制閥Gate 來決定記憶的儲存與使用。

世界上最遙遠的距離

RNN有個魅力是它能將先前的訊息結合到目前的任務當中,例如先前舉的電影例子,利用先前的幀資訊來理解目前的內容。如果RNN能實現這一點,是非常有效,但事實卻是不一定的。

有時,我們只需要利用近期訊息來處理目前任務。

比如在一個語言模型中,若我們嘗試根據幾個單詞來預測下個單詞,像我們要猜出「the clouds are in the sky.」,但是因為句義已經相當明顯,並不需要更多的上下文。在這種情況下,相關訊息所隔的距離並不遠,因此 RNN 能夠學會使用此前的資訊。

緯育TibaMeAI 60問-圖 43-3一個相關訊息比較近的RNN
圖 43-3一個相關訊息比較近的RNN

但是,就像我們做完填空時,可能需要整合全文來填某一個句子,比如「I grew up in France…., I speak fluent French .」。

若網絡只知道鄰近的幾個單詞,可能它會知道此處需要填寫一門語言,但至於實際上應該填寫什麼,需要找到更遠之前的資訊,直到找到France。而這種需要尋找相距很遠資訊的情況,其實相當常見。

因此,當距離增加時,RNN 能將相關訊息串聯起來的能力也就越弱,明明在同一個段落裡,卻找不到相關聯的詞語。

緯育TibaMeAI 60問-圖43-4 一個相關訊息比較遠的RNN
圖43-4 一個相關訊息比較遠的RNN

理論上,RNN 是能夠處理這種「遙遠」的問題。我們能夠人為挑選出一些參數,解決依賴問題中較為簡單的任務。但在實踐上,RNN 並不能「自主」處理這些任務。

【相關課程】認識AI文字辨識技術發展過程與實際案例

深入探討AI在文字處理上的應用,除了介紹RNN技術與相關演算模型外,也會用實際案例來讓大家了解AI可以如何理解與幫助我們處理文字訊息!

【相關課程】深度學習 TensorFlow 基礎與應用

這門課將系統化的依照 30 個完整的模組,帶你逐步累積深度學習的概念,從基本的 DNN 開始介紹,並逐次導入 CNN 與 RNN 等應用,透過 24 實作範例,協助你解決不知該從哪些工具下手、該如何開始實作、該如何整合資料… 等最實際迫切的深度學習問題。

想成為爬蟲工程師 、資料分析師 、資料工程師 、資料分析領域專家 、人工智慧產品經理嗎?還是你的公司正需要培養此領域人才呢?

點我了解 AI資料科學家-三階段全方位學程班 👉 https://www.tibame.com/eventpage/ai_datascientist 

每日5分鐘, 提拔我園丁陪你快速添補AI/資料科學知識與技能。

若想了解更多AI/資料科學的小知識、及各產業的相關應用,歡迎訂閱TibaMe FB及部落格,或有其他想了解的主題歡迎在下方留言讓我們知道唷!

參考資料

分享這篇文章:
0 comment
5

您也許會喜歡

Leave a Comment

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料