請注意:忘記遞歸神經網絡

翻譯自:Attention, please: forget about Recurrent Neural Networks

你可能應該用卷積替換你的循環神經網絡並且開心

有人說從一種語言到另一種語言的翻譯更像是一門藝術,而不是一門科學。不久前,道格拉斯霍夫施塔特在一篇發表在大西洋上的文章中指出了機器翻譯的“淺薄”。儘管存在侷限性,但很難否認自動翻譯軟件不僅在許多情況下運行良好,而且其背後的技術在信息從一個領域流向另一個領域(如RNA到蛋白質)的任何環境中都有廣泛的應用。在基因組學中編碼。直到2015年,序列到序列的映射(或翻譯)領域由循環神經網絡主導,特別是長期短期記憶(LSTM)網絡。我介紹了這些架構的基礎知識上一篇文章,其中LSTM應用於大型強子對撞機頂部夸克對衰變的運動學重建。然後,發生了一些新的事情:提出了ResNet體系結構和注意機制,爲這種任務的更一般框架鋪平了道路。特別是,這些新穎的架構還解決了沿途的另一個問題:事實上,由於RNN的固有順序性質,這種網絡難以在諸如GPU的並行系統上進行訓練。在這裏,卷積神經網絡變得非常方便。

卷積神經網絡

在數學中,卷積是表示在應用於另一個函數 時某個函數 的整形的操作

 

 

不必將該操作與作爲兩個功能之間的簡單乘法的調製(例如,AM傳輸中的EM信號)混淆。對於好奇的人來說,時間空間中卷積的傅立葉變換是頻率空間中的調製,

所以這兩個操作密切相關,但不必相互混淆。

在計算機科學的離散世界中,積分被一個和被兩個函數乘以矩陣乘法所取代。在行話中,內核應用於圖像以產生卷積特徵,一次一個元素,如下圖所示:

在該操作序列中,圖像(灰色矩陣)由內核(橙色矩陣)卷積以獲得卷積特徵(綠色矩陣)。

通常,內核是必須通過某種算法(例如反向傳播)找到的網絡權重矩陣,以便產生所需的輸出。

這個操作的一個不錯的重要特性是,一旦“圖像”被加載到內存中,不同的內核就可以對其進行操作,從而減少了I / O操作的數量,從而更好地利用了帶寬。通常,卷積操作以兩種方式執行:

  • 爲了減小維數:這是上面給出的情況,其中例如4x4圖像被2x2內核減少到3x3圖像。這稱爲有效填充
  • 爲了保持維度不變:在這種情況下,在應用內核之前,原始圖像在其周圍用“零填充”填充。例如,將4x4圖像填充到5x5矩陣,然後將2x2內核縮小爲4x4圖像。這稱爲相同的填充

在卷積之後,通常執行合併操作:在每個塊中,僅將最大值傳播到下一層。此操作用於降低維度並濾除噪聲。減少維度的重點是通過壓縮信息來找到更高級別的特徵。

通常,通過將多個這兩個步驟塊鏈接在一起來構造卷積神經網絡。成功架構的示例如下:

  • AlexNet(2012):它包含8層; 前5個是卷積層,其中一些是最大池,最後3個是完全連接的層。它使用 ReLU激活函數而不是 tanh sigmoid
  • VGGNet(2014):顧名思義,它是一個非常深的卷積網絡,由16層組成。與AlexNet類似,它只有3x3內核,但有很多過濾器。它是目前從圖像中提取特徵的最受歡迎的選擇。
  • GoogLeNet(2014):該網絡受舊版 LeNet的啓發,但使用了 Inception模塊。在推出之前,CNN只是將卷積層疊加得越來越深。爲了說明信息可以在相似圖像中的不同範圍內傳播,該網絡在同一級別應用不同大小的內核(例如 1x1,3x3,5x5 ......),然後連接輸出。像這樣的九個模塊是堆疊的。隨着深度網絡遭受消失的梯度問題,較新的實現利用了剩餘網絡架構
  • ResNet(2015):殘餘神經網絡具有突出的批量標準化跳過連接。後者是跳過某些層次的捷徑。由於剩餘塊,獲得了“技巧”。ResNets的類似方法被稱爲高速公路網絡。 

 

注意機制

現在我們已經瞭解了卷積神經網絡的基礎知識,我們可以回到原點:我們如何使用這樣的網絡來解析序列來代替循環網絡?注意力背後的想法是網絡應該弄清楚輸入序列的哪些部分(元素)與生成輸出序列的給定元素更相關。它通過爲每個輸入元素創建一個注意權重向量(在0和1之間,來自softmax)來實現,並使用它們來調製信息流。如果我們首先關注基於RNN的網絡,那麼它的實現方式會更容易理解。對於每個輸入元素(時間步長),RNN層存儲隱藏狀態。因此對於N輸入將有N隱藏的狀態。在這一點上,我們可以通過簡單地將元素逐個元素(Hadamard乘積)乘以注意權重和隱藏狀態來生成上下文向量

例如,在翻譯句子時,兩種語言中的專有名稱相同,因此相應的權重將非常高(例如 0.95)。相鄰的單詞很可能也具有高權重(例如 0.55),而相距較遠的單詞將獲得較低的權重(例如 0.05)。

最後,信息被壓縮到一個傳遞給下一層的注意向量

在解碼階段期間,爲每個輸出字計算上下文向量。

The Transformer

現在我們基本上了解了如何擺脫機器翻譯的RNN。該變壓器網絡利用的關注,但使用前饋網絡的這個時候。首先,嵌入輸入序列(,在N維空間中編碼成數字)並補充有跟蹤每個單詞相對於彼此的原始位置的向量。我們現在有一個給定單詞(查詢Q)和序列中所有單詞(鍵K)的向量表示。從這些成分中我們可以像以前一樣計算注意力(d _ k 代表維度,是一個歸一化因子):

這些注意力量決定了每個其他單詞應該對給定單詞的翻譯做出多少貢獻。將這些權重應用於要翻譯的給定序列(值V 稱爲Scaled Dot-Product Attention。該多頭關注是施加到的線性突起的注意機制的級聯QķV到具有不同尺寸的空間。這個想法是不同的投影可以突出信息編碼方式的不同方面。通過將QKV乘以一些矩陣W來完成投影在培訓期間學到的。最後,在文章Attention Augmented Convolutional Networks中,作者提出了一種配備了多頭注意機制的變壓器CNN。

這就是我們不再需要循環神經網絡的原因!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章