隨著深度學(xué)習(xí)和人工智能的發(fā)展,許多研究人員對(duì)神經(jīng)網(wǎng)絡(luò)中的“注意力機(jī)制”感興趣。本文旨在對(duì)深度學(xué)習(xí)注意力機(jī)制的內(nèi)容進(jìn)行高層次的解釋,并且詳細(xì)說(shuō)明計(jì)算注意力的一些技術(shù)步驟。如果您需要更多的技術(shù)細(xì)節(jié),請(qǐng)參考英文,特別是Cho等人最近的綜述[3]。不幸的是,這些模型并不總是直接就能憑借自己實(shí)現(xiàn),而且到目前為止只有一些開源代碼發(fā)布了出來(lái)。
神經(jīng)科學(xué)和計(jì)算神經(jīng)科學(xué)[1,2]已經(jīng)廣泛研究了涉及注意力的神經(jīng)過(guò)程[1,2]。特別是視覺(jué)注意力機(jī)制:許多動(dòng)物關(guān)注其視覺(jué)輸入的特定部分以計(jì)算適當(dāng)?shù)姆磻?yīng)。這個(gè)原則對(duì)神經(jīng)計(jì)算有很大的影響,因?yàn)槲覀冃枰x擇最相關(guān)的信息,而不是使用所有可用的信息。在輸入中,很大一部分與計(jì)算神經(jīng)反應(yīng)無(wú)關(guān)。
類似的想法 :“專注于輸入的特定部分 ” 已經(jīng)應(yīng)用于深度學(xué)習(xí)中,用于語(yǔ)音識(shí)別,翻譯,推理和對(duì)象的視覺(jué)識(shí)別。
讓我們舉一個(gè)例子來(lái)解釋注意機(jī)制。我們想要實(shí)現(xiàn)的任務(wù)是圖像標(biāo)注:我們想要為給定圖像生成字幕。
“經(jīng)典”圖像字幕系統(tǒng)將使用預(yù)先訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像進(jìn)行編碼,該網(wǎng)絡(luò)將產(chǎn)生隱藏狀態(tài)h。然后,它將通過(guò)使用遞歸神經(jīng)網(wǎng)絡(luò)(RNN)解碼該隱藏狀態(tài),并遞歸地生成字幕的每個(gè)字。這種方法已經(jīng)被幾個(gè)小組應(yīng)用,包括[11](見下圖):
這種方法的問(wèn)題在于,當(dāng)模型試圖生成標(biāo)題的下一個(gè)單詞時(shí),該單詞通常只描述圖像的一部分。使用圖像h的整個(gè)表示來(lái)調(diào)節(jié)每個(gè)單詞的生成不能有效地為圖像的不同部分產(chǎn)生不同的單詞。這正是注意機(jī)制有用的地方。
利用注意力機(jī)制,圖像首先被分成n個(gè)部分,并且我們使用每個(gè)部分h_1,...,h_n的卷積神經(jīng)網(wǎng)絡(luò)(CNN)表示來(lái)計(jì)算。當(dāng)RNN生成新單詞時(shí),注意力機(jī)制關(guān)注于圖像的相關(guān)部分,因此解碼器僅使用圖像的特定部分。
在下圖(上排)中,我們可以看到標(biāo)題的每個(gè)單詞用于生成圖像的哪個(gè)部分(白色)。
我們現(xiàn)在將在解釋注意力模型的一般工作原理。對(duì)注意力模型應(yīng)用的綜述文章[3] 詳述了基于注意力的編碼器 - 解碼器網(wǎng)絡(luò)的實(shí)現(xiàn),需要更多細(xì)節(jié)知識(shí)的可以參考。
注意力機(jī)制的細(xì)致解釋:注意力模型是一種采用n個(gè)參數(shù)y_1,...,y_n(在前面的例子中,y_i將是h_i)和上下文c的方法。它返回一個(gè)矢量z,它應(yīng)該是y_i的“摘要”,側(cè)重于與上下文c相關(guān)的信息。更正式地,它返回y_i的加權(quán)算術(shù)平均值,并且根據(jù)給定上下文c的每個(gè)y_i的相關(guān)性來(lái)選擇權(quán)重。
在前面給出的例子中,上下文是生成句子的開頭,y_i是圖像部分的表示(h_i),輸出是過(guò)濾圖像的表示,過(guò)濾器放置了焦點(diǎn)。當(dāng)前生成的單詞的有趣部分。
注意力模型的一個(gè)有趣特征是算術(shù)平均值的權(quán)重是可訪問(wèn)的并且可以繪制。這正是我們之前顯示的數(shù)字,如果此圖像的重量很高,則像素更白。
但這個(gè)黑匣子到底在做什么呢?整個(gè)注意力模型的數(shù)字將是這樣的:
這個(gè)網(wǎng)絡(luò)似乎很復(fù)雜,但我們將逐步解釋它。
首先,我們認(rèn)識(shí)到輸入。 c是上下文,y_i是我們正在查看的“數(shù)據(jù)的一部分”。
在下一步,網(wǎng)絡(luò)使用tanh層計(jì)算m_1,... m_n。這意味著我們計(jì)算y_i和c的值的“聚合”。這里一個(gè)重要的注意事項(xiàng)是,每個(gè)m_i的計(jì)算都沒(méi)有查看j 不等于 i的其他y_j。它們是獨(dú)立計(jì)算的。
然后我們將m_1, m_2,..m_n 傳遞到后面一層,計(jì)算softmax, softmax通常用于分類器的最后一層設(shè)置。
這里,s_i是在學(xué)習(xí)方向上投影的m_i的softmax。因此,根據(jù)上下文,softmax可以被認(rèn)為是變量的“相關(guān)性”的最大值。
輸出z是所有y_i的加權(quán)算術(shù)平均值,其中權(quán)重表示根據(jù)上下文c的每個(gè)變量的相關(guān)性。
請(qǐng)注意以上我們實(shí)現(xiàn)的是“soft-attention”, 它是一種完全可區(qū)分的確定性機(jī)制,可插入現(xiàn)有系統(tǒng),并且梯度通過(guò)注意機(jī)制傳播,同時(shí)它們通過(guò)網(wǎng)絡(luò)的其余部分傳播。
回到圖像標(biāo)注:我們可以識(shí)別出用于圖像字幕的“經(jīng)典”模型的圖形,但是有了一層新的注意力模型。當(dāng)我們想要預(yù)測(cè)標(biāo)題的新單詞時(shí)會(huì)發(fā)生什么?如果我們預(yù)測(cè)了i個(gè)單詞,LSTM的隱藏狀態(tài)是h_i。我們使用h_i作為上下文選擇圖像的“相關(guān)”部分。然后,注意模型z_i的輸出被用作LSTM的輸入,該輸出是被過(guò)濾的圖像的表示,其僅保留圖像的相關(guān)部分。然后,LSTM預(yù)測(cè)一個(gè)新單詞,并返回一個(gè)新的隱藏狀態(tài)h_ {i + 1}。
沒(méi)有RNN的Attention:到目前為止,我們僅在編碼器 - 解碼器框架(即具有RNN)中描述了注意力模型。但是,當(dāng)輸入順序無(wú)關(guān)緊要時(shí),可以考慮獨(dú)立的隱藏狀態(tài)h_j。例如在Raffel等[10]中就是這種情況,其中注意力模型是完全前饋的。
參考文獻(xiàn)
[1] Itti, Laurent, Christof Koch, and Ernst Niebur. ? A model of saliency-based visual attention for rapid scene analysis. ? IEEE Transactions on Pattern Analysis & Machine Intelligence 11 (1998): 1254-1259.
[2] Desimone, Robert, and John Duncan. ? Neural mechanisms of selective visual attention. ? Annual review of neuroscience 18.1 (1995): 193-222.
[3] Cho, Kyunghyun, Aaron Courville, and Yoshua Bengio. ? Describing Multimedia Content using Attention-based Encoder–Decoder Networks. ? arXiv preprint arXiv:1507.01053 (2015)
[4] Xu, Kelvin, et al. ? Show, attend and tell: Neural image caption generation with visual attention. ? arXiv preprint arXiv:1502.03044 (2015).
[5] Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. ? Neural machine translation by jointly learning to align and translate. ? arXiv preprint arXiv:1409.0473(2014).
[6] Sukhbaatar, Sainbayar, Jason Weston, and Rob Fergus. ? End-to-end memory networks. ? Advances in Neural Information Processing Systems. (2015).
[7] Graves, Alex, Greg Wayne, and Ivo Danihelka. ? Neural Turing Machines. ? arXiv preprint arXiv:1410.5401 (2014).
[8] Joulin, Armand, and Tomas Mikolov. ? Inferring Algorithmic Patterns with Stack-Augmented Recurrent Nets. ? arXiv preprint arXiv:1503.01007 (2015).
[9] Hermann, Karl Moritz, et al. ? Teaching machines to read and comprehend. ? Advances in Neural Information Processing Systems. 2015.
[10] Raffel, Colin, and Daniel PW Ellis. ? Feed-Forward Networks with Attention Can Solve Some Long-Term Memory Problems. ? arXiv preprint arXiv:1512.08756 (2015).
[11] Vinyals, Oriol, et al. ? Show and tell: A neural image caption generator. ? arXiv preprint arXiv:1411.4555 (2014).
聯(lián)系客服