Attention和增強(qiáng)RNN(Attention and Augmented Recurrent Neural Networks)

譯文:Attention and Augmented Recurrent Neural Networks

循環(huán)神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的主要手段之一,使得神經(jīng)網(wǎng)絡(luò)能夠處理諸如文本、音頻、視頻之類的序列數(shù)據(jù)。 它們可以對(duì)源信息進(jìn)行高級(jí)理解、注釋序列,甚至從頭開始生成新序列!

image.png

基本的RNN處理長(zhǎng)依賴較為困難,但是一個(gè)特殊的變體 - LSTM 可以解決這些問(wèn)題。 已經(jīng)證明這些模型非常強(qiáng)大,在翻譯、語(yǔ)音識(shí)別、圖像內(nèi)容提取等在內(nèi)的許多任務(wù)中取得了顯著的成果。 這使得循環(huán)神經(jīng)網(wǎng)絡(luò)在過(guò)去幾年中變得非常普遍。

正如現(xiàn)在,我們看到越來(lái)越多的嘗試在添加新的屬性來(lái)強(qiáng)化RNN,在以下 四個(gè)方向特別突出、令人興奮:

單獨(dú)來(lái)看,這些技術(shù)都是RNN的有力擴(kuò)展,但真正令人驚奇的是它們可以組合起來(lái),看起來(lái)似乎只是在更廣闊的空間中的點(diǎn)。 此外,他們都依賴于相同的底層技巧——attention。

我們的猜測(cè)是,這些“增強(qiáng)型RNN”將在未來(lái)幾年對(duì)擴(kuò)大深度學(xué)習(xí)的能力發(fā)揮重要作用。

神經(jīng)圖靈機(jī)(Neural Turing Machines)

神經(jīng)圖靈機(jī)將RNN與外部存儲(chǔ)器組合,由于向量是神經(jīng)網(wǎng)絡(luò)的自然語(yǔ)言,所謂的外部存儲(chǔ)就是一系列向量:

但這些讀和寫操作如何工作呢? 面臨的挑戰(zhàn)是我們想讓他們有所差異。 特別地,我們希望使它們會(huì)因我們讀、寫的位置的差異而有所差異,所以我們可以學(xué)習(xí)讀和寫。 這是一個(gè)棘手的問(wèn)題,因?yàn)閮?nèi)存地址是離散的。 NTM(神經(jīng)圖靈機(jī))采取了一個(gè)非常聰明的解決方案:在每一步都進(jìn)行讀寫操作,只不過(guò)程度不同而已。

例如,讓我們專注于閱操作, RNN不是指定單個(gè)位置,而是輸出一個(gè)“關(guān)注分布”,這個(gè)分布描述我們?nèi)绾畏峙湮覀冴P(guān)心不同內(nèi)存位置的數(shù)量。 這樣,讀操作的結(jié)果是加權(quán)和。

同樣地,我們每一步都進(jìn)行寫操作,只是成不不同而已。同樣,一個(gè)注意力分布描述了我們?cè)诿總€(gè)位置寫的多少。 我們將內(nèi)存中該位置的新值與舊值進(jìn)行凸起組合,位置信息注意力的權(quán)重決定。

但NTM如何決定記憶中的哪些位置將注意力增強(qiáng)? 他們實(shí)際上使用了兩種不同的方法:基于內(nèi)容的關(guān)注和基于位置的關(guān)注。 基于內(nèi)容的注意力模型允許NTM通過(guò)其內(nèi)存搜索并專注于匹配所需內(nèi)容的位置,而基于位置的注意力模型允許內(nèi)存中的相對(duì)移動(dòng),使NTM能夠循環(huán)。

這種讀寫能力允許NTM執(zhí)行許多簡(jiǎn)單的算法。 例如,他們可以學(xué)習(xí)存儲(chǔ)一個(gè)長(zhǎng)序列,然后循環(huán)往復(fù)執(zhí)行。 在這樣做時(shí),我們可以看到他們讀寫的內(nèi)容,以便更好地了解他們?cè)谧鍪裁矗?/p>

他們還可以學(xué)習(xí)模擬查找表,甚至學(xué)習(xí)排序數(shù)字(盡管它們是欺騙性的)! 另一方面,他們?nèi)匀徊荒茏鲈S多基本的事情,如乘法和加法。

自從NTM的論文出來(lái)以后,已經(jīng)出現(xiàn)了一些令人興奮的論文,探索了類似的方向。 Neural GPU 克服了NTM無(wú)法對(duì)數(shù)字進(jìn)行加和乘的操作。 Zaremba&Sutskever使用強(qiáng)化學(xué)習(xí)訓(xùn)練NTM

在某些客觀意義上,這些模型可以執(zhí)行的許多任務(wù)。像神經(jīng)圖靈機(jī)器這樣的模型似乎已經(jīng)打破了傳統(tǒng)模型的限制。

Attentional Interfaces

當(dāng)我在翻譯句子時(shí),我特別注意我正在翻譯的單詞。 當(dāng)我錄制錄音時(shí),我會(huì)仔細(xì)聆聽我正在積極寫下的片段。 如果你要我描述我正在坐著的房間,我會(huì)盯著正在看的物體。

