日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Attention和增强RNN (Attention and Augmented Recurrent Neural Networks)

發(fā)布時(shí)間:2023/12/15 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Attention和增强RNN (Attention and Augmented Recurrent Neural Networks) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文: Attention and Augmented Recurrent Neural Networks

遞歸神經(jīng)網(wǎng)絡(luò)是一種主流的深度學(xué)習(xí)模型,它可以用神經(jīng)網(wǎng)絡(luò)模型來處理序列化的數(shù)據(jù),比如文本、音頻和視頻數(shù)據(jù)。它能把一個(gè)序列濃縮為抽象的理解,以此來表示這個(gè)序列,乃至新產(chǎn)生一個(gè)序列。

基本的RNN網(wǎng)絡(luò)設(shè)計(jì)對長序列串往往無能為力,但是它的特殊變種 —— “長短期記憶模型(LSTM)” —— 則能處理這些數(shù)據(jù)。這類模型被認(rèn)為非常強(qiáng)大,在許多類別的任務(wù)上取得了顯著的成績,包括機(jī)器翻譯、語音識別、和看圖寫話等。因此,遞歸神經(jīng)網(wǎng)絡(luò)在過去幾年內(nèi)變得非常流行。

隨著遞歸神經(jīng)網(wǎng)絡(luò)的流行,我們看到人們試圖用各種方法來提升RNN模型的效果。其中,有四個(gè)方向的改進(jìn)效果比較顯著:

這些技術(shù)都是RNN模型可能的擴(kuò)展方向,但真正讓我們興奮的是可以將這些技術(shù)都合并起來,就像是更廣闊空間中的一些點(diǎn)聚合。而且,這些技術(shù)所基于的底層技術(shù)都相同 —— 被稱作聚焦機(jī)制(attention)。

我們猜測這些“增強(qiáng)神經(jīng)網(wǎng)絡(luò)”在今后幾年內(nèi)對于拓展深度學(xué)習(xí)的能力將會(huì)扮演重要的角色。

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

神經(jīng)圖靈機(jī)器(Graves, et al., 2014)將RNN模型與一個(gè)外部記憶模塊結(jié)合。由于向量表達(dá)是神經(jīng)網(wǎng)絡(luò)界的自然語言,所以記憶的是一組向量值:

但是,讀和寫的過程又是怎樣的呢?這里的挑戰(zhàn)在于我們想?yún)^(qū)分這兩個(gè)過程。具體說來,我們想?yún)^(qū)分讀和寫的區(qū)域,那么我們就能學(xué)會(huì)從哪兒去讀取,寫入到什么位置。由于存儲(chǔ)地址本質(zhì)上是離散化的,因此這個(gè)問題比較棘手。神經(jīng)圖靈機(jī)器采用了一種非常聰明的解決方案:它們在每一步以不同的程度來讀和寫各個(gè)位置。

以讀取為例,不同于指定一個(gè)位置讀取,RNN模型給出了“聚焦分布(attention distribution)”,描述了我們對不同記憶位置的關(guān)注程度。因此,讀取操作是帶權(quán)重的累加。

同樣的,我們每次以不同的程度寫入內(nèi)容。聚焦分布描述了我們在每個(gè)位置的寫入量。記憶單元中某個(gè)位置的新值是舊的記憶內(nèi)容與新寫入內(nèi)容的組合,它們之間的位置由聚焦權(quán)重所決定。

但是,神經(jīng)圖靈機(jī)器是如何決定需要聚焦在哪一塊記憶區(qū)域呢?事實(shí)上,它們結(jié)合了兩種不同的方法:基于內(nèi)容的聚焦和基于位置的聚焦。基于內(nèi)容的方法讓神經(jīng)圖靈機(jī)器搜索遍歷它們的記憶庫,然后關(guān)注在與內(nèi)容相符合的區(qū)域,而基于位置的方法則允許在記憶區(qū)域的相對運(yùn)動(dòng),使得神經(jīng)圖靈機(jī)器可以循環(huán)。

