0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

注意力機(jī)制的誕生、方法及幾種常見模型

電子工程師 ? 來源:lp ? 2019-03-12 09:49 ? 次閱讀

注意力機(jī)制(Attention)已經(jīng)成為深度學(xué)習(xí)必學(xué)內(nèi)容之一,無論是計(jì)算機(jī)視覺還是自然語言處理都可以看到各種各樣注意力機(jī)制的方法。之前我們?cè)谝黄韶浳恼隆蛾P(guān)于深度學(xué)習(xí)中的注意力機(jī)制,這篇文章從實(shí)例到原理都幫你參透了》中,從實(shí)例到原理幫助大家參透注意力機(jī)制的工作原理。今天,我們將再度為大家梳理全部理論要點(diǎn),是大家學(xué)習(xí)的必備資料之一,并為后續(xù)掌握最新流行的注意力機(jī)制保駕護(hù)航。

在本篇博客中,作者不僅概述了注意力機(jī)制是如何被創(chuàng)造出來的,也詳細(xì)探討了時(shí)下最流行的注意力機(jī)制相關(guān)的方法和模型,比如Transformer、SNAIL、神經(jīng)圖靈機(jī)(Neural Turing Machines)以及自注意力生成對(duì)抗網(wǎng)絡(luò)(SAGAN),一度成為不少學(xué)習(xí)者的參考資料。

該篇博客結(jié)構(gòu)如下:

序列到序列(Seq2Seq)模型究竟有什么問題?

為翻譯而生

定義

注意力機(jī)制模型家族

歸納總結(jié)

自注意力機(jī)制(Self-attention)

Soft & Hard Attention

Global & Local Attention

神經(jīng)圖靈機(jī)

讀寫機(jī)制

注意力機(jī)制

指針網(wǎng)絡(luò)(Pointer Network)

Transformer

Key, Value and Query

多頭自注意力機(jī)制(Multi-Head Self-Attention)

編碼器(Encoder)

解碼器(Decoder)

完整的結(jié)構(gòu)

SNAIL

自注意力生成對(duì)抗網(wǎng)路(Self-Attention GAN)

參考

在某種程度上,注意力取決于我們?nèi)绾螌?duì)圖像的不同區(qū)域進(jìn)行視覺注意或?qū)⒁粋€(gè)句子中的單詞關(guān)聯(lián)起來。

以圖1 中的柴犬圖為例。

圖1 一只可愛的柴犬穿著一件人類的外套。該圖片來自于Instagram @mensweardog

人類的視覺注意力機(jī)制使我們能夠以一種“高分辨率”的形式關(guān)注到圖像的某個(gè)區(qū)域(例如當(dāng)你觀察圖中黃色框標(biāo)注的狗耳朵的時(shí)候),而同時(shí)以一種“低分辨率”的形式感知著周圍的圖像(例如這個(gè)時(shí)候你的余光中雪的背景,還有柴犬所穿的外套的樣子),然后調(diào)整眼睛所關(guān)注的焦點(diǎn)或者相應(yīng)地進(jìn)行推斷。

如果將圖像扣掉一小塊,我們也可以根據(jù)圖像中其余的內(nèi)容線索推測出被扣掉的內(nèi)容究竟是什么。比如可以推測出被黃色框扣掉的內(nèi)容是一個(gè)尖尖的耳朵,因?yàn)槲覀兛吹搅艘粋€(gè)狗的鼻子,右邊另一個(gè)尖尖的耳朵以及柴犬的神秘眼神(圖中紅色框所示的內(nèi)容)。對(duì)于耳朵的預(yù)測,底部的毛衣和毯子就不如上述狗的特征有用。

類似的,我們同樣可以解釋,一個(gè)句子或近似語境中單詞之間的關(guān)系。在一句話中,當(dāng)我們看到“吃”這個(gè)單詞的時(shí)候,我們很快就會(huì)遇到一個(gè)食物詞(apple)。雖然顏色術(shù)語(green)描述了食物,但可能跟“吃”之間沒有直接的關(guān)系。

圖2 同一個(gè)句子當(dāng)中,不同詞之間具有不同的關(guān)系

簡而言之,深度學(xué)習(xí)中的注意力機(jī)制可以被廣義地定義為一個(gè)描述重要性的權(quán)重向量:通過這個(gè)權(quán)重向量為了預(yù)測或者推斷一個(gè)元素,比如圖像中的某個(gè)像素或句子中的某個(gè)單詞,我們使用注意力向量定量地估計(jì)出目標(biāo)元素與其他元素之間具有多么強(qiáng)烈的相關(guān)性,并由注意力向量的加權(quán)和作為目標(biāo)的近似值。

序列到序列(Seq2Seq)模型究竟有什么問題?

