當大家正在開心的用著 RNN 跟 LSTM 等等模型之時,就有人跳出來了。
不要再用 RNN 為基礎的模型了!!
為什麼呢?
基本上裏面提到 vanishing gradient 的問題一直沒有解決以外,還有沒有辦法善用硬體的侷限在。
像這種循序型的模型,模型天生無法平行化運算,所以 GPU 就無用武之地,只能靠 CPU 慢慢跑。
那有什麼解決辦法呢?
Attention Is All You Need 這篇文章提出了 Transformer 這個模型,基本上這個模型使用了 self-attention 的機制。
要講這個之前我們要先聊聊 attention model。在 attention model 之前,sequence-to-sequence model 做出了重大的突破。一個具有彈性,可以任意組合的模型誕生了,管你是要生成句子還是怎麼樣。原本是只有 RNN 一個單元一個單元慢慢去對映 X 到 Y,sequence-to-sequence model 將這樣的對應關係解耦,由一個 encoder 負責將 X 的資訊萃取出來,再經由 decoder 將資訊轉換成 Y 輸出。
但是 LSTM 還是沒辦法記憶夠長的,後來 attention model 就誕生了。乾脆就將 encoder 所萃取到的資訊紀錄下來,變成一個,然後再丟到 decoder 去將資訊還原成目標語言,就可以完成機器翻譯了。
但是這種方式還是不脫 recurrent model,那就乾脆做成 self-attention 的機制,也就是這邊的 Transformer,完全摒棄了 recurrent 的限制。
接著是今年6月的文章 When Recurrent Models Don't Need to be Recurrent,當你的 recurrent model 不必再 recurrent!
也就是將 RNN 的問題又重述了一遍,並且提出大家都漸漸以 autoregressive generative model 來解決這樣的問題。
這篇算這引言,我接下來會開始一一解釋模型。
是不是應該來挑戰一下Nanopore base-caller的演算法?
應該會花很多時間XD