這種讀寫能力使得神經(jīng)圖靈機(jī)器可以進(jìn)行很多種簡單的運(yùn)算,超越了普通神經(jīng)網(wǎng)絡(luò)的能力。比如,它們可以學(xué)習(xí)記憶一段長序列,然后不斷地循環(huán)重復(fù)。隨著它們不斷地循環(huán),我們能觀測到它讀寫的位置,能夠更全面地理解其工作原理:

它們還能學(xué)習(xí)模仿查詢表,甚至學(xué)習(xí)對數(shù)字排序!然而,它們卻無法完成許多基本任務(wù),比如加法或者乘法運(yùn)算。

Graves,?et al., 2014文中介紹了大量的實(shí)驗(yàn)。這張圖片展現(xiàn)了“重復(fù)復(fù)制”的實(shí)驗(yàn)。?

自最初的神經(jīng)圖靈機(jī)器論文發(fā)表之后,在這一領(lǐng)域方向又涌現(xiàn)出了大量優(yōu)質(zhì)論文。神經(jīng)GPU(Kaiser & Sutskever, 2015) 克服了神經(jīng)圖靈機(jī)器無法計(jì)算加法和乘法的缺陷。Zaremba & Sutskever, 2016采用強(qiáng)化學(xué)習(xí)的方法訓(xùn)練NTM。神經(jīng)隨機(jī)訪問機(jī)器(Neural Random Access Machines?Kurach et al., 2015)基于指針運(yùn)行。一些論文嘗試了不同的數(shù)據(jù)結(jié)構(gòu),比如堆棧和隊(duì)列(Grefenstette et al. 2015;?Joulin & Mikolov, 2015)。記憶網(wǎng)絡(luò)(Weston et al., 2014;?Kumar et al., 2015)是解決類似問題的另一種方式。

這些模型能解決的任務(wù)并沒有太復(fù)雜,比如數(shù)字的相加,傳統(tǒng)的程序就能輕而易舉地解決。但神經(jīng)網(wǎng)絡(luò)模型不僅局限于此,例如神經(jīng)圖靈機(jī)器在能力上有了深遠(yuǎn)的突破。

代碼

這些模型有許多開源的實(shí)現(xiàn)版本。神經(jīng)圖靈機(jī)器的開源實(shí)現(xiàn)版本有Taehoon Kim’s?(TensorFlow),?Shawn Tan’s?(Theano),?Fumin’s?(Go),?Kai Sheng Tai’s?(Torch), and?Snip’s?(Lasagne)。神經(jīng)GPU論文的代碼已經(jīng)開源,合并到了?TensorFlow模型代碼庫。記憶網(wǎng)絡(luò)的開源實(shí)現(xiàn)有Facebook’s?(Torch/Matlab),?YerevaNN’s?(Theano), and?Taehoon Kim’s?(TensorFlow)。

?

注意力接口(Attention Interface)

在翻譯句子時(shí),我們會(huì)尤其關(guān)注當(dāng)前正在翻譯的詞語。在轉(zhuǎn)換語音記錄時(shí),我們會(huì)集中注意認(rèn)真聆聽正在書寫的片段。如果你讓我描述我所在的屋子,我肯定會(huì)瞥一眼正在描述的屋內(nèi)物品。

神經(jīng)網(wǎng)絡(luò)模型可以使用聚焦來實(shí)現(xiàn)同樣的動(dòng)作,專注于所提供信息的某一部分。例如,一個(gè)RNN模型可以輸入另一個(gè)RNN模型的輸出。它在每一步都會(huì)關(guān)注另一個(gè)RNN模型的不同位置。

我們希望聚焦點(diǎn)是可區(qū)分的,從而能學(xué)會(huì)需要關(guān)注哪些位置。因此,我們借用了神經(jīng)圖靈機(jī)器的技巧:關(guān)注所有位置,只是程度不一樣。

聚焦分布通常是由基于內(nèi)容的聚焦產(chǎn)生。RNN模型生成一個(gè)搜索詞描述其希望關(guān)注的位置。然后計(jì)算每條內(nèi)容與搜索詞的點(diǎn)乘得分,表示其與搜索詞的匹配程度。這些分?jǐn)?shù)經(jīng)過softmax函數(shù)的運(yùn)算產(chǎn)生聚焦的分布。