seq2seq模型最早是在2014年由Sutskever提出的,他主要針對(duì)的是語言模型。從廣義上來講,它的目的是將輸入序列(源序列)轉(zhuǎn)換成一個(gè)新的序列(目標(biāo)序列),而且兩個(gè)序列的長度可以是任意的。轉(zhuǎn)換任務(wù)包括文本或者語音上的多語種機(jī)器翻譯,問答對(duì)話的生成或者生成句子的語法樹等任務(wù)。

seq2seq模型通常具有一種編碼器-解碼器(encoder-decoder)結(jié)構(gòu),由下面兩部分構(gòu)成:

Encoder:編碼器處理輸入序列,然后將其中包含的信息壓縮成固定長度的上下文向量(context vector),上下文向量也可以叫做句子嵌入(sentence embedding)。這種表示方式可以用來對(duì)一整個(gè)句子的含義做出一個(gè)很好的總結(jié)。

Decoder:利用Encoder產(chǎn)生的上下文向量來初始化解碼器以產(chǎn)生變換后的輸出序列。早期的工作僅僅使用編碼器網(wǎng)絡(luò)的最后狀態(tài)作為解碼器的初始狀態(tài)。

編碼器和解碼器都可以是遞歸神經(jīng)網(wǎng)絡(luò),例如使用LSTM和GRU單元。

圖3 encoder-decoder模型,用來將“she is eating a green apple”翻譯成中文,圖中是對(duì)編碼器和解碼器隨著時(shí)間步而展開的可視化效果

這種固定長度的上下文向量設(shè)計(jì)的一個(gè)關(guān)鍵的和明顯的缺點(diǎn)在于,它無法記住很長的句子,對(duì)很長的時(shí)序信息來說,一旦它完成了對(duì)整個(gè)序列的處理,它通常會(huì)忘記最開始的部分,從而丟失很多有用的信息。因此,在2015年Bahdanau等人為了解決長時(shí)依賴問題,提出了注意力機(jī)制。

為翻譯而生

注意力機(jī)制的誕生,最開始是為了幫助神經(jīng)機(jī)器翻譯(NMT)記住較長的源句。注意力機(jī)制的秘方在于,它建立了一個(gè)上下文向量與整個(gè)源句之間的快捷方式,而不只是通過編碼器最后一步的隱層狀態(tài)來生成上下文向量。這些快捷方式的連接權(quán)重是根據(jù)每個(gè)輸出元素自適應(yīng)計(jì)算出來的。

既然上下文向量可以訪問到整個(gè)句子中的每個(gè)單詞,那我們根本不用擔(dān)心之前的信息會(huì)被遺忘。源序列和目標(biāo)序列之間的對(duì)齊(alignment)就通過這個(gè)上下文向量來學(xué)習(xí)和控制,從本質(zhì)上講,要計(jì)算上下文向量需要三個(gè)必要信息:

編碼器的隱含層狀態(tài)

解碼器的隱含層狀態(tài)

源和目標(biāo)序列之間的對(duì)齊方式

圖4 加入注意力機(jī)制的encoder-decoder模型(Bahdanau等人,2015)

定義

現(xiàn)在讓我們以科學(xué)的方式來定義神經(jīng)機(jī)器翻譯系統(tǒng)中引入的注意力機(jī)制。比方說,我們有一個(gè)長度為n的源序列x,并嘗試輸出長度為m的目標(biāo)序列y:

(加粗的變量代表他們是一個(gè)向量,本博客中所有情況相同)

這里的編碼器是雙向LSTM(或者其他你認(rèn)為合適的遞歸神經(jīng)網(wǎng)絡(luò)),前向的隱含層狀態(tài)定義為,后向的隱含層狀態(tài)定義為。將兩種表示簡單地串聯(lián)起來構(gòu)成編碼器的整個(gè)隱含層狀態(tài)表示。這種表示方法意在描述當(dāng)前單詞的時(shí)候包含有它之前和之后詞的釋義。

解碼器網(wǎng)絡(luò)對(duì)于第t時(shí)刻的輸出單詞的隱含層狀態(tài)可以表示為, 其中上下文向量是輸入序列的隱含層狀態(tài)的加權(quán)和,權(quán)重由對(duì)齊函數(shù)計(jì)算得來:

對(duì)齊函數(shù)得到的分?jǐn)?shù)是根據(jù)第i個(gè)位置的輸入和第t個(gè)位置的輸出對(duì)得來的,它衡量了二者的匹配程度。的集合衡量了輸出關(guān)注到多少源序列的隱層狀態(tài)。在Bahdanau的文章中,對(duì)齊分?jǐn)?shù)的參數(shù)由一個(gè)前饋神經(jīng)網(wǎng)絡(luò)參數(shù)化,其輸入僅僅是輸入序列和輸出序列的隱含層狀態(tài),這個(gè)模型跟整體模型的其它部分一起參與訓(xùn)練,從而學(xué)到所謂的注意力權(quán)重。因此對(duì)齊分?jǐn)?shù)函數(shù)的定義如下面所示,給定tanh作為非線性激活函數(shù):

