iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
AI & Data

Attention到底在關注什麼?系列 第 19

Day 19 利用transformer自己實作一個翻譯程式(一)

前言

當初想說將每天學到的東西打成一篇文章,紀錄看看30天後學會了什麼

但是最近翻自己的文章就發現內容打的很亂,感覺很多重要的細節沒有講到

進入到實作之後,發現自己對self-attention的用法非常不了解

在查詢資料的時候有找到TensorFlow官方釋出的Transformer model for language understanding

於是我決定接下來要好好整理這一份文章,用前面提到的知識來慢慢看懂self-attention的程式以及概念

如果英文很好的AI大神可以直接去看TensorFlow的那一篇文章

介紹

這一個教學是訓練Transformer模型,並且製作葡萄牙翻譯成英文的模型,我會嘗試看看做出英文翻譯成繁體中文的模型

Transformer模型的核心思想就是self-attention,如同Day 9 Self-attention(三)提到的,可以透過算出alpha來了解不同輸入序列的相似程度

Transformer使用self-attention而不是RNN或CNN來處理可變大小的輸入

有關self-attention和CNN跟RNN的比較在Day 13 Self-attention(七)中有提到

這個架構的缺點,有兩個

  1. 對於時間序列,每一個時間的資料都是去計算所有的輸入,因此效率可能會比較低
  2. 如果輸入有時間/空間的關係,例如:I am a student.,不同的文字會有前後順序的關聯性,若是這樣的資料需要額外加入位置編碼,在Day 13 Self-attention(七)有提到加入位置編碼的方法有很多種,目前還沒有找到最好的方法

明天開始建構環境以及下載資料集


上一篇
Day 18 self-attention的實作準備(四) keras的compile和fit
下一篇
Day 20 利用transformer自己實作一個翻譯程式(二) 建立環境和下載資料集
系列文
Attention到底在關注什麼?30

尚未有邦友留言

立即登入留言