聚焦機(jī)制在RNN模型的使用場景之一是語言翻譯(Bahdanau,?et al.?2014)。若用傳統(tǒng)的序列到序列模型做翻譯,需要把整個(gè)輸入詞匯串縮簡為單個(gè)向量,然后再展開恢復(fù)為序列目標(biāo)語言的詞匯串。聚焦機(jī)制則可以避免上述操作,RNN模型逐個(gè)處理輸入詞語的信息,隨即生成相對應(yīng)的詞語。

RNN模型之間的這類聚焦還有許多其它的應(yīng)用。它可以用于語音識別(Chan, et al. 2015),其中一個(gè)RNN模型處理語音信號,另一個(gè)RNN模型則滑動(dòng)處理其輸出,然后關(guān)注相關(guān)的區(qū)域生成文本內(nèi)容。

?

圖片來自于Chan,?et al.?2015

?

聚焦機(jī)制的其它用途還包括文本解析(Vinyals, et al., 2014)生成一棵解析樹,以及?
用于會(huì)話模型(Vinyals & Le, 2015),模型可以根據(jù)之前的會(huì)話內(nèi)容生成回復(fù)。

聚焦機(jī)制還能用作卷積神經(jīng)網(wǎng)絡(luò)CNN和RNN模型的接口。這使得RNN模型每一步都在關(guān)注圖片的不同區(qū)域。這種方法的用途之一就是給圖片添加描述。首先,用卷積神經(jīng)網(wǎng)絡(luò)處理圖像,提取高層次的特征。然后運(yùn)行RNN模型,生成圖像的描述。隨著RNN模型在圖像的卷積網(wǎng)絡(luò)特征的關(guān)注部位不同,生成相對于的描述文字。我們來將這個(gè)過程可視化:


圖片來自?Xu, et al., 2015

推而廣之,若某個(gè)神經(jīng)網(wǎng)絡(luò)的輸出具有重復(fù)性的結(jié)構(gòu),就能使用聚焦接口(attentional interfaces)與這個(gè)神經(jīng)網(wǎng)絡(luò)相銜接。

聚焦接口被認(rèn)為是一項(xiàng)非常普及和有效的技術(shù),受到了越來越多的應(yīng)用。

適應(yīng)性計(jì)算時(shí)間(Adaptive Computation Time)

標(biāo)準(zhǔn)的RNN模型每一步所消耗的計(jì)算時(shí)間都相同。這似乎與我們的直覺不符。我們在思考難題的時(shí)候難道不需要更多的時(shí)間嗎?

適應(yīng)性計(jì)算時(shí)間(Adaptive Computation Time?Graves, 2016)是解決RNN每一步消耗不同計(jì)算量的方法。籠統(tǒng)地說:就是讓RNN模型可以在每個(gè)時(shí)間片段內(nèi)進(jìn)行不同次數(shù)的計(jì)算步驟。

為了讓網(wǎng)絡(luò)模型學(xué)會(huì)需要計(jì)算多少步,我們希望步數(shù)有區(qū)別性。因此我們采用了之前提到過的技巧:我們給需要計(jì)算的步數(shù)設(shè)了聚焦分布,而不是指定具體的數(shù)值。輸出的是每一步的帶權(quán)重結(jié)合。

上圖省略了不少細(xì)節(jié)內(nèi)容。下圖是一個(gè)時(shí)間片段的完整示意圖,包括了三個(gè)計(jì)算步驟。

看上去有點(diǎn)兒復(fù)雜,所以我們一步步往下看。從較高的層次觀察,我們?nèi)耘f運(yùn)行RNN模型,輸出各個(gè)狀態(tài)的帶權(quán)重組合:

每一步的權(quán)重值由“halting neuron”決定。這個(gè)神經(jīng)元事實(shí)上是一個(gè)sigmoid函數(shù),輸出一個(gè)終止權(quán)重,可以理解為需要在當(dāng)前步驟終止的概率值。

停止權(quán)重值的總和等于1,每一步結(jié)束后要減去相應(yīng)的值。一旦這個(gè)值小于了epsilon,我們就停止計(jì)算。