其中是可學(xué)習(xí)的參數(shù),作為整體模型參數(shù)的一部分參與到訓(xùn)練的過程當(dāng)中。

對(duì)齊分?jǐn)?shù)矩陣是一個(gè)很好的副產(chǎn)品,它可以很好的顯示出源單詞和目標(biāo)單詞之間的相關(guān)性。

圖5 對(duì)齊分?jǐn)?shù)矩陣,表現(xiàn)了源句法語“L’accord sur l’Espace économique européen a été signé en ao?t 1992”到目標(biāo)語句英語“The agreement on the European Economic Area was signed in August 1992”翻譯的單詞之間相關(guān)性的結(jié)果。

點(diǎn)擊下面鏈接可以獲得具體的實(shí)施方法,這是Tensorflow團(tuán)隊(duì)提供的一份優(yōu)秀的教程。

https://www.tensorflow.org/versions/master/tutorials/seq2seq

注意力機(jī)制模型家族

有了注意力機(jī)制,源序列和目標(biāo)序列的依賴關(guān)系再也不需要二者之間的相對(duì)距離了!有了機(jī)器翻譯領(lǐng)域上巨大的進(jìn)展,注意力機(jī)制在包括計(jì)算機(jī)視覺(Xu et al.2015)在內(nèi)的其它領(lǐng)域也都隨之有了廣泛的應(yīng)用,研究者們也相繼探索出各種不同的注意力機(jī)制模型以適用于不同的應(yīng)用場合(Luong, et al., 2015; Britz et al., 2017; Vaswani, et al., 2017)。

歸納總結(jié)

下面的表格,我們總結(jié)了幾種流行的注意力機(jī)制以及相應(yīng)的對(duì)齊分?jǐn)?shù)函數(shù):

(*)在Luong等人的文章中被稱為“concat”,在Vaswani等人的文章中被稱為“附加注意”。

(^)它增加了一個(gè)比例因子`$1/sqrt{n}$`,因?yàn)楫?dāng)輸入較大時(shí),softmax函數(shù)的梯度可能非常小,難以進(jìn)行有效的學(xué)習(xí)。

下面總結(jié)了一些更廣義的應(yīng)用到注意力機(jī)制的方法:

(&)此外,Cheng等人在2016等論文中也將其稱為內(nèi)注意力機(jī)制(intra-attention)。

自注意力機(jī)制(Self-attention)

自注意力機(jī)制,又稱內(nèi)注意力機(jī)制,是一種將單個(gè)序列的不同位置關(guān)聯(lián)起來以計(jì)算同一序列的表示的注意機(jī)制。它在機(jī)器閱讀、抽象摘要或圖像描述生成中非常有用。

在“Long short-term memory network”這篇文章中使用自注意力機(jī)制去做機(jī)器閱讀。在下面的例子中,自注意機(jī)制使我們能夠?qū)W習(xí)當(dāng)前單詞和句子前一部分之間的相關(guān)性。

相關(guān)鏈接:https://arxiv.org/pdf/1601.06733.pdf

圖6 當(dāng)前單詞為紅色,藍(lán)色陰影的大小表示激活級(jí)別也就是相關(guān)性的大小。(圖片來自于Cheng et al.,2016)

在“Show,attend and tell”這篇文章中,自注意力機(jī)制應(yīng)用于圖像以生成適當(dāng)?shù)拿枋?。圖像首先由卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行編碼,具有自注意力機(jī)制的遞歸神經(jīng)網(wǎng)絡(luò)利用卷積特征映射逐條生成描述性詞語。注意力權(quán)重的可視化清晰地展示了模型為了輸出某個(gè)單詞而關(guān)注圖像的某些區(qū)域。

相關(guān)鏈接:http://proceedings.mlr.press/v37/xuc15.pdf

圖7 機(jī)器根據(jù)圖像得到的描述“一個(gè)女人正在一個(gè)公園里扔飛碟”。(圖像來自于Xu et al. 2015)

Soft & Hard Attention

soft vs hard 注意力記住是區(qū)分注意力定義的另一種方式。最初的想法是在“Show, attend and tell paper”論文中提出的,其主要思想在于:注意力是否可以訪問整個(gè)圖像或只訪問圖像中的一部分:

Soft Attention:所學(xué)習(xí)的對(duì)齊權(quán)重關(guān)注于整個(gè)輸入圖像中的各個(gè)部分,關(guān)鍵思想和Bahdanau在2015年的論文如出一轍。

優(yōu)點(diǎn):模型是平滑可微的

缺點(diǎn):當(dāng)輸入序列非常長的時(shí)候,計(jì)算量會(huì)很大

Hard Attention:每一步只關(guān)注到圖像中的一部分

優(yōu)點(diǎn): 預(yù)測階段具有很小的運(yùn)算量

