機器翻譯架構
Transformer可應用在許多任務當中,本篇文章以機器翻譯為舉例說明。先介紹一般機器翻譯的作法,假設我們要進行中翻英的任務,輸入一段文字像是這部電影非常好看,編碼器就會處理這段文字,其目的為讓機器了解這段文字,最終編碼器的產出就是編碼訊息,或是另稱為潛在表示法。之後再將編碼訊息輸入到解碼器當中,讓機器進行解碼,將編碼訊息轉換為文字字串,由於我們是進行中翻英的任務,最後就會輸出得到英文,This movie is very nice。
傳統RNN與Transformer差別
整體架構差異
利用傳統RNN進行機器翻譯的作法,最主要是透過RNN採用時序性類神經網路進行計算,在做法上是需要一個接著一個的計算方式,最終才能計算得到結果。
以這樣的方式計算,會有以下不足的地方
1.在編碼器的部分須依照時序計算,需要一個接著一個處理輸入的文字訊息,例如輸入的字串是這部電影非常好看,就要從第一個字詞算到最後一個字詞,也就是從”這”計算到”看”,因此,在計算上效率會比較低,無法加速運算,這也是傳統RNN的限制。
2.在解碼器的部分,解碼器主要是獲得編碼訊息後,進行解碼,才會得到我們想要的輸出內容,但是以RNN計算的問題在於編碼器的訊息是比較單一,可能在輸入文字字串很長的時候,有些訊息會散失掉,最終造成翻譯能力較低。
Transfomer作法的部分可以改善RNN不足的地方,其計算方式跳脫傳統的時序性網路,採用Google定義的QKV以及注意力機制,可同時平行運算大幅增加運算效率。另外在解碼器部分,隨著不同解碼的字詞會有不一樣的編碼訊息,因此,整體編碼訊息不是單一固定的,而是會隨著不同字詞而不斷變動,在編碼訊息而言就會比較豐富,在訊息傳遞上也會比較有效,提升機器的翻譯能力。
RNN與Transformer在架構上的差異如同以上所述,以下進一步帶您了解作法上的差異。
編碼器差異
針對編碼器的部分提到,傳統RNN是時序性的網路計算方式,以剛剛的輸入這部電影非常好看為例,如果我們要得到這句話最後一個字詞的編碼訊息,例如”看”,那就要有前一個字詞的編碼訊息,像是”好”,為了要計算好的編碼訊息,又要有常的編碼訊息,依此類推,因此,我們就會發現到在計算時,一定要一個一個從頭計算到尾,這樣就會大幅減低運算效率。而Transfomer的計算方式為注意力的計算機制,可計算不同字詞之間的關聯性,同步處理這些計算,進而提升運算效率。
解碼器差異
針對RNN而言,是輸入一段文字之後,經過編碼器的運算,最終得到一個編碼訊息,在解碼器運算時,待預測輸出的字詞都是接收到相同的編碼訊息,例如先前的機器翻譯例子,如果我們現在是要翻譯得到This movie這個字詞,則在解碼器上是接收這部電影非常好看的整體編碼訊息上。
在Transformer解碼器上,如果要翻譯得到This movie的字詞,先前提到解碼器就會針對不同預測字詞有各自編碼訊息,因此如果要翻譯得到This movie的字詞,就會較關注在這部電影的編碼訊息,這是因為This movie較跟非常好看這個文字比較不相關,這時候就可以不要那麼關注不相關文字的編碼訊息。
結論
整體RNN與Transformer差異統整在下表中,在編碼器部分,RNN需要時序計算編碼結果,Transormer可同步進行運算。在解碼器部分,RNN在解碼的時候,都是接受到相同編碼訊息,Transformer則是針對不同字詞會有不同編碼訊息,因此,編碼訊息有效且豐富。整體原理機制,RNN是採用時序性類神經網路計算,Transformer是採用注意力的機制進行運算像是Self attention等等的機制。
[參考資料]:
[類神經網路基礎系列專文]:
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系列專文]: