譯文:Attention and Augmented Recurrent Neural Networks
循環(huán)神經(jīng)網(wǎng)絡(luò)是深度學習的主要手段之一骇钦,使得神經(jīng)網(wǎng)絡(luò)能夠處理諸如文本、音頻幕帆、視頻之類的序列數(shù)據(jù)侮繁。 它們可以對源信息進行高級理解虑粥、注釋序列,甚至從頭開始生成新序列宪哩!
基本的RNN處理長依賴較為困難娩贷,但是一個特殊的變體 - LSTM 可以解決這些問題。 已經(jīng)證明這些模型非常強大锁孟,在翻譯彬祖、語音識別、圖像內(nèi)容提取等在內(nèi)的許多任務(wù)中取得了顯著的成果品抽。 這使得循環(huán)神經(jīng)網(wǎng)絡(luò)在過去幾年中變得非常普遍储笑。
正如現(xiàn)在,我們看到越來越多的嘗試在添加新的屬性來強化RNN圆恤,在以下 四個方向特別突出突倍、令人興奮:
單獨來看,這些技術(shù)都是RNN的有力擴展盆昙,但真正令人驚奇的是它們可以組合起來羽历,看起來似乎只是在更廣闊的空間中的點。 此外弱左,他們都依賴于相同的底層技巧——attention窄陡。
我們的猜測是,這些“增強型RNN”將在未來幾年對擴大深度學習的能力發(fā)揮重要作用拆火。
神經(jīng)圖靈機(Neural Turing Machines)
神經(jīng)圖靈機將RNN與外部存儲器組合跳夭,由于向量是神經(jīng)網(wǎng)絡(luò)的自然語言,所謂的外部存儲就是一系列向量:
但這些讀和寫操作如何工作呢们镜? 面臨的挑戰(zhàn)是我們想讓他們有所差異币叹。 特別地,我們希望使它們會因我們讀模狭、寫的位置的差異而有所差異颈抚,所以我們可以學習讀和寫。 這是一個棘手的問題,因為內(nèi)存地址是離散的贩汉。 NTM(神經(jīng)圖靈機)采取了一個非常聰明的解決方案:在每一步都進行讀寫操作驱富,只不過程度不同而已。
例如匹舞,讓我們專注于閱操作褐鸥, RNN不是指定單個位置,而是輸出一個“關(guān)注分布”赐稽,這個分布描述我們?nèi)绾畏峙湮覀冴P(guān)心不同內(nèi)存位置的數(shù)量叫榕。 這樣,讀操作的結(jié)果是加權(quán)和姊舵。
同樣地晰绎,我們每一步都進行寫操作,只是成不不同而已括丁。同樣荞下,一個注意力分布描述了我們在每個位置寫的多少。 我們將內(nèi)存中該位置的新值與舊值進行凸起組合史飞,位置信息注意力的權(quán)重決定锄弱。
但NTM如何決定記憶中的哪些位置將注意力增強? 他們實際上使用了兩種不同的方法:基于內(nèi)容的關(guān)注和基于位置的關(guān)注祸憋。 基于內(nèi)容的注意力模型允許NTM通過其內(nèi)存搜索并專注于匹配所需內(nèi)容的位置,而基于位置的注意力模型允許內(nèi)存中的相對移動肖卧,使NTM能夠循環(huán)蚯窥。
這種讀寫能力允許NTM執(zhí)行許多簡單的算法。 例如塞帐,他們可以學習存儲一個長序列拦赠,然后循環(huán)往復(fù)執(zhí)行。 在這樣做時葵姥,我們可以看到他們讀寫的內(nèi)容荷鼠,以便更好地了解他們在做什么:
他們還可以學習模擬查找表,甚至學習排序數(shù)字(盡管它們是欺騙性的)榔幸! 另一方面允乐,他們?nèi)匀徊荒茏鲈S多基本的事情,如乘法和加法削咆。
自從NTM的論文出來以后牍疏,已經(jīng)出現(xiàn)了一些令人興奮的論文,探索了類似的方向拨齐。 Neural GPU 克服了NTM無法對數(shù)字進行加和乘的操作鳞陨。 Zaremba&Sutskever使用強化學習訓(xùn)練NTM
在某些客觀意義上,這些模型可以執(zhí)行的許多任務(wù)瞻惋。像神經(jīng)圖靈機器這樣的模型似乎已經(jīng)打破了傳統(tǒng)模型的限制厦滤。
Attentional Interfaces
當我在翻譯句子時服赎,我特別注意我正在翻譯的單詞讼撒。 當我錄制錄音時,我會仔細聆聽我正在積極寫下的片段。 如果你要我描述我正在坐著的房間命爬,我會盯著正在看的物體。
神經(jīng)網(wǎng)絡(luò)可以使用注意力來實現(xiàn)同樣的行為律姨,重點放在信息的一部分上米苹。 例如,一個RNN的輸出可以作為另一個RNN的輸入忍啸。 在每個時間點仰坦,它關(guān)注于另一個RNN的不同位置。
我們希望關(guān)注點是可以區(qū)分的计雌,所以我們可以學習在哪里集中悄晃。 為了做到這一點,我們使了在神經(jīng)圖靈機中相同的技巧:我們專注于各個點凿滤,只是程度不同妈橄。
注意分布通常是基于內(nèi)容產(chǎn)生的。 Attending RNN生成一個query翁脆,描述它想要關(guān)注的內(nèi)容眷蚓。 每個item都與這個query做點積以產(chǎn)生分數(shù),這個分數(shù)描述了item與query匹配的程度反番。 將得分加入到softmax中以產(chǎn)生注意力分布沙热。
Attention的一個應(yīng)用就是翻譯。 一個傳統(tǒng)的sequence-to-sequence模型必須將整個輸入變成單個向量罢缸,然后將其擴展回來篙贸。 Attention模型規(guī)避了這個問題,其通過允許RNN處理輸入來傳遞關(guān)于其看到的每個單詞的信息枫疆,然后RNN生成只和這些詞相關(guān)的輸出爵川。
這種Attention RNN有許多其他的應(yīng)用。 它可以用于語音識別息楔,允許一個RNN處理音頻寝贡,然后另一個RNN進行關(guān)注點處理。
Attention方法的其他用途包括解析文本钞螟,它允許模型在生成解析樹時查看單詞兔甘。對于會話建模,在產(chǎn)生回復(fù)的時候鳞滨,模型能夠關(guān)注于前面的對話內(nèi)容洞焙。
Attention方法也可以在卷積神經(jīng)網(wǎng)絡(luò)和RNN之間的接口上使用。 這允許RNN每一步都可以看到圖像的不同位置。 一個比較流行的用法是圖像文字內(nèi)容生成澡匪。 首先熔任,一個conv net 處理圖像,提取高級特征唁情。 然后運行RNN 疑苔,生成圖像的描述。 在它產(chǎn)生每個單詞的過程中甸鸟,RNN關(guān)注于conv net的關(guān)于其他部分的解釋惦费。 我們可以明確地可視化這一部分:
更廣泛地說,只要想要在其輸出中具有重復(fù)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)就可以使用attention方法抢韭。
Attention方法是一種非常普遍和強大的技術(shù)薪贫,并且越來越廣泛。
Adaptive Computation Time(自適應(yīng))
標準的RNN對于每個時間步長都執(zhí)行相同的計算量刻恭。 這似乎是不太明智的瞧省, 當事情很難的時候,應(yīng)該多思考一下鳍贾。 這也限制了RNN的時間復(fù)雜度為O(n)——對長度為n的待處理數(shù)據(jù)
自適應(yīng)計算鞍匾,是一種為每個步驟執(zhí)行不同計算量的RNN。 想法很簡單即允許RNN對每個時間步驟進行多步驟計算骑科。
為了使網(wǎng)絡(luò)了解需要執(zhí)行多少步驟橡淑,我們希望步數(shù)是可微的, 我們使用以前使用的相同技巧來實現(xiàn)這一點:我們對運行步數(shù)產(chǎn)生一個分部咆爽,輸出是每一步的權(quán)重梳码。
還有一些更多的細節(jié)問題,在前面的圖表中被省略了伍掀。 下面是一個具有三個計算步驟完整圖。
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.
這里看著有點復(fù)雜暇藏,所以讓我們一步一步的分析蜜笤。 在上層,我們依然運行RNN并輸出狀態(tài)的加權(quán)組合:
每個步驟的權(quán)重由“停止神經(jīng)元”決定盐碱,它是一個Sigmoid神經(jīng)元把兔,它觀察RNN的狀態(tài),并給出了一個停止的權(quán)重瓮顽,我們可以將它們看作是我們應(yīng)該在該步驟停止的概率县好。
停止權(quán)重的總和是1,所以一路上我們都嚴格遵循這個限制暖混,當累加的總和和1的差小于閾值epsilon時缕贡,我們停止。
當達到停止條件時,可能會有一些殘留值(<epsilon的時候停止)晾咪。這個時候該怎么處理這個殘留的值收擦?一般來講都會講這個值留給后面的計算步驟,但這里我們不想計算它(不累加到后面)谍倦,我們將這個殘留值分配給最后一步塞赂。
自適應(yīng)計算時間是一個新的想法,但我們認為昼蛀,它與類似的想法將是非常重要的宴猾。