當(dāng)訓(xùn)練Adaptive Computation Time模型時(shí),可以在損失函數(shù)添加一項(xiàng)“ponder cost”,用來懲罰模型的累積計(jì)算時(shí)間。這一項(xiàng)的值越大,就更不傾向于降低計(jì)算時(shí)間。

ACT仍是一個(gè)非常新的概念,但是我們相信它以及其它類似的概念今后一定會(huì)發(fā)揮作用。

代碼

目前開源的ACT代碼貌似只有?Mark Neumann’s?(TensorFlow)

展望

在某種程度上,事先有準(zhǔn)備的人會(huì)比兩手空空的人更聰明。我們使用數(shù)學(xué)符號能解決許多新問題,而我們依靠計(jì)算機(jī)則可以完成更多不可思議的任務(wù),遠(yuǎn)遠(yuǎn)超出了我們的個(gè)人能力。

一般來說,智慧的表現(xiàn)形式往往是人類啟發(fā)式直覺與更細(xì)膩的媒介的交互過程,比如語言和公式。有時(shí)候,這種媒介是實(shí)實(shí)在在存在的物體,可以用來存儲(chǔ)信息,避免我們犯錯(cuò)誤或是進(jìn)行繁重的計(jì)算任務(wù)。在其它情況下,這種媒介是我們腦子里的模型。無論如何,它似乎是智慧的基礎(chǔ)。

機(jī)器學(xué)習(xí)領(lǐng)域的最新研究成果已經(jīng)帶有這種味道了,將神經(jīng)網(wǎng)絡(luò)的直覺與其他東西結(jié)合。一種方法是所謂的“啟發(fā)式搜索”。例如,AlphaGo (Silver, et al., 2016) 建立了一個(gè)下圍棋的模型,在神經(jīng)網(wǎng)絡(luò)的指導(dǎo)下探索如何進(jìn)行游戲。同樣的,DeepMath (Alemi, et al., 2016)利用神經(jīng)網(wǎng)絡(luò)處理數(shù)學(xué)表達(dá)式。我們在本文中提到的“增強(qiáng)RNN”屬于另一種方法,我們將RNN模型與工程媒介相結(jié)合,以提高它們的泛化能力。

與媒介的互動(dòng)自然會(huì)涉及到一系列的采取行動(dòng)、觀察情況、繼續(xù)行動(dòng)步驟。這就產(chǎn)生了一個(gè)重大的挑戰(zhàn):我們?nèi)绾螌W(xué)習(xí)該采取哪些行動(dòng)?這聽起來像是一個(gè)強(qiáng)化學(xué)習(xí)的問題,我們當(dāng)然可以采取強(qiáng)化學(xué)習(xí)方法。但是強(qiáng)化學(xué)習(xí)也正在攻堅(jiān)解決這些難題,其解決辦法目前也很難被采用。聚焦的好處在于它讓我們比較輕松地繞開了這個(gè)問題,我們可以不同程度地采取所有行動(dòng)。而強(qiáng)化學(xué)習(xí)只允許我們選擇一條道路,從中學(xué)習(xí)經(jīng)驗(yàn)。聚焦機(jī)制在岔路口會(huì)選擇所有的方向,然后將各條路徑的結(jié)果合并起來。

聚焦機(jī)制的一大弱點(diǎn)就是每一步都需要執(zhí)行一個(gè)“行動(dòng)”。這導(dǎo)致消耗的計(jì)算資源呈線性增長。有一種解決方式是將聚焦稀疏化,因此只需要處理其中的一部分記憶單元。然而,也許你希望聚焦點(diǎn)是基于記憶單元的,這樣勢必需要瀏覽所有的內(nèi)存單元,這又帶來了不小的挑戰(zhàn)。我們看到了一些初步的解決方案,例如Andrychowicz & Kurach, 2016,似乎還有很大的提升空間。

增強(qiáng)RNN和其背后的聚焦技術(shù)真的領(lǐng)入興奮。我們期待看到它們?nèi)〉酶蟮倪M(jìn)展!

總結(jié)

以上是生活随笔為你收集整理的Attention和增强RNN (Attention and Augmented Recurrent Neural Networks)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。