<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          深度學(xué)習(xí)中Attention機(jī)制的“前世今生”

          共 3098字,需瀏覽 7分鐘

           ·

          2021-10-28 13:41

          【寫在前面】

          隨著注意力在機(jī)器學(xué)習(xí)中的普及,包含注意力機(jī)制的神經(jīng)結(jié)構(gòu)也在逐漸發(fā)展。但是大多數(shù)人似乎只知道Transformer中的Self-Attention。在文本中,我們來(lái)介紹一下Attention機(jī)制的“前世今生 ”(即Attention機(jī)制的發(fā)展),Attention的發(fā)展主要經(jīng)歷了四個(gè)階段:

          (1)The Encoder-Decoder Architecture ?(編-解碼器結(jié)構(gòu))

          (2)The Transformer?

          (3)Graph Neural Networks ?(圖神經(jīng)網(wǎng)絡(luò))?

          (4)Memory-Augmented Neural Networks (增強(qiáng)記憶神經(jīng)網(wǎng)絡(luò))

          對(duì)啦,關(guān)于各種Attention的核心代碼復(fù)現(xiàn),我也給大家準(zhǔn)備好了,保證深度學(xué)習(xí)的小白也能看懂,請(qǐng)大家放心食用

          https://github.com/xmu-xiaoma666/External-Attention-pytorch


          1. 編-解碼器結(jié)構(gòu)

          編解碼器結(jié)構(gòu)被廣泛應(yīng)用于語(yǔ)言處理中的序列到序列(seq2seq)任務(wù)。在語(yǔ)言處理領(lǐng)域,這類任務(wù)的例子包括機(jī)器翻譯和圖像字幕。最早使用注意力是作為基于 RNN 的編碼器框架的一部分來(lái)編碼長(zhǎng)輸入句子。因此,注意力在這個(gè)架構(gòu)中得到了最廣泛的應(yīng)用。

          在機(jī)器翻譯的上下文中,這樣一個(gè) seq2seq 任務(wù)將涉及到將一個(gè)輸入序列 i = { a,b,c,< eos > }轉(zhuǎn)換成一個(gè)不同長(zhǎng)度的輸出序列 o = { w,x,y,z,< eos > }。對(duì)于一個(gè)未經(jīng)Attention的基于 RNN 的編解碼器架構(gòu),展開每個(gè) RNN 將產(chǎn)生以下圖形:

          在這里,編碼器一次讀取一個(gè)單詞的輸入序列,每次更新其內(nèi)部狀態(tài)。當(dāng)它遇到 < eos > 符號(hào)時(shí)停止,這表示序列的結(jié)束已經(jīng)到達(dá)。由編碼器生成的隱藏狀態(tài)實(shí)質(zhì)上包含輸入序列的向量表示,然后由解碼器處理。

          解碼器一次生成一個(gè)單詞的輸出序列,將前一時(shí)間步驟(t-1)處的單詞作為輸入,生成輸出序列中的下一個(gè)單詞。一個(gè) < eos > 符號(hào)在解碼端信號(hào)表示解碼過程已經(jīng)結(jié)束。

          當(dāng)不同長(zhǎng)度和復(fù)雜度的序列用固定長(zhǎng)度的矢量表示時(shí),編解碼器結(jié)構(gòu)的問題就出現(xiàn)了,這可能導(dǎo)致解碼器丟失重要信息。

          為了解決這個(gè)問題,一種基于注意力的體系結(jié)構(gòu)在編碼器和解碼器之間引入了一種注意機(jī)制。

          在這里,注意機(jī)制(φ)學(xué)習(xí)一組注意力權(quán)重,捕獲編碼向量(v)和解碼器的隱藏狀態(tài)(h)之間的關(guān)系,通過編碼器所有隱藏狀態(tài)的加權(quán)和生成上下文向量(c)。這樣,解碼器就可以訪問整個(gè)輸入序列,從而attend與生成輸出最相關(guān)的輸入信息。

          2. The Transformer

          Transformer的體系結(jié)構(gòu)也實(shí)現(xiàn)了編碼器和解碼器,然而,與我們上面討論的體系結(jié)構(gòu)相反,它不依賴于循環(huán)神經(jīng)網(wǎng)絡(luò)的使用。Transformer架構(gòu)不需要任何“循環(huán)”,而是完全依賴于自注意機(jī)制。在計(jì)算復(fù)雜度方面,當(dāng)序列長(zhǎng)度 n 小于表征維數(shù) d 時(shí),自注意層比遞歸層快。

          自注意機(jī)制依賴于查詢、鍵和值的使用,這些查詢、鍵和值是通過用不同的權(quán)重矩陣乘以編碼器對(duì)同一輸入序列的表示而生成的。Transformer使用點(diǎn)積(或乘法)注意力,在生成注意力權(quán)重的過程中,每個(gè)查詢都通過點(diǎn)積操作與鍵數(shù)據(jù)庫(kù)匹配。然后將這些權(quán)重乘以這些值得到最終的注意力向量。

          直觀地說(shuō),由于所有查詢、鍵和值都來(lái)自相同的輸入序列,因此自我注意機(jī)制捕獲同一序列中不同元素之間的關(guān)系,突出顯示那些最相關(guān)的元素。

          由于Transformer不依賴RNN,通過增加編碼器對(duì)每個(gè)元素的表示,可以保存序列中每個(gè)元素的位置信息。這意味著Transformer結(jié)構(gòu)也可以應(yīng)用于計(jì)算機(jī)視覺任務(wù)的圖像分類,分割或圖像字幕。

          此外,幾個(gè)注意力層可以并行地堆疊在一起,這被稱為多頭注意力。每個(gè)頭在同一個(gè)輸入的不同線性變換下平行工作,然后將頭的輸出concat起來(lái)產(chǎn)生最終的注意結(jié)果。擁有多頭模型的好處是每個(gè)頭可以關(guān)注序列的不同元素。

          3. 圖神經(jīng)網(wǎng)絡(luò)

          圖可以定義為通過連接(或邊)鏈接的一組節(jié)點(diǎn)(或頂點(diǎn))。圖是一種通用的數(shù)據(jù)結(jié)構(gòu),非常適合在許多現(xiàn)實(shí)場(chǎng)景中組織數(shù)據(jù)的方式。例如,在一個(gè)社交網(wǎng)絡(luò)中,用戶可以用圖中的節(jié)點(diǎn)來(lái)表示,他們與朋友的關(guān)系可以用邊來(lái)表示。或者一個(gè)分子,其中的節(jié)點(diǎn)是原子,邊代表它們之間的化學(xué)鍵。對(duì)于計(jì)算機(jī)視覺,我們可以把一幅圖像想象成一個(gè)圖形,其中每個(gè)像素都是一個(gè)節(jié)點(diǎn),直接連接到它的鄰近像素。

          目前流行的圖注意網(wǎng)絡(luò)(Graph Attention Networks,GAT) ,它在圖卷積網(wǎng)絡(luò)(GCN)中采用一種自注意機(jī)制,后者通過在圖形節(jié)點(diǎn)上執(zhí)行卷積來(lái)更新狀態(tài)向量。通過加權(quán)濾波器對(duì)中心節(jié)點(diǎn)和相鄰節(jié)點(diǎn)進(jìn)行卷積運(yùn)算,更新中心節(jié)點(diǎn)的表示。GCN 中的濾波器權(quán)值可以是固定的或可學(xué)習(xí)的。

          相比之下,GAT 使用注意力分?jǐn)?shù)來(lái)給相鄰節(jié)點(diǎn)賦權(quán)。這些注意力得分的計(jì)算過程與前面討論的 seq2seq 任務(wù)的計(jì)算過程相似: 首先計(jì)算兩個(gè)相鄰節(jié)點(diǎn)的特征向量之間的對(duì)齊得分,然后通過應(yīng)用 softmax 操作計(jì)算注意力得分,最后通過對(duì)所有相鄰節(jié)點(diǎn)的特征向量進(jìn)行加權(quán)組合計(jì)算每個(gè)節(jié)點(diǎn)的輸出特征向量(相當(dāng)于 seq2seq 任務(wù)中的上下文向量)。

          一旦生成了最終的輸出,就可以將其用作后續(xù)任務(wù)特定層的輸入??梢酝ㄟ^圖解決的任務(wù)可以是不同群體之間單個(gè)節(jié)點(diǎn)的分類(例如,預(yù)測(cè)一個(gè)人將決定加入幾個(gè)俱樂部中的哪一個(gè)) ; 或者是單個(gè)邊的分類,以確定兩個(gè)節(jié)點(diǎn)之間是否存在邊(例如,預(yù)測(cè)一個(gè)社交網(wǎng)絡(luò)中的兩個(gè)人是否可能是朋友) ; 或者甚至是完整圖表的分類(例如,預(yù)測(cè)一個(gè)分子是否有毒)。

          4. 增強(qiáng)記憶神經(jīng)網(wǎng)絡(luò)

          在我們已經(jīng)回顧過的基于注意力的編碼器-解碼器結(jié)構(gòu)中,編碼輸入序列的向量集可以看作是外部存儲(chǔ)器,編碼器寫入它,解碼器讀取它。但是,由于編碼器只能寫入這個(gè)存儲(chǔ)器,而解碼器只能讀取,因此會(huì)出現(xiàn)一個(gè)限制。

          記憶增強(qiáng)神經(jīng)網(wǎng)絡(luò)(Memory-Augmented Neural Networks,MANNs)就是針對(duì)這一缺陷而提出的新算法。神經(jīng)圖靈機(jī)(NTM)是一種類型的 MANN。它由一個(gè)神經(jīng)網(wǎng)絡(luò)控制器組成,該控制器接受輸入產(chǎn)生輸出,并對(duì)存儲(chǔ)器執(zhí)行讀寫操作。

          讀取頭(Read Head)執(zhí)行的操作類似于用于 seq2seq 任務(wù)的注意機(jī)制,其中注意力權(quán)重表示所考慮的向量在形成輸出中的重要性。讀取頭總是讀取完整的內(nèi)存矩陣,但它是通過注意不同強(qiáng)度的不同內(nèi)存向量來(lái)完成的。

          然后,讀取操作的輸出由內(nèi)存向量的加權(quán)和定義。寫頭(Write Head)根據(jù)注意力和擦除向量中的值擦除內(nèi)存位置,并通過添加向量寫入信息。

          人工神經(jīng)網(wǎng)絡(luò)應(yīng)用的例子包括問答和聊天機(jī)器人,其中外部存儲(chǔ)器存儲(chǔ)了大量序列(或事實(shí))數(shù)據(jù)庫(kù),神經(jīng)網(wǎng)絡(luò)利用這些數(shù)據(jù)。注意力機(jī)制的作用在從數(shù)據(jù)庫(kù)中選擇與手頭任務(wù)相關(guān)性更強(qiáng)的事實(shí)方面是至關(guān)重要的。

          長(zhǎng)按掃描下方二維碼添加小助手并加入交流群,群里博士大佬云集,每日討論話題有目標(biāo)檢測(cè)、語(yǔ)義分割、超分辨率、模型部署、數(shù)學(xué)基礎(chǔ)知識(shí)、算法面試題分享的等等內(nèi)容,當(dāng)然也少不了搬磚人的扯犢子

          長(zhǎng)按掃描下方二維碼添加小助手。

          可以一起討論遇到的問題

          聲明:轉(zhuǎn)載請(qǐng)說(shuō)明出處

          掃描下方二維碼關(guān)注【集智書童】公眾號(hào),獲取更多實(shí)踐項(xiàng)目源碼和論文解讀,非常期待你我的相遇,讓我們以夢(mèng)為馬,砥礪前行!

          瀏覽 125
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中日欧美中文字幕第一页 | 开心五月丁香五月 | 日本草逼网 | 国产在线内射 | 激情人妻网站 |