缺點(diǎn):模型是不可導(dǎo)的而且需要更加復(fù)雜的訓(xùn)練技術(shù),例如強(qiáng)化學(xué)習(xí)和方差降低(variance reduction)

Global & Local Attention

“Luong, et al.,2015” 首次提出了“global”和“l(fā)ocal”注意力機(jī)制。global注意力機(jī)制和soft注意力機(jī)制類似,然而local是hard和soft的有趣的融合,它是對(duì)hard attention的一種改進(jìn),使得它變得可導(dǎo):該模型首先預(yù)測一個(gè)當(dāng)前目標(biāo)詞對(duì)齊的位置和一個(gè)圍繞源位置的窗口,然后用于計(jì)算上下文向量。

相關(guān)鏈接:https://arxiv.org/pdf/1508.04025.pdf

圖8 全局和局部注意力機(jī)制(圖片來自于Luong,et al.,2015中圖2和圖3)

神經(jīng)圖靈機(jī)

1936年,阿蘭·圖靈提出了一個(gè)計(jì)算機(jī)的最小模型。它由一個(gè)無限長的磁帶和一個(gè)與磁帶交互的磁頭組成。磁帶上有無數(shù)的單元格,每個(gè)單元格都填有一個(gè)符號(hào):0,1或空格(“ ”)。操作頭可以讀取符號(hào)、編輯符號(hào),并可以在磁帶上左右移動(dòng)。理論上,圖靈機(jī)可以模擬任何計(jì)算機(jī)算法,不管這個(gè)過程有多復(fù)雜或多耗時(shí)。無限內(nèi)存給圖靈機(jī)帶來了數(shù)學(xué)上無限的優(yōu)勢。然而,無限內(nèi)存在真正的現(xiàn)代計(jì)算機(jī)中是不可行的。

圖9 圖靈機(jī)的樣子:一個(gè)磁帶+一個(gè)處理磁帶的磁頭。(圖片來源:http: aturingmachine.com)

神經(jīng)圖靈機(jī)(NTM,Graves, Wayne & Danihelka, 2014)是一種神經(jīng)網(wǎng)絡(luò)與外部存儲(chǔ)器耦合的模型結(jié)構(gòu)。存儲(chǔ)器模仿圖靈機(jī)磁帶,神經(jīng)網(wǎng)絡(luò)控制操作頭從磁帶讀取或者向磁帶中寫。然而,NTM中的內(nèi)存是有限的,因此它看起來更像是一臺(tái)“神經(jīng)馮諾伊曼機(jī)器”。

NTM包含兩個(gè)主要部件:一個(gè)由神經(jīng)網(wǎng)絡(luò)構(gòu)成的控制器和存儲(chǔ)器??刂破?負(fù)責(zé)對(duì)內(nèi)存執(zhí)行操作。它可以是任何類型的神經(jīng)網(wǎng)絡(luò)(前饋神經(jīng)網(wǎng)絡(luò)或遞歸神經(jīng)網(wǎng)絡(luò))。存儲(chǔ)器:保存處理過的信息。它是一個(gè)大小為`$N imes M$`的矩陣,其中包含N行向量,每個(gè)向量都有M個(gè)維度。

在一次更新迭代的過程中,控制器處理輸入信號(hào)并相應(yīng)地與存儲(chǔ)器進(jìn)行交互以生成輸出。交互由一組并行讀寫頭處理。讀和寫操作都是模糊的,因?yàn)樗鼈兌夹枰L問所有內(nèi)存地址。

圖10 神經(jīng)圖靈機(jī)的結(jié)構(gòu)

讀寫機(jī)制

當(dāng)在時(shí)刻t(注意力向量大小為N)從內(nèi)存中讀取數(shù)據(jù)時(shí),控制分配給不同內(nèi)存位置(矩陣行)的注意量。讀取向量是記憶內(nèi)存的加權(quán)和,權(quán)重根據(jù)注意力強(qiáng)度來衡量。

其中代表向量的第i個(gè)元素,是存儲(chǔ)矩陣的第i行向量。

在t時(shí)刻寫入內(nèi)存時(shí),受LSTM中輸入和遺忘門的啟發(fā),寫入磁頭首先根據(jù)一個(gè)擦除向量擦除一些舊的內(nèi)容,然后通過一個(gè)加法向量添加新的信息到存儲(chǔ)器中。

注意力機(jī)制

在神經(jīng)圖靈機(jī)中,如何產(chǎn)生注意力分布wt取決于尋址機(jī)制:神經(jīng)圖靈機(jī)使用基于內(nèi)容和基于位置的尋址的混合尋址方式。

基于內(nèi)容的尋址方式

基于內(nèi)容的尋址方式,就是根據(jù)控制器從輸入行和內(nèi)存行提取的關(guān)鍵向量kt之間的相似性來創(chuàng)建注意向量。基于內(nèi)容的注意力機(jī)制用余弦相似度來計(jì)算相似性,然后用softmax函數(shù)進(jìn)行歸一化。此外,神經(jīng)圖靈機(jī)增加了放大器βt用來放大或衰減分布的重點(diǎn)。

插值

然后利用插值門,也就是一個(gè)標(biāo)量gt將新生成的基于內(nèi)容的注意向量與上一步的注意權(quán)值進(jìn)行混合:

基于位置的尋址方式

基于位置的尋址將注意向量中不同位置的值相加,并通過允許的整數(shù)移位上的加權(quán)分布進(jìn)行加權(quán)。它等價(jià)于與核函數(shù)st(.)的一維卷積,st(.)是位置偏移的函數(shù)。定義這個(gè)分布有多種方法。參見圖11以獲得啟發(fā)。

圖11 兩種表示位移權(quán)重分布st的方式

最后注意分布由標(biāo)量進(jìn)行銳化增強(qiáng)。

注意向量wt在時(shí)間步長t上生成的完整過程如圖12所示。控制器產(chǎn)生的每個(gè)磁頭的所有參數(shù)都是唯一的。如果有多個(gè)讀寫頭并行,控制器將輸出多個(gè)集合。

圖12 神經(jīng)圖靈機(jī)尋址機(jī)構(gòu)流程圖

指針網(wǎng)絡(luò)(Pointer Network)

在排序或旅行推銷員(travelling salesman)等問題中,輸入和輸出都是順序的數(shù)據(jù)。不幸的是,傳統(tǒng)的seq-2-seq或NMT模型都不能很容易地解決這些問題,因?yàn)檩敵鲈氐碾x散類別不是預(yù)先確定的,而是取決于可變的輸入大小。指針網(wǎng)絡(luò)(Ptr-Net;(Vinyals, et al. 2015)的提出就是為了解決這類問題:當(dāng)輸出元素對(duì)應(yīng)于輸入序列中的位置時(shí)。指針網(wǎng)絡(luò)沒有使用注意力機(jī)制將編碼器的隱藏單元混合到上下文向量中(參見圖8),而是使用注意力機(jī)制直接作用在編碼器上,選擇輸入序列中某個(gè)元素作為解碼器的輸出。

圖13 指針網(wǎng)絡(luò)模型的結(jié)構(gòu)圖(圖片來自于https://lilianweng.github.io/lil-log/assets/images/ptr-net.png)

當(dāng)給定輸入序列為,指針網(wǎng)絡(luò)的輸出是一個(gè)由整數(shù)索引構(gòu)成的序列。指針網(wǎng)絡(luò)依然是以編碼器-解碼器的結(jié)構(gòu)作為基礎(chǔ)。其中編碼器和解碼器的隱含層狀態(tài)分別表示為。指針網(wǎng)絡(luò)使用addictive attention作為對(duì)分?jǐn)?shù)齊函數(shù),然后同樣使用softmax進(jìn)行歸一化從而建立輸出條件概率模型:

可以看到,在指針網(wǎng)絡(luò)中注意機(jī)制被簡化了,因?yàn)樗鼪]有將編碼器狀態(tài)與注意權(quán)重混合到輸出中。這樣,輸出只響應(yīng)位置,而不響應(yīng)輸入內(nèi)容。

Transformer

“Attention is All you Need”這篇文章(Vaswani, et al., 2017),無疑是2017年最有影響力和最有趣的論文之一。它對(duì)soft attention進(jìn)行了大量的改進(jìn),使得在不需要遞歸神經(jīng)網(wǎng)絡(luò)單元(LSTM,GRU)的情況下進(jìn)行seq2seq建模成為了可能。它提出的 Transformer 模型完全建立在自注意力機(jī)制(self-attention)的基礎(chǔ)上,沒有使用任何序列對(duì)齊的遞歸結(jié)構(gòu)。

其模型結(jié)構(gòu)如下:

Key, Value and Query

Transformer的主要部件是一個(gè)叫做“多頭自注意力機(jī)制”的單元(multi-head self-attention mechanism)。Transformer將輸入的編碼表示形式視為一組鍵key-值value對(duì)(K,V),它們的維度都是n(輸入序列長度);在NMT的上下文中,key和value都是編碼器的隱含層狀態(tài)。在解碼器中,上一步的輸出被壓縮為一個(gè)查詢query(Q的維度為m),下一步的輸出是通過映射這個(gè)查詢query到一組鍵key和值value的集合生成的。Attention 函數(shù)的本質(zhì)可以被描述為一個(gè)查詢到一系列鍵-值對(duì)的映射。

Transformer選擇縮放點(diǎn)積(scaled dot-product attention)作為注意力機(jī)制:輸出為各個(gè)值key的加權(quán)和,其中每個(gè)值value的權(quán)重定義為查詢query作用于所有鍵key的縮放點(diǎn)積:

