當前位置:
首頁 > 知識 > 神經網路圖靈機:深度學習中與內存進行交互的基本方法

神經網路圖靈機:深度學習中與內存進行交互的基本方法

本文為雷鋒字幕組編譯的技術博客,原標題Neural Turing Machines: a fundamental approach to access memory in deep learning,作者為Jonathan Hui。

翻譯 | 趙朋飛 校對 | 凡江

內存是大腦和計算機的主要部件。在很多深度學習領域,我們通過和記憶匹配來擴展深度網路的能力,例如,提問與回答,我們先記憶或存儲事先處理的信息,然後使用這些信息回答問題。來自神經圖靈機(NTM)論文(https://arxiv.org/pdf/1410.5401.pdf):

我們通過將神經網路連接到外部存儲資源來擴展神經網路的功能,通過記憶過程與這些資源進行交互。

在外行看來,我們創建了一個記憶結構,通常是數組,我們向記憶結構中寫入或從其中讀取數據。聽起來很簡單:但事實並非如此。首先,我們沒有無限的存儲空間用來保存我們遇到的圖片或聲音,我們是通過相似性或相關性來訪問信息(並不完全匹配)。在這篇文章中,討論了如何使用NTM來處理信息。我們之所對這篇論文感興趣,主要是因為在包括NLP和元學習等很多研究領域,她都是一個重要的起點。


記憶結構

我們的記憶結構Mt包含N行,M個元素。每行代表一條信息(記憶),例如,你對錶兄的描述。


讀取

通常編程中,我們使用Mt[i]訪問記憶。但對於人工智慧來說,我么通過相似性獲取信息。所以我們推出了一個使用權重的閱讀機制,也就是說,我們得到的結果是內存的加權和。

所有權值總和等於1。

你可能立即會問這樣做的目的是什麼。讓我們通過一個例子來解釋。一個朋友遞給你一杯飲料,它嘗起來有點像茶,並感覺像牛奶,通過提取茶和牛奶的記憶資料,應用線性代數方法得出結論:它是珍珠奶茶。聽起來很神奇,但在單詞潛入中,我們也使用了相同的線性代數來處理關係。在其他的例子比如提問和回答中,基於累計的知識來合併信息是非常重要的。一個記憶網路會讓我們很好的達成目標。

我們如何創建這些權值呢? 當然,需要依靠深度學習。控制器從輸入信息中提取特徵(kt),我們利用它計算權值。例如,你打電話時,不能立即分辨出對方的聲音,這個聲音很像你的表弟,但有似乎又像你的哥哥。通過線性代數,我們可能分辨出他是你的高中同學,即便那個聲音完全不像你記憶中的樣子。

通過計算權值w,對比kt和我們每條記憶的相似性,我們用餘弦相似性計算出了一個分數K。

這裡, u是我們提取的特徵量kt,v代表我們內存中的每一行。

我們將softmax函數應用於分數K,來計算權值w。 βt 被添加進來用於放大或縮小分數的差異。 例如,如果它大於1,就放大差異。w基於相似性檢索信息,我們稱之為內容定址。


寫入

我們如何將信息寫入記憶。在 LSTM中,一個記憶單元的內部狀態由之前的狀態和當前輸入值共同決定。借用相同的情形,記憶的寫入過程也是由之前的狀態和新的輸入組成。這裡我們先清除部分之前的狀態:

et是一個清除向量。 (計算過程就像LSTM中的輸入門一樣)

然後,我們寫入新的信息。

at是我們想添加的值。

這裡,通過產生w的控制器,我們可以向記憶中寫入或讀取信息。

來源https://arxiv.org/pdf/1410.5401.pdf


定址機制

我們的控制器通過計算w來提取信息,但是採用相似性(內容定址)來提取信息還不夠強大。

補充

w表示我們記憶中當前的焦點(注意力)。在內容定址中,我們的關注點只基於是新的輸入。然而,這不足以解釋我們最近遇到的問題。例如,你的同班同學在一小時之前發信息給你,你應該可以很容易 回想起他的聲音。在獲取新的信息時我們如何利用之前的注意力?我們根據當前的焦點和之前的焦點 計算出合併權值。是的,這挺起來有點像LSTM或GRU中的遺忘門。

根據之前的焦點和當前輸入計算出g。

卷積變換

卷積變換完成焦點的變換。它並不是特地為深度學習設計的。相反,她揭示了NTM如何執行像複製與排序這樣的基礎演算法。例如,不用通過訪問w[4],我們想把每個焦點移動3行,也就是 w[i] w[i+3]。

在卷積變換中,我們可以將需要的焦點移動到指定的行,即w[i] 卷積(w[i+3], w[i+4], w[i+5] ) 。通常,卷積僅僅是行的線性加權和: 0.3 × w[i+3] + 0.5 × w[i+4] + 0.2 × w[i+5]。

這是焦點變換的數學公式:

在很多深度學習模型中,我么忽略這一步或者設置s(i)為 0,s(0) = 1例外。

銳化

我們的卷積移位就像一個卷積模糊濾波器。所以在有需要時,我們會對權值採用用銳化技術,達到模糊的效果,γ將會是在銳化焦點時控制器輸出的另一個參數。

小結

我們使用權值w從記憶中檢索信息。w包括這些因素:當前輸入,以前的交點,可能的變換與模糊。這裡是系統框圖,其中控制器輸出必要的參數,這些參數用於在不同的階段計算w。

博客原址:

https://medium.com/@jonathan_hui/neural-turing-machines-a-fundamental-approach-to-access-memory-in-deep-learning-b823a31fe91d

更多文章,關注雷鋒網(公眾號:雷鋒網),添加雷鋒字幕組微信號(leiphonefansub)為好友

備註「我要加入」,To be an AI Volunteer !

從Python入門-如何成為AI工程師

BAT資深演算法工程師獨家研發課程

最貼近生活與工作的好玩實操項目

班級管理助學搭配專業的助教答疑

學以致用拿offer,學完即推薦就業

新人福利

關注 AI 研習社(okweiwu),回復1領取

【超過 1000G 神經網路 / AI / 大數據資料】

神經網路這麼弱?改一個像素就懵圈了


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

如何讓訓練神經網路不無聊?試試遷移學習和多任務學習
真實全景圖像強化學習 AI 平台——Matterport3DSimulator

TAG:AI研習社 |