為什麼要有遞迴類神經網路(RNN)?
舉個例子,假設我們要去看一則電影影評到底是正面的還是負面的,如果那一則電影影評是“我不太喜歡那部電影“ ,我們要用AI來判斷到底是正面還是負面的,此時,對於一般的AI方法而言,他們的作法會將這些字詞拆解輸入到AI當中去做判斷。因為一般的AI方法本身沒有記憶功能,可以理解成是看了一個詞之後就忘記,所以AI讀到的情境是 “我” “不” “太” “喜歡” ”那部” “電影”,然後字詞之間彼此都沒有關聯,因為看完下一個字詞,上一個字詞就忘記了。 此時,AI只能從字詞去判斷這個影評是正面還是負面,如果AI有能力去判斷字詞的正面或負面,這時候讀到了 “不”就會是負面 “喜歡”又會是正面,權衡之下,如果這時候喜歡的權重比較高,不的權重比較低,就有可能看到有喜歡的字眼,誤以為這是正面影評。
從上述例子可以了解到針對很多語言上的應用,其實是需要網路有記憶功能,才有機會可以從前後字詞關係,去理解整個句子的意思,也就是語意理解的功能。因此,遞迴類神經網路(RNN)就是要去解決這樣的痛點而誕生的方法。
再將上述的例子套在遞迴類神經網路(RNN)上,當我們輸入”我不太喜歡那部電影”的影評,因為網路有記憶的功能,所以可以了解在這個句子上,要將不太喜歡一起看,一起看之後就了解,不太喜歡就是負面的評論,自然而然將這個影評判斷為負面影評。
遞迴類神經網路(RNN)結構
我們先以傳統類神經網路(DNN)開始講起,假設現在的網路是只有一個輸入層,隱藏層,輸出層,在個別層裡面分別只會有一個節點,網路的架構就如同下圖所示
這時候如果x與y是不同時間點的輸入與輸出,依然是對應到相同的網路結構,這時候輸出y就不會跟輸入x的前後順序相關,這個網路本身只會跟x本身有關,跟輸入到x前後無關。
更明確來說,我們把不同時間點輸入的x展開來可得到下方的圖形
乍看之下,好像有很多節點,實際上這邊的意思是網路架構仍然在輸入與隱藏以及輸出層都只有一個節點,之所以會有很多層的意思只是代表不同時間點輸入的x就是在t-1輸入x,在t輸入x,在t+1輸入x,輸入到這個網路架構後,得到的分別就是不同時間點所對應到的輸出。
以上述結構來看,因為這三個時間點的計算,網路之間都沒有關聯性,所以不管x順序怎麼改變,都只會得到相同的y值,這是因為y值只會與當前輸入有關,也就是yt-1只與xt-1有關,以此類推。
這時候就是代表,網路沒有記憶,看完上一個輸入,就不記得,只記得當前的輸入。
我們進一步維持這個結構,也就是只有一個輸入層,隱藏層,輸出層,在個別層裡面分別只會有一個節點,展開成是遞迴類神經網路(RNN)結構,如同下圖所示
從上面這張圖可發現,這個RNN結構與DNN結構不同點在於,隱藏層的訊息會傳遞,在t-1的隱藏層訊息會傳遞到t隱藏層,在t隱藏層的訊息會傳遞到t+1,這時候就代表網路有記憶功能,而輸出層的結果又會來自於隱藏層,所以整體網路也會跟輸入的順序有關。
影評範例套在遞迴類神經網路(RNN)結構
我們將上述的影評範例套在遞迴類神經網路(RNN)結構上,如下圖所示
不同的字詞,代表不同輸入順序,RNN的結構有很多種,這邊輸出層只有在最後的時序才會有節點,代表的是以這個應用來說,網路需要看完整句話才能做判斷。
從上圖可以發現到因為隱藏層訊息會傳遞,前面看到的字詞訊息,會被保留,因此,RNN就有辦法理解這句話的涵義其實就是不太喜歡,理解之後,最後就可以做出負面的判斷。
遞迴類神經網路(RNN)特點
最後總結RNN的特點就是因為隱藏層之間訊息會傳遞,所以整體網路有了記憶功能,而因為網路有記憶功能,所以最終網路的輸出會與輸入的時序性相關,同一段話逆著輸入,結果可能又不相同。
[參考資料]:
2.機器學習與人工神經網路(二):深度學習(Deep Learning)
[類神經網路基礎系列專文]:
1.類神經網路(Deep neural network, DNN)介紹
3.類神經網路—啟動函數介紹(一): 深入解析Relu與Sigmoid函數:如何影響類神經網路的學習效果?
4.類神經網路—啟動函數介紹(二): 回歸 vs. 分類: 線性函數與Tanh函數之原理探索
5.類神經網路—啟動函數介紹(三): 掌握多元分類的核心技術:不可不知的softmax函數原理
6.類神經網路—啟動函數介紹(四): 如何選擇最適當的啟動函數?用一統整表格讓您輕鬆掌握
8.類神經網路—反向傳播法(一): 白話文帶您了解反向傳播法
10.類神經網路—反向傳播法(三): 五步驟帶您了解梯度下降法
11.類神經網路—反向傳播法(四): 揭開反向傳播法神秘面紗
12.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法
13.類神經網路—反向傳播法(五): 用等高線圖讓您對學習率更有感
[機器學習基礎系列專文]:
1.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法
[類神經網路延伸介紹]:
1.卷積類神經網路(Convolution neural network,CNN)介紹
2.遞迴類神經網路(Recurrent neural network,RNN)介紹
[ChatGPT系列專文]:
2.從ChatGPT探索GPT的原理概念:少量數據的解方—遷移學習技巧
3.ChatGPT是什麼?探索GPT原理:遷移學習(transfer learning)的奧秘—微調(fine-tuning)技巧