多頭自注意力機(jī)制(Multi-Head Self-Attention)

圖14 多頭縮放點(diǎn)積注意力機(jī)制的結(jié)構(gòu)圖

多頭注意力機(jī)制會(huì)并行計(jì)算縮放點(diǎn)積很多次,而不是僅僅計(jì)算一次。然后將相互獨(dú)立的注意力計(jì)算單元的輸出簡單的拼接在一起,最后通過一個(gè)線性單元轉(zhuǎn)換成期望大小的維度。我認(rèn)為這樣做的動(dòng)機(jī)是因?yàn)楹喜⒖偸怯行У??根?jù)作者在文章中的描述,“多頭注意力機(jī)制允許模型共同關(guān)注來自不同位置的不同子空間的信息。而僅僅有一個(gè)注意力機(jī)制,是不能得到這么豐富的信息的?!?/p>

其中為可學(xué)習(xí)的參數(shù)。

編碼器(Encoder)

圖15 Transformer的編碼器結(jié)構(gòu)

編碼器可以生成基于注意力的表示,其能夠從可能無限大的上下文中定位到特定的信息。

6個(gè)相同的層堆疊在一起

每個(gè)編碼層都有一個(gè)多頭自注意力機(jī)制層和一個(gè)全連接前饋神經(jīng)網(wǎng)絡(luò)單元

每個(gè)編碼子層之間都采用殘差連接方式,并且使用層歸一化(layer normalization)。

每個(gè)子層的輸出數(shù)據(jù)都是相同的維度`$d_ ext{model} = 512$`

解碼器(Decoder)

圖16 Transformer的解碼器結(jié)構(gòu)

解碼器能夠?qū)σ丫幋a的表示進(jìn)行檢索。

6個(gè)相同的層堆疊在一起

每個(gè)解碼層含有兩個(gè)子層結(jié)構(gòu),一個(gè)是多頭注意力機(jī)制,另一個(gè)是全連接前饋神經(jīng)網(wǎng)絡(luò)單元

與編碼器結(jié)構(gòu)類似,每個(gè)解碼器子層之間都采用殘差連接方式,并且使用層歸一化(layer normalization)。

第一個(gè)多頭注意子層被修改,以防止當(dāng)前位置參與到后面的子序列的位置中,因?yàn)槲覀儾幌朐陬A(yù)測當(dāng)前的位置時(shí)有目標(biāo)序列的未來信息對(duì)其進(jìn)行干擾。

完整的結(jié)構(gòu)

有了前面對(duì)編碼器和解碼器結(jié)構(gòu)的介紹,下面將引出Transformer的整體結(jié)構(gòu):

源序列和目標(biāo)序列都先要經(jīng)過一個(gè)embedding層,將其嵌入到相同的維度,例如

為了保存序列的位置信息,使用基于正弦函數(shù)的位置編碼器對(duì)每個(gè)輸入向量進(jìn)行編碼,將編碼向量合并在嵌入向量之后。

softmax函數(shù)和線性層加入到最后解碼器的輸出上。

圖17 Transformer的整體結(jié)構(gòu)

注:作者實(shí)現(xiàn)的一個(gè)Transformer模型:lilianweng/transformer-tensorflow

SNAIL

Transformer模型沒有遞歸結(jié)構(gòu)或者卷積結(jié)構(gòu),即便加入位置編碼單元對(duì)嵌入向量的位置進(jìn)行編碼,對(duì)序列的順序表示也很弱。對(duì)于像強(qiáng)化學(xué)習(xí)這種對(duì)位置依賴性十分敏感的問題,這可能是一個(gè)大問題。

簡單神經(jīng)注意力元學(xué)習(xí)(Simple Neural Attention Meta-Learner)簡稱SNAIL,通過將Transformer的自注意力機(jī)制與時(shí)序卷積相結(jié)合,部分解決了模型中位置編碼的問題。它已被證明擅長解決監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)任務(wù)。

圖18 SNAIL模型的結(jié)構(gòu)圖

SNAIL的產(chǎn)生歸功于元學(xué)習(xí),這是另一個(gè)值得寫一篇文章來歸納的大話題。但簡單來說,元學(xué)習(xí)用來預(yù)測那些新穎的但未被觀察到的、具有跟已知樣本有相同分布的樣本數(shù)據(jù)。

自注意力生成對(duì)抗網(wǎng)路(Self-Attention GAN)

最后,我想提到一個(gè)最新發(fā)布的生成對(duì)抗網(wǎng)絡(luò)模型,自注意力生成對(duì)抗網(wǎng)路,我們來看看注意力機(jī)制是如何應(yīng)用到生成對(duì)抗網(wǎng)絡(luò)上以提高生成圖像的質(zhì)量的。

