有人說,不同語言之間的翻譯,與其說是一門科學(xué),不如說是一門藝術(shù)。 NLP 領(lǐng)域的機(jī)器學(xué)習(xí)工程師 Riccardo Di Sipio 日前提出了一個觀點:使用卷積網(wǎng)絡(luò)要比使用遞歸神經(jīng)網(wǎng)絡(luò)來做 NLP 研究,要幸福得多——是時候放棄遞歸神經(jīng)網(wǎng)絡(luò)了! 基于這一觀點,他從卷積網(wǎng)絡(luò)本身的基本原理出發(fā),論述了為什么 NLP 不再需要遞歸神經(jīng)網(wǎng)絡(luò)的原因。 我們來看: 不久前,人工智能科學(xué)家侯世達(dá)(Douglas Hofstadter) 就在 The Atlantic 上發(fā)表的一篇論文中指出,目前機(jī)器翻譯尚處于「淺薄」的階段。
盡管機(jī)器翻譯存在局限性,但難以否認(rèn)的是,自動翻譯軟件在許多情況下都有良好的效果,而其背后的技術(shù)在任何存在信息從一個領(lǐng)域流動到另一個領(lǐng)域的語境中都具有廣泛的應(yīng)用,例如基因組學(xué)中從 RNA 到蛋白質(zhì)編碼的翻譯過程。 直到 2015年,序列到序列的映射(或者說翻譯)使用的主要方法都是遞歸神經(jīng)網(wǎng)絡(luò),特別是長短期記憶(LSTM)網(wǎng)絡(luò)。 我在前一篇文章中介紹了這些網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)知識,我還談到了 LSTM 被應(yīng)用于大型強(qiáng)子對撞機(jī)的頂部夸克對衰變的運動學(xué)重建過程。這篇文章鏈接如下:
然后,出現(xiàn)了一些新的方法:比如殘差網(wǎng)路架構(gòu)和注意力機(jī)制的提出,為針對這類任務(wù)的更通用的框架的實現(xiàn)鋪平了道路。 值得一提的是,這些新穎的網(wǎng)路架構(gòu)還解決了另一個問題:事實上,由于 RNN 固有的時序性,很難利用這種網(wǎng)絡(luò)在像 GPU 這樣的并行系統(tǒng)上進(jìn)行訓(xùn)練。而這一點正是卷積神經(jīng)網(wǎng)絡(luò)使用起來非常方便的地方。 一、卷積神經(jīng)網(wǎng)絡(luò)在數(shù)學(xué)中,卷積表示的是當(dāng)函數(shù) f 作用于另一個函數(shù) g 時生成第三個函數(shù)的一種運算: 此運算不應(yīng)與調(diào)制(例如 AM 傳輸中的 EM 信號)混淆,調(diào)制是將兩個函數(shù)簡單相乘。求知欲強(qiáng)的人可能會深究到:時間空間中的卷積傅里葉變換,實質(zhì)上是頻率空間中的調(diào)制,即: 所以這兩種運算雖然密切相關(guān),但切不可被混淆。 在計算機(jī)科學(xué)的離散世界中,積分被求和取代,兩函數(shù)之間的乘法由矩陣間的乘法代替。用行話來說,就是將卷積核應(yīng)用到圖像上來生成卷積特征,一次卷積將生成一個新的特征。在下面每一對圖像中,當(dāng)對左邊部分發(fā)生一次卷積變換,將于右邊部分產(chǎn)生一個新的值,如下圖所示: 在對這個序列的操作中,圖像(灰色矩陣)由一個卷積核(橙色矩陣)卷積操作以獲得卷積特征(綠色矩陣)。 通常來說,卷積核是一個網(wǎng)絡(luò)的權(quán)值矩陣,必須通過某種算法(如:反向傳播)計算,才能得到它的期望輸出。 這種操作的一個很好并且非常重要的特性是,一旦「圖片」被加載到記憶中,不同的卷積核會對其進(jìn)行操作,這樣就可以減少輸入/輸出(I/O)次數(shù),從而更好地利用帶寬。通常,卷積操作由以下兩種方式執(zhí)行:
在卷積之后,通常會進(jìn)行池化操作:在每個卷積塊中,只將最大值傳遞到下一層。此操作用于降低圖片維數(shù)以及過濾噪聲。降維的關(guān)鍵是通過信息壓縮來尋找更高水平的特征。 常用的做法是,通過將上述兩個步驟的板塊鏈合在一起,來構(gòu)建一個卷積神經(jīng)網(wǎng)絡(luò)。一些成功的網(wǎng)絡(luò)架構(gòu)案例如下:
二、注意力機(jī)制既然現(xiàn)在我們已經(jīng)了解了卷積神經(jīng)網(wǎng)絡(luò)的基本知識,那么讓我們回到最原始的問題:我們?nèi)绾问褂眠@樣的網(wǎng)絡(luò)代替遞歸網(wǎng)絡(luò)來解析序列呢? 注意力機(jī)制背后的主要觀點是,網(wǎng)絡(luò)應(yīng)該找出輸入序列的哪些部分或元素與給定的輸出序列元素具有更強(qiáng)的相關(guān)性。它通過為每個輸入元素創(chuàng)建一個注意力權(quán)重向量(權(quán)重介于 0 和 1 之間,通過 Softmax 產(chǎn)生),并使用它們來調(diào)整信息流。如果我們首先關(guān)注基于 RNN 的網(wǎng)絡(luò),這將變得更容易理解。 對于每個輸入元素(時間階),RNN 層會存儲一個隱藏狀態(tài)。所以對于 N 個輸入將會有 N 個隱藏狀態(tài)。此時,我們可以通過簡單地讓注意力權(quán)重和隱藏狀態(tài)逐個元素相乘(也就是哈達(dá)瑪積)。來生成剩下文向量: 例如,當(dāng)翻譯一個句子時,兩種語言的專有名詞都是一樣的,因此相應(yīng)的權(quán)重會非常大(例如 0.95)。相鄰單詞的權(quán)重很可能也是比較大的(例如 0.55),而相距較遠(yuǎn)的單詞權(quán)重則較?。ɡ?nbsp;0.05)。 最后,信息被壓縮成一個注意力向量,并傳遞到下一層: 在解碼階段,則為每個輸入的詞計算上下文向量。 三、Transformer 網(wǎng)絡(luò)現(xiàn)在我們基本掌握和理解了關(guān)于如何在機(jī)器翻譯中擺脫 RNN 網(wǎng)絡(luò)的所有要素。 Transformer 網(wǎng)絡(luò)利用注意力機(jī)制,但這次使用的是前饋網(wǎng)絡(luò)。 首先,輸入序列被嵌入(即被編碼成 N 維空間中的一個數(shù)字)向量作為補(bǔ)充,該向量跟蹤每個單詞相對于彼此的初始位置。現(xiàn)在我們有了序列中所有單詞( K)和一個給定單詞( Q)的向量表示。 根據(jù)這些材料,我們可以像以前那樣計算出注意力權(quán)重(d_k 代表了維度,它是一個標(biāo)準(zhǔn)化因子): 這個注意力權(quán)重決定了其他每個單詞對于給定單詞的翻譯結(jié)果的貢獻(xiàn)程度。 將這些權(quán)重作用于待翻譯的給定序列(值V)的過程稱為縮放的點積注意力( Scaled Dot-Product Attention)。 多頭注意力是一種注意力機(jī)制的合并方式,被用來將 Q、K 和 V 線性映射到不同維度的空間中。其思想是,不同的映射可以分別從不同方面突出信息編碼的方式。其中映射是通過將 Q、K 和 V 乘以訓(xùn)練過程中學(xué)習(xí)到的矩陣 W 來實現(xiàn)的。 最后值得一提的是,在論文《Attention Augmented Convolutional Networks》中,作者提出了一種具有多頭注意力機(jī)制的 CNN ,該論文鏈接如下:
而以上,便是為什么我們不再需要遞歸神經(jīng)網(wǎng)絡(luò)的原因~ via: https:///swlh/attention-please-forget-about-recurrent-neural-networks-8d8c9047e117 點擊“閱讀原文” 前往 AAAI 2020 專題 |
|
來自: taotao_2016 > 《物理》