神經(jīng)網(wǎng)絡(luò)可以使用注意力來(lái)實(shí)現(xiàn)同樣的行為,重點(diǎn)放在信息的一部分上。 例如,一個(gè)RNN的輸出可以作為另一個(gè)RNN的輸入。 在每個(gè)時(shí)間點(diǎn),它關(guān)注于另一個(gè)RNN的不同位置。

我們希望關(guān)注點(diǎn)是可以區(qū)分的,所以我們可以學(xué)習(xí)在哪里集中。 為了做到這一點(diǎn),我們使了在神經(jīng)圖靈機(jī)中相同的技巧:我們專注于各個(gè)點(diǎn),只是程度不同。

注意分布通常是基于內(nèi)容產(chǎn)生的。 Attending RNN生成一個(gè)query,描述它想要關(guān)注的內(nèi)容。 每個(gè)item都與這個(gè)query做點(diǎn)積以產(chǎn)生分?jǐn)?shù),這個(gè)分?jǐn)?shù)描述了item與query匹配的程度。 將得分加入到softmax中以產(chǎn)生注意力分布。

Attention的一個(gè)應(yīng)用就是翻譯。 一個(gè)傳統(tǒng)的sequence-to-sequence模型必須將整個(gè)輸入變成單個(gè)向量,然后將其擴(kuò)展回來(lái)。 Attention模型規(guī)避了這個(gè)問(wèn)題,其通過(guò)允許RNN處理輸入來(lái)傳遞關(guān)于其看到的每個(gè)單詞的信息,然后RNN生成只和這些詞相關(guān)的輸出。

這種Attention RNN有許多其他的應(yīng)用。 它可以用于語(yǔ)音識(shí)別,允許一個(gè)RNN處理音頻,然后另一個(gè)RNN進(jìn)行關(guān)注點(diǎn)處理。

Attention方法的其他用途包括解析文本,它允許模型在生成解析樹時(shí)查看單詞。對(duì)于會(huì)話建模,在產(chǎn)生回復(fù)的時(shí)候,模型能夠關(guān)注于前面的對(duì)話內(nèi)容。

Attention方法也可以在卷積神經(jīng)網(wǎng)絡(luò)和RNN之間的接口上使用。 這允許RNN每一步都可以看到圖像的不同位置。 一個(gè)比較流行的用法是圖像文字內(nèi)容生成。 首先,一個(gè)conv net 處理圖像,提取高級(jí)特征。 然后運(yùn)行RNN ,生成圖像的描述。 在它產(chǎn)生每個(gè)單詞的過(guò)程中,RNN關(guān)注于conv net的關(guān)于其他部分的解釋。 我們可以明確地可視化這一部分:

更廣泛地說(shuō),只要想要在其輸出中具有重復(fù)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)就可以使用attention方法。

Attention方法是一種非常普遍和強(qiáng)大的技術(shù),并且越來(lái)越廣泛。

Adaptive Computation Time(自適應(yīng))

標(biāo)準(zhǔn)的RNN對(duì)于每個(gè)時(shí)間步長(zhǎng)都執(zhí)行相同的計(jì)算量。 這似乎是不太明智的, 當(dāng)事情很難的時(shí)候,應(yīng)該多思考一下。 這也限制了RNN的時(shí)間復(fù)雜度為O(n)——對(duì)長(zhǎng)度為n的待處理數(shù)據(jù)

自適應(yīng)計(jì)算,是一種為每個(gè)步驟執(zhí)行不同計(jì)算量的RNN。 想法很簡(jiǎn)單即允許RNN對(duì)每個(gè)時(shí)間步驟進(jìn)行多步驟計(jì)算。

為了使網(wǎng)絡(luò)了解需要執(zhí)行多少步驟,我們希望步數(shù)是可微的, 我們使用以前使用的相同技巧來(lái)實(shí)現(xiàn)這一點(diǎn):我們對(duì)運(yùn)行步數(shù)產(chǎn)生一個(gè)分部,輸出是每一步的權(quán)重。

還有一些更多的細(xì)節(jié)問(wèn)題,在前面的圖表中被省略了。 下面是一個(gè)具有三個(gè)計(jì)算步驟完整圖。
There are a few more details, which were left out in the previous diagram. Here’s a complete diagram of a time step with three computation steps.

這里看著有點(diǎn)復(fù)雜,所以讓我們一步一步的分析。 在上層,我們依然運(yùn)行RNN并輸出狀態(tài)的加權(quán)組合:

每個(gè)步驟的權(quán)重由“停止神經(jīng)元”決定,它是一個(gè)Sigmoid神經(jīng)元,它觀察RNN的狀態(tài),并給出了一個(gè)停止的權(quán)重,我們可以將它們看作是我們應(yīng)該在該步驟停止的概率。

停止權(quán)重的總和是1,所以一路上我們都嚴(yán)格遵循這個(gè)限制,當(dāng)累加的總和和1的差小于閾值epsilon時(shí),我們停止。

當(dāng)達(dá)到停止條件時(shí),可能會(huì)有一些殘留值(<epsilon的時(shí)候停止)。這個(gè)時(shí)候該怎么處理這個(gè)殘留的值?一般來(lái)講都會(huì)講這個(gè)值留給后面的計(jì)算步驟,但這里我們不想計(jì)算它(不累加到后面),我們將這個(gè)殘留值分配給最后一步。

自適應(yīng)計(jì)算時(shí)間是一個(gè)新的想法,但我們認(rèn)為,它與類似的想法將是非常重要的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容