經(jīng)典的DGGAN(深度卷積生成對(duì)抗網(wǎng)絡(luò))將生成器和判別器都表示成多層卷積神經(jīng)網(wǎng)絡(luò)。然而,表示的能力受到濾波器大小的限制,因?yàn)橐粋€(gè)像素的特征受限于一塊小的局部區(qū)域。為了連接相隔很遠(yuǎn)的區(qū)域,必須通過卷積操作來稀釋這些特征,盡管如此,他們之間的依賴性也未必能得到很好的保證。

在計(jì)算機(jī)視覺中,由于上下文向量可以通過soft-attention明確地學(xué)習(xí)到一個(gè)像素與其他位置所有像素之間的關(guān)系,即便是相距甚遠(yuǎn)的區(qū)域,它也可以輕松捕獲全局的依賴關(guān)系。因此,如果將self-attention與GAN相結(jié)合,有望處理更多細(xì)節(jié)信息。

圖19 卷積操作和自注意力機(jī)制訪問到的區(qū)域大有不同

SAGAN采用非局部神經(jīng)網(wǎng)絡(luò)(non-local neural network)的注意力方法來計(jì)算。卷積圖像的特征圖構(gòu)成三個(gè)分支,分別對(duì)應(yīng)于Transformer模型中的鍵、值和查詢?nèi)齻€(gè)概念。

然后我們使用點(diǎn)積(dot-product)注意力機(jī)制來得到自注意特征圖:

圖20 SAGAN中的自注意力機(jī)制

注意到,是注意力圖(attention map)中的一個(gè)元素,它表示模型在生成第j個(gè)位置時(shí)對(duì)第i個(gè)位置應(yīng)該注意多少程度。都是1x1的卷積核。

如果你不太明白1x1的卷積是什么意思,請(qǐng)參看Andrew Ng的一個(gè)簡短的教程

(鏈接:https://www.youtube.com/watch?v=9EZVpLTPGz8)。

列向量是最終的輸出結(jié)果,。

之后,輸出的注意層(attention layer)乘以一個(gè)比例系數(shù),再放回到原始的特征圖中,這類似于殘差連接方式:

盡管縮放系數(shù)在訓(xùn)練期間從0逐漸增加,但是網(wǎng)絡(luò)被配置為一開始依賴局部區(qū)域中的信息,然后通過分配更多權(quán)重給更遠(yuǎn)區(qū)域逐漸學(xué)習(xí)到更遠(yuǎn)區(qū)域的信息。

圖21 SAGAN生成的大小為128×128的不同類別的示例圖像

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:Deep Reading | 從0到1再讀注意力機(jī)制,此文必收藏!

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深度分析NLP中的注意力機(jī)制

    注意力機(jī)制越發(fā)頻繁的出現(xiàn)在文獻(xiàn)中,因此對(duì)注意力機(jī)制的學(xué)習(xí)、掌握與應(yīng)用顯得十分重要。本文便對(duì)注意力機(jī)制
    的頭像 發(fā)表于 02-17 09:18 ?3860次閱讀

    注意力機(jī)制或?qū)⑹俏磥頇C(jī)器學(xué)習(xí)的核心要素

    目前注意力機(jī)制已是深度學(xué)習(xí)里的大殺器,無論是圖像處理、語音識(shí)別還是自然語言處理的各種不同類型的任務(wù)中,都很容易遇到注意力模型的身影。
    發(fā)表于 05-07 09:37 ?1316次閱讀

    基于注意力機(jī)制的深度興趣網(wǎng)絡(luò)點(diǎn)擊率模型

    廣告點(diǎn)擊率(CTR)是互聯(lián)網(wǎng)公司進(jìn)行流量分配的重要依據(jù),針對(duì)目前點(diǎn)擊率預(yù)估精度較低的問題,結(jié)合通用的神經(jīng)網(wǎng)絡(luò)解決方案,構(gòu)建一種基于注意力機(jī)制的深度興趣網(wǎng)絡(luò)(ADIN)模型。設(shè)計(jì)一個(gè)局部激活單元
    發(fā)表于 03-12 10:55 ?5次下載
    基于<b class='flag-5'>注意力</b><b class='flag-5'>機(jī)制</b>的深度興趣網(wǎng)絡(luò)點(diǎn)擊率<b class='flag-5'>模型</b>

    基于注意力機(jī)制的深度學(xué)習(xí)模型AT-DPCNN

    情感分析是自然語言處理領(lǐng)域的一個(gè)重要分支,卷積神經(jīng)網(wǎng)絡(luò)(CNN)在文本情感分析方面取得了較好的效果,但其未充分提取文本信息中的關(guān)鍵情感信息。為此,建立一種基于注意力機(jī)制的深度學(xué)習(xí)模型AT-
    發(fā)表于 03-17 09:53 ?12次下載
    基于<b class='flag-5'>注意力</b><b class='flag-5'>機(jī)制</b>的深度學(xué)習(xí)<b class='flag-5'>模型</b>AT-DPCNN

    基于層次注意力機(jī)制的多模態(tài)圍堵情感識(shí)別模型

    識(shí)別模型。在音頻模態(tài)中加人頻率注意力機(jī)制學(xué)習(xí)頻域上下文信息,利用多模態(tài)注意力機(jī)制將視頻特征與音頻特征進(jìn)行融合,依據(jù)改進(jìn)的損失函數(shù)對(duì)模態(tài)缺失問
    發(fā)表于 04-01 11:20 ?9次下載
    基于層次<b class='flag-5'>注意力</b><b class='flag-5'>機(jī)制</b>的多模態(tài)圍堵情感識(shí)別<b class='flag-5'>模型</b>

    基于多層CNN和注意力機(jī)制的文本摘要模型

    基于注意力機(jī)制的編解碼模型在文本摘要、杌器翻譯等序列到序列任務(wù)上得到了廣泛的應(yīng)用。在深度學(xué)習(xí)框架中,深層神經(jīng)網(wǎng)絡(luò)能夠提取輸λ數(shù)據(jù)不冋的特征表示,因此傳統(tǒng)編解碼模型中通常堆疊多層解碼器來
    發(fā)表于 04-07 11:35 ?2次下載
    基于多層CNN和<b class='flag-5'>注意力</b><b class='flag-5'>機(jī)制</b>的文本摘要<b class='flag-5'>模型</b>

    聯(lián)合評(píng)論文本層級(jí)注意力和外積的推薦方法

    在協(xié)同過濾算法中,基于評(píng)分?jǐn)?shù)據(jù)的矩陣分解方法得到廣泛應(yīng)用和發(fā)展,但評(píng)分?jǐn)?shù)據(jù)稀疏性問題影響了該方法的推薦質(zhì)量。針對(duì)此問題,提出一種聯(lián)合評(píng)論文本層級(jí)注意力和外積的推薦方法( RHAOR)。
    發(fā)表于 04-12 10:33 ?7次下載
    聯(lián)合評(píng)論文本層級(jí)<b class='flag-5'>注意力</b>和外積的推薦<b class='flag-5'>方法</b>

    基于循環(huán)卷積注意力模型的文本情感分類方法

    和全局信息。文中針對(duì)單標(biāo)記和多標(biāo)記情感分類任務(wù),提出一種循環(huán)卷積注意力模型( LSTM-CNN-ATT,LCA)。該模型利用注意力機(jī)制融合卷
    發(fā)表于 04-14 14:39 ?10次下載
    基于循環(huán)卷積<b class='flag-5'>注意力</b><b class='flag-5'>模型</b>的文本情感分類<b class='flag-5'>方法</b>

    結(jié)合注意力機(jī)制的跨域服裝檢索方法

    針對(duì)跨域服裝檢索中服裝商品圖像拍攝嚴(yán)格約束光照、背景等條件,而用戶圖像源自復(fù)雜多變的日常生活場景,難以避免背景干擾以及視角、姿態(tài)引起的服裝形變等問題。提出一種結(jié)合注意力機(jī)制的跨域服裝檢索方法。利用
    發(fā)表于 05-12 14:19 ?2次下載

    基于注意力機(jī)制等的社交網(wǎng)絡(luò)熱度預(yù)測模型

    基于注意力機(jī)制等的社交網(wǎng)絡(luò)熱度預(yù)測模型
    發(fā)表于 06-07 15:12 ?14次下載

    基于多通道自注意力機(jī)制的電子病歷架構(gòu)

    基于多通道自注意力機(jī)制的電子病歷架構(gòu)
    發(fā)表于 06-24 16:19 ?75次下載

    基于注意力機(jī)制的跨域服裝檢索方法綜述

    基于注意力機(jī)制的跨域服裝檢索方法綜述
    發(fā)表于 06-27 10:33 ?2次下載

    基于注意力機(jī)制的新聞文本分類模型

    基于注意力機(jī)制的新聞文本分類模型
    發(fā)表于 06-27 15:32 ?30次下載

    計(jì)算機(jī)視覺中的注意力機(jī)制

    計(jì)算機(jī)視覺中的注意力機(jī)制 卷積神經(jīng)網(wǎng)絡(luò)中常用的Attention 參考 注意力機(jī)制簡介與分類 注意力機(jī)
    發(fā)表于 05-22 09:46 ?0次下載
    計(jì)算機(jī)視覺中的<b class='flag-5'>注意力</b><b class='flag-5'>機(jī)制</b>

    PyTorch教程11.4之Bahdanau注意力機(jī)制

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程11.4之Bahdanau注意力機(jī)制.pdf》資料免費(fèi)下載
    發(fā)表于 06-05 15:11 ?0次下載
    PyTorch教程11.4之Bahdanau<b class='flag-5'>注意力</b><b class='flag-5'>機(jī)制</b>