《神經(jīng)網(wǎng)絡(luò)與機(jī)器學(xué)習(xí)》筆記(六)

第八章 注意力機(jī)制與外部記憶

借用人腦的注意力和記憶機(jī)制倔喂,處理信息過載問題,從而提高神經(jīng)網(wǎng)絡(luò)處理信息的能力凿叠。

注意力

解決信息超載問題的主要手段俯逾。也是解決遠(yuǎn)距離依賴問題的主要手段。

本節(jié)及以后章節(jié)中匣吊,注意力機(jī)制是通常指自上而下的聚焦式注意力

認(rèn)知神經(jīng)學(xué)中的注意力

注意力一般分為兩種:

  • 聚焦式注意力:是自上而下的有意識(shí)的注意力儒拂。
  • 基于顯著性的注意力:是自下而上的無意識(shí)的注意力

雞尾酒會(huì)效應(yīng):當(dāng)一個(gè)人在吵鬧的雞尾酒會(huì)上和朋友聊天時(shí),盡管周圍噪音干擾很多色鸳,他還是可以聽到朋友的談話內(nèi)容社痛,而忽略其他人的聲音(聚焦式注意力)。同時(shí)命雀,如果未注意到的背景聲中有重要的詞(比如他的名字)蒜哀,他會(huì)馬上注意到(顯著性注意力)。

人工神經(jīng)網(wǎng)絡(luò)中的注意力機(jī)制

在目前的神經(jīng)網(wǎng)絡(luò)模型中吏砂,我們可以將最大匯聚(Max Pooling)撵儿、門控(Gating)機(jī)制近似地看作是自下而上的基于顯著性的注意力機(jī)制

注意力機(jī)制的計(jì)算可以分為兩步:一是在所有輸入信息上計(jì)算注意力分布狐血,二是根據(jù)注意力分布來計(jì)算輸入信息的加權(quán)平均淀歇。

注意力分布

為了從N 個(gè)輸入向量[x_1,\cdots, x_N]中選擇出和某個(gè)特定任務(wù)相關(guān)的信息,我們需要引入一個(gè)和任務(wù)相關(guān)的表示匈织,稱為查詢向量(Query Vector)浪默,并通過一個(gè)打分函數(shù)來計(jì)算每個(gè)輸入向量和查詢向量之間的相關(guān)性。

給定一個(gè)和任務(wù)相關(guān)的查詢向量q(查詢向量q 可以是動(dòng)態(tài)生成的,也可以是可學(xué)習(xí)的參數(shù))浴鸿,我們用注意力變量z \in [1,N]來表示被選擇信息的索引位置井氢,即z = i 表示選擇了第i 個(gè)輸入向量。為了方便計(jì)算岳链,我們采用一種“軟性”的信息選擇機(jī)制花竞。首先計(jì)算在給定q 和X 下,選擇第i 個(gè)輸入向量的概率\alpha_i
\begin{align*} \alpha_i&=p(z=i|X,\boldsymbol{q})=softmax(s(x_i,\boldsymbol{q}))\\ &=\frac{exp(s(x_i,\boldsymbol{q}))}{\sum^N_{j=1}s(x_j,\boldsymbol{q})}\\ 其中\(zhòng)alpha_i掸哑,稱為注意力分布&(Attention Distribution)约急,s(x_i,\boldsymbol{q})為注意力打分函數(shù)。\\ 打分函數(shù)的不同苗分,注意力&模型就不同厌蔽,常見的打分函數(shù)有以下幾種:\\ 加性模型\qquad\qquad&\qquad s(x_i,\boldsymbol{q})=v^Ttanh(Wx_i+U\boldsymbol{q}),\\ 點(diǎn)積模型\qquad\qquad&\qquad s(x_i,\boldsymbol{q})=x^T_i\boldsymbol{q},\\ 縮放點(diǎn)積模型\qquad\qquad&\qquad s(x_i,\boldsymbol{q})=\frac{x^T_i\boldsymbol{q}}{\sqrtuk6tnm8},\\ 雙線性模型\qquad\qquad&\qquad s(x_i,\boldsymbol{q})=x^T_iW\boldsymbol{q}\\ \end{align*}
加性模型和點(diǎn)積模型的復(fù)雜度差不多,但是點(diǎn)積模型在實(shí)現(xiàn)上可以更好地利用矩陣乘積摔癣,從而計(jì)算效率更高奴饮。但當(dāng)輸入向量的維度d 比較高時(shí),點(diǎn)積模型的值通常有比較大的方差择浊,從而導(dǎo)致softmax函數(shù)的梯度會(huì)比較小戴卜。因此,縮放點(diǎn)積模型可以較好地解決這個(gè)問題琢岩。雙線性模型可以看做是一種泛化的點(diǎn)積模型投剥。相比點(diǎn)積模型,雙線性模型在計(jì)算相似度時(shí)引入了非對(duì)稱性担孔。

加權(quán)平均

注意力分布αi 可以解釋為在給定任務(wù)相關(guān)的查詢q 時(shí)江锨,第i 個(gè)輸入向量受關(guān)注的程度。我們采用一種“軟性”的信息選擇機(jī)制(軟性注意力機(jī)制)對(duì)輸入信息進(jìn)行匯總:

? att(X,\boldsymbol{q})=\sum^N_{i=1}\alpha_ix_i=\mathbb{E}_{z~p(z|X,\boldsymbol{q})}[x_z]

注意力機(jī)制的變體
硬性注意力

軟性注意力糕篇,其選擇的信息是所有輸入向量在注意力分布下的期望啄育。

硬性注意力,只關(guān)注某一個(gè)輸入向量拌消。硬性注意力需要通過強(qiáng)化學(xué)習(xí)來進(jìn)行訓(xùn)練灸撰。

硬性注意力有兩種實(shí)現(xiàn)方式:

  • 一種是選取最高概率的一個(gè)輸入向量,即att(X,\boldsymbol{q})=x_j拼坎,其中 j 為概率最大的輸入向量的下標(biāo)浮毯,即\begin{equation} j=\overset{N}{\arg\underset{i=1} \max } \alpha_{i} \end{equation}
  • 另一種硬性注意力可以通過在注意力分布式上隨機(jī)采樣的方式實(shí)現(xiàn)泰鸡。

硬性注意力的一個(gè)缺點(diǎn)是基于最大采樣或隨機(jī)采樣的方式來選擇信息债蓝,使得最終的損失函數(shù)與注意力分布之間的函數(shù)關(guān)系不可導(dǎo),因此無法使用反向傳播算法進(jìn)行訓(xùn)練盛龄。為了使用反向傳播算法饰迹,一般使用軟性注意力來代替硬性注意力芳誓。

鍵值對(duì)注意力

更一般地,我們可以用鍵值對(duì)(key-value pair)格式來表示輸入信息啊鸭,其中“鍵”用來計(jì)算注意力分布αi锹淌,“值”用來計(jì)算聚合信息。

(K, V ) = [(k_1, v_1), \cdots, (k_N, v_N)]表示N 組輸入信息赠制,給定任務(wù)相關(guān)的查詢向量q 時(shí)赂摆,注意力函數(shù)為:att\Big((K,V),\boldsymbol{q}\Big)=\sum_{i=1}^N \alpha_iv_i=\sum_{i=1}^N\frac{exp\Big(s(\boldsymbol{k_i,q})\Big)}{\sum_jexp\Big(s(\boldsymbol{k_i,q})\Big)}v_i,其中s(k_i,q)為打分函數(shù)钟些。

注意力機(jī)制

? 如果K=V烟号,就是普通模式,如果K!=V政恍,就是鍵值對(duì)模式

多頭注意力

是利用多個(gè)查詢Q = [q_1,\cdots, q_M]汪拥,來平行地計(jì)算從輸入信息中選取多組信息。每個(gè)注意力關(guān)注輸入信息的不同部分篙耗。

? att\Big((K,V),Q\Big)=att\Big((K,V),\boldsymbol{q}_1\Big)\oplus\cdots\oplus att\Big((K,V),\boldsymbol{q}_M\Big)

結(jié)構(gòu)化注意力

如果輸入信息本身具有層次結(jié)構(gòu)迫筑,可以假設(shè)注意力為上下文相關(guān)的二項(xiàng)分布,用一種圖模型來構(gòu)建
更復(fù)雜的結(jié)構(gòu)化注意力分布宗弯。

注意力機(jī)制的應(yīng)用

指針網(wǎng)絡(luò)

指針網(wǎng)絡(luò)是一種序列到序列模型脯燃,只利用注意力機(jī)制中的第一步,將注意力分布作為一個(gè)軟性的指
針(pointer)來指出相關(guān)信息的位置罕伯。輸入是長度為n 的向量序列X = x_1, \cdots, x_n, 輸出是下標(biāo)序列c_{1:m }=c_1, c_2,\cdots, c_m叽讳,c_i \in [1, n], ?i追他。

和一般的序列到序列任務(wù)不同,這里的輸出序列是輸入序列的下標(biāo)(索引)岛蚤。比如輸入一組亂序的數(shù)字邑狸,輸出為按大小排序的輸入數(shù)字序列的下標(biāo)。比如輸入為20, 5, 10涤妒,輸出為1, 3, 2单雾。

條件概率p(c_{1:m|x_{1:n}})=\prod_{i=1}^m p(c_i|c_{1:i-1},x_{1:n})\approx\prod_{i=1}^m p(c_i|x_{c_1},\cdots,x_{c_{i-1}},x_{1:n}),其中條件概率p(c_i|x_{c_1},\cdots,x_{c_{i-1}},x_{1:n})可以通過注意力分布來計(jì)算她紫。假設(shè)用一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)x_{c_1},\cdots,x_{c_{i-1}},x_{1:n}進(jìn)行編碼得到向量hi硅堆,則:p(c_i|c_{1:i-1},x_{1:n})=softmax(s_{i,j}),其中s_{i,j}為在解碼過程的第i 步時(shí)贿讹,每個(gè)輸入向量的未歸一化的注意力分布焕议,s_{i, j}=\boldsymbol{v}^{\mathrm{T}} \tanh \left(W \boldsymbol{x}_{j}+U \boldsymbol{h}_{i}\right), \forall j \in[1, n]

指針網(wǎng)絡(luò)
自注意力模型

當(dāng)使用神經(jīng)網(wǎng)絡(luò)來處理一個(gè)變長的向量序列時(shí)面殖,我們通臣沽牛可以使用卷積網(wǎng)絡(luò)或循環(huán)網(wǎng)絡(luò)進(jìn)行編碼來得到一個(gè)相同長度的輸出向量序列钝荡。

基于卷積網(wǎng)絡(luò)和循環(huán)網(wǎng)絡(luò)的變長序列編碼

基于卷積或循環(huán)網(wǎng)絡(luò)的序列編碼都可以看做是一種局部的編碼方式逛犹,只建模了輸入信息的局部依賴關(guān)系舞蔽。雖然循環(huán)網(wǎng)絡(luò)理論上可以建立長距離依賴關(guān)系渗柿,但是由于信息傳遞的容量以及梯度消失問題,實(shí)際上也只能建立短距離依賴關(guān)系陨溅。

如果要建立輸入序列之間的長距離依賴關(guān)系,可以使用以下兩種方法:一種方法是增加網(wǎng)絡(luò)的層數(shù),通過一個(gè)深層網(wǎng)絡(luò)來獲取遠(yuǎn)距離的信息交互;另一種方法是使用全連接網(wǎng)絡(luò)临梗。全連接網(wǎng)絡(luò)是一種非常直接的建模遠(yuǎn)距離依賴的模型汤善,但是無法處理變長的輸入序列红淡。不同的輸入長度不狮,其連接權(quán)重的大小也是不同的摇零。這時(shí)我們就可以利用注意力機(jī)制來“動(dòng)態(tài)”地生成不同連接的權(quán)重,這就是自注意力模型(自注意力也稱為內(nèi)部注意力)驻仅。

假設(shè)輸入序列為X = [x_1, \cdots, x_N] \in \mathbb{R}^{d_1×N},輸出序列為H = [h_1, \cdots, h_N] \in \mathbb{R}^{d_2×N}噪服,首先我們可以通過線性變換得到三組向量序列:

? \begin{align*} Q&=W_QX\in\mathbb{R}^{d_3\times N}\\K&=W_KX\in\mathbb{R}^{d_3\times N}\\V&=W_VX\in\mathbb{R}^{d_2\times N} \end{align*}

其中Q,K, V 分別為查詢向量序列粘优,鍵向量序列和值向量序列芬位,W_Q\in \mathbb{R}^{d_3\times d_1} ,W_K\in \mathbb{R}^{d_3\times d_1} ,W_V\in \mathbb{R}^{d_2\times d_1}分別為可學(xué)習(xí)的參數(shù)矩陣。上面的公式可以看出揽惹,self-Attention中的Q是對(duì)自身(self)輸入的變換被饿,而在傳統(tǒng)的Attention中,Q來自于外部搪搏。

自注意力中Q,K,V的計(jì)算

輸出向量h_i=att\Big((K,V),\boldsymbol{q}\Big)=\sum^N_{j=1}\alpha_{ij}v_j=\sum^N_{j=1}softmax(s(\boldsymbol{k}_j,\boldsymbol{q}_i))v_j狭握,其中i, j ∈ [1,N] 為輸出和輸入向量序列的位置,連接權(quán)重\alpha_{ij} 由注意力機(jī)制動(dòng)態(tài)生成疯溺。

自注意力的計(jì)算示圖

如果使用縮放點(diǎn)積來作為注意力打分函數(shù)论颅,輸出向量序列可以寫為H=Vsoftmax(\frac{K^TQ}{\sqrt{d_3}})哎垦,其中softmax 為按列進(jìn)行歸一化的函數(shù)。

全連接模型和自注意力模型

上圖給出全連接模型和自注意力模型的對(duì)比恃疯,其中實(shí)線表示為可學(xué)習(xí)的權(quán)重漏设,虛線表示動(dòng)態(tài)生成的權(quán)重。由于自注意力模型的權(quán)重是動(dòng)態(tài)生成的今妄,因此可以處理變長的信息序列郑口。

自注意力模型可以作為神經(jīng)網(wǎng)絡(luò)中的一層來使用,既可以用來替換卷積層和循環(huán)層盾鳞,也可以和它們一起交替使用(比如X 可以是卷積層或循環(huán)層的輸出)犬性。自注意力模型計(jì)算的權(quán)重\alpha_{ij}只依賴\boldsymbol{q}_i\boldsymbol{k}_j的相關(guān)性,而忽略了輸入信息的位置信息腾仅。因此在單獨(dú)使用時(shí)乒裆,自注意力模型一般需要加入位置編碼信息來進(jìn)行修正。

外部記憶

為了增強(qiáng)網(wǎng)絡(luò)容量攒砖,可以引入輔助記憶單元缸兔,將一些信息保存在輔助記憶中,在需要時(shí)再進(jìn)行讀取吹艇,這樣可以有效地增加網(wǎng)絡(luò)容量惰蜜。這個(gè)引入的輔助記憶單元一般稱為外部記憶(External Memory),以區(qū)別于循環(huán)神經(jīng)網(wǎng)絡(luò)的內(nèi)部記憶(即隱狀態(tài))受神。

人腦中的記憶

人腦中的記憶具有周期性和聯(lián)想性抛猖。

記憶周期

分為長期記憶和短期記憶。

短期記憶鼻听、長期記憶的動(dòng)態(tài)更新過程稱為演化(Evolution)過程财著。因此,長期記憶可以類比于人工神經(jīng)網(wǎng)絡(luò)中的權(quán)重參數(shù)撑碴,而短期記憶可以類比于人工神經(jīng)網(wǎng)絡(luò)中的隱狀態(tài)撑教。

除了長期記憶和短期記憶,人腦中還會(huì)存在一個(gè)“緩存”醉拓,稱為工作記憶伟姐。工作記憶是一個(gè)記憶的臨時(shí)存儲(chǔ)和處理系統(tǒng),維持時(shí)間通常為幾秒鐘亿卤。

從時(shí)間上看愤兵,工作記憶也是一種短期記憶,但和短期記憶的內(nèi)涵不同排吴。短期記憶一般指外界的輸入信息在人腦中的表示和短期存儲(chǔ)秆乳,不關(guān)心這些記憶如何被使用;而工作記憶是一個(gè)和任務(wù)相關(guān)的“容器”,可以臨時(shí)存放和某項(xiàng)任務(wù)相關(guān)的短期記憶和其它相關(guān)的內(nèi)在記憶屹堰。工作記憶的容量比較小

聯(lián)想記憶

大腦記憶的一個(gè)主要特點(diǎn)是通過聯(lián)想來進(jìn)行檢索的肛冶。

聯(lián)想記憶是指一種學(xué)習(xí)和記住不同對(duì)象之間關(guān)系的能力,比如看見一個(gè)人然后想起他的名字扯键,或記住某種食物的味道等淑趾。聯(lián)想記憶是指一種可以通過內(nèi)容匹配的方法進(jìn)行尋址的信息存儲(chǔ)方式,也稱為基于內(nèi)容尋址的存儲(chǔ)(Content-Addressable Memory忧陪,CAM)扣泊。作為對(duì)比,現(xiàn)代計(jì)算機(jī)的存儲(chǔ)方式是根據(jù)地址來進(jìn)行存儲(chǔ)的嘶摊,稱為隨機(jī)訪問存儲(chǔ)延蟹。

和LSTM中的記憶單元相比,外部記憶可以存儲(chǔ)更多的信息叶堆,并且不直接參與計(jì)算阱飘,通過讀寫接口來進(jìn)行操作。而LSTM模型中的記憶單元包含了信息存儲(chǔ)和計(jì)算兩種功能虱颗,不能存儲(chǔ)太多的信息沥匈。因此,LSTM中的記憶單元可以類比于計(jì)算機(jī)中的寄存器忘渔,而外部記憶可以類比于計(jì)算機(jī)中的內(nèi)存單元高帖。

外部記憶的實(shí)現(xiàn)途徑有兩種:一種是結(jié)構(gòu)化的記憶,這種記憶和計(jì)算機(jī)中的信息存儲(chǔ)方法比較類似畦粮,可以分為多個(gè)記憶片段散址,并按照一定的結(jié)構(gòu)來存儲(chǔ);另一種是基于神經(jīng)動(dòng)力學(xué)的聯(lián)想記憶宣赔,這種記憶方式具有更好的生物學(xué)解釋性预麸。

記憶周期 計(jì)算機(jī) 人腦 神經(jīng)網(wǎng)絡(luò)
短期 寄存器 短期記憶 狀態(tài)(神經(jīng)元活性)
中期 內(nèi)存 工作記憶 外部記憶
長期 外存 長期記憶 可學(xué)習(xí)參數(shù)
存儲(chǔ)方式 隨機(jī)尋址 內(nèi)容尋址 內(nèi)容尋址為主

? 表 不同領(lǐng)域中記憶模型的不嚴(yán)格類比

結(jié)構(gòu)化的外部記憶

比較簡單的方式是引入結(jié)構(gòu)化的記憶模塊,將和任務(wù)相關(guān)的短期記憶保存在記憶中儒将,需要時(shí)再進(jìn)行讀取吏祸。這種裝備外部記憶的神經(jīng)網(wǎng)絡(luò)也稱為記憶網(wǎng)絡(luò)(Memory Network,MN)或記憶增強(qiáng)神經(jīng)網(wǎng)絡(luò)(Memory Augmented Neural Network钩蚊,MANN)贡翘。

記憶網(wǎng)絡(luò)結(jié)構(gòu)
  1. 主網(wǎng)絡(luò)C:也稱為控制器(Controller),負(fù)責(zé)信息處理两疚,并與外界的交互(接受外界的輸入信息并產(chǎn)生輸出到外界)床估。主網(wǎng)絡(luò)還同時(shí)通過讀寫模塊和外部記憶進(jìn)行交互含滴。
  2. 外部記憶單元M: 外部記憶單元用來存儲(chǔ)信息诱渤, 一般可以分為很多記憶片段(Memory Segment),這些記憶片段按照一定的結(jié)構(gòu)來進(jìn)行組織谈况。記憶片段一般用向量來表示勺美,外部記憶單元可以用一組向量m_{1:N} =[m_1, \cdots ,m_N]來表示递胧。這些向量的組織方式可以是集合、樹赡茸、椂衅ⅲ或隊(duì)列等。大部分信息存儲(chǔ)于外部記憶中占卧,不需要全時(shí)參與主網(wǎng)絡(luò)的運(yùn)算遗菠。
  3. 讀取模塊R:根據(jù)主網(wǎng)絡(luò)生成的查詢向量\boldsymbol{q}_r,從外部記憶單元中讀取相應(yīng)的信息r = R(m_{1:N}, q_r)华蜒。
  4. 寫入模塊W:根據(jù)主網(wǎng)絡(luò)生成的查詢向量\boldsymbol{q}_w和要寫入的信息a 來更新外部記憶m_{1:N} = W(m_{1:N}, q_w, a)辙纬。

通過注意力機(jī)制可以實(shí)現(xiàn)一種“軟性”的尋址方式,即計(jì)算一個(gè)在所有記憶片段上的分布叭喜,而不是一個(gè)單一的絕對(duì)地址贺拣。比如讀取模型R的實(shí)現(xiàn)方式可以為:\boldsymbol{r}=\sum^N_{i=1}\alpha_im_i=softmax\Big(s(m_i,\boldsymbol{q}_r)\Big),其中\boldsymbol{q}_r是主網(wǎng)絡(luò)生成的查詢向量捂蕴。

典型的記憶網(wǎng)絡(luò)
端到端記憶網(wǎng)絡(luò)

采用一種可微的網(wǎng)絡(luò)結(jié)構(gòu)譬涡,可以多次從外部記憶中讀取信息。在端到端記憶網(wǎng)絡(luò)中啥辨,外部記憶單元是只讀的涡匀。

端到端記憶網(wǎng)絡(luò)

給定一組需要存儲(chǔ)的信息m_{1:N} =\{m_1, \cdots ,m_N\},首先將其轉(zhuǎn)換成兩組記憶片段A = [a_1, · · · , a_N]C = [c_1, · · · , c_N]溉知,分別存放在兩個(gè)外部記憶單元中渊跋,其中A用來進(jìn)行尋址,C用來進(jìn)行輸出着倾。(簡單起見拾酝,這兩組記憶單元可以合并,即A = C卡者。)

主網(wǎng)絡(luò)根據(jù)輸入x生成q蒿囤,并使用注意力機(jī)制來從外部記憶中讀取相關(guān)信息r:\boldsymbol{r}=\sum_{i=1}^Nsoftmax(a^T_i\boldsymbol{q})c_i,并產(chǎn)生輸出:y=f(q+r)崇决,其中f(·) 為預(yù)測函數(shù)材诽。當(dāng)應(yīng)用到分類任務(wù)時(shí),f(·) 可以設(shè)為Softmax 函數(shù)恒傻。

多跳操作

為了實(shí)現(xiàn)更復(fù)雜的計(jì)算脸侥,我們可以讓主網(wǎng)絡(luò)和外部記憶進(jìn)行多輪交互。在第k 輪交互中盈厘,主網(wǎng)絡(luò)根據(jù)上次從外部記憶中讀取的信息\boldsymbol{r}^{(k?1)}睁枕,產(chǎn)生新的查詢向量:\boldsymbol{q}^{(k)}=\boldsymbol{r}^{(k-1)}+\boldsymbol{q}^{(k-1)},其中\boldsymbol{q}^{(0)} 為初始的查詢向量,\boldsymbol{r}^{(0)}= 0外遇。

假設(shè)第k 輪交互的外部記憶為A^{(k)}C^{(k)}注簿,主網(wǎng)絡(luò)從外部記憶讀取信息為:\boldsymbol{r}^{(k)}=\sum_{i=1}^Nsoftmax((a_i^{(k)})^T\boldsymbol{q}^{(k)})c_i^{(k)}

在K 輪交互后,用y = f(\boldsymbol{q}^{(k)}+\boldsymbol{r}^{(k)}) 進(jìn)行預(yù)測跳仿。這種多輪的交互方式也稱為多跳操作诡渴。多跳操作中的參數(shù)一般是共享的。為了簡化起見菲语,每輪交互的外部記憶也可以共享使用妄辩,比如A^{(1)} = · · · = A^{(K)}C^{(1)} = · · · = C^{(k)}

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

圖靈機(jī)是圖靈在1936年提出的一種抽象數(shù)學(xué)模型山上,可以用來模擬任何可計(jì)算問題恩袱。

圖靈機(jī)結(jié)構(gòu)示例

神經(jīng)圖靈機(jī)主要由兩個(gè)部件構(gòu)成:控制器和外部記憶。外部記憶定義為矩陣M\in \mathbb{R}^{d\times N}胶哲,這里N 是記憶片段的數(shù)量畔塔,d 是每個(gè)記憶片段的大小⊙煊欤控制器為一個(gè)前饋或循環(huán)神經(jīng)網(wǎng)絡(luò)澈吨。神經(jīng)圖靈機(jī)中的外部記憶是可讀寫的。

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

在每個(gè)時(shí)刻t寄摆,控制器接受當(dāng)前時(shí)刻的輸入xt谅辣、上一時(shí)刻的輸出ht?1 和上一時(shí)刻從外部記憶中讀取的信息rt?1,并產(chǎn)生輸出ht婶恼,同時(shí)生成和讀寫外部記憶相關(guān)的三個(gè)向量:查詢向量qt桑阶,刪除向量et 和增加向量at。然后對(duì)外部記憶\mathcal{M}_t 進(jìn)行讀寫操作勾邦,生成讀向量rt蚣录,和新的外部記憶Mt+1

讀操作

在時(shí)刻t, 外部記憶的內(nèi)容記為M_t = [m_{t,1}, \cdots ,m_{t,n}]眷篇,讀操作為從外部記憶Mt 中讀取信息\boldsymbol{r}\in \mathbb{R}^d萎河。

首先通過注意力機(jī)制來進(jìn)行基于內(nèi)容的尋址,即\alpha_{t,i}=softmax\Big(s(m_{t,i},\boldsymbol{q}_t)\Big)蕉饼,其中qt 為控制器產(chǎn)生的查詢向量虐杯,用來進(jìn)行基于內(nèi)容的尋址。函數(shù)s(·, ·) 為加性或乘性的打分函數(shù)昧港。注意力分布αt,i 是記憶片段m_{t,i}對(duì)應(yīng)的權(quán)重擎椰,并滿足\sum^n_{i=1}\alpha_{t,i}=1

根據(jù)注意力分布\alpha_t创肥,可以計(jì)算讀向量\boldsymbol{r}_t作為下一個(gè)時(shí)刻控制器的輸入:\boldsymbol{r}_t=\sum^n_{i=1}\alpha_im_{t,i}

寫操作

外部記憶的寫操作可以分解為兩個(gè)子操作:刪除和增加达舒。

首先值朋,控制器產(chǎn)生刪除向量et 和增加向量at,分別為要從外部記憶中刪除的信息和要增加的信息休弃。

刪除操作是根據(jù)注意力分布來按比例地在每個(gè)記憶片段中刪除et,增加操作是根據(jù)注意力分布來按比例地給每個(gè)記憶片段加入at圈膏。

? \boldsymbol{m}_{t+1, i}=\boldsymbol{m}_{t, i}\left(1-\alpha_{t, i} \boldsymbol{e}_{t}\right)+\alpha_{t, i} \boldsymbol{a}_{t}, \forall i \in[1, n]

通過寫操作得到下一時(shí)刻的外部記憶\mathcal{M}_{t+1}塔猾。

基于神經(jīng)動(dòng)力學(xué)的聯(lián)想記憶

主要是通過神經(jīng)網(wǎng)絡(luò)的動(dòng)態(tài)演化來進(jìn)行聯(lián)想,有兩種應(yīng)用場景:1)輸入的模式和輸出的模式在同一空間稽坤,這種模型叫做自聯(lián)想模型(Auto-Associative Model)丈甸。自聯(lián)想模型可以通過前饋神經(jīng)網(wǎng)絡(luò)或者循環(huán)神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn),也常稱為自編碼器(Auto-Encoder尿褪,AE)睦擂;2)輸入的模式和輸出的模式不在同一空間,這種模型叫做異聯(lián)想模型(Hetero-Associative Model)杖玲。從廣義上講顿仇,大部分機(jī)器學(xué)習(xí)問題都可以看作是異聯(lián)想,因此異聯(lián)想記憶模型可以作為分類器使用摆马。

Hopfield 網(wǎng)絡(luò)

是一種循環(huán)神經(jīng)網(wǎng)絡(luò)模型臼闻,由一組互相連接的神經(jīng)元組成。Hopfield 網(wǎng)絡(luò)也可以認(rèn)為是所有神經(jīng)元都互相連接的不分層的神經(jīng)網(wǎng)絡(luò)囤采。每個(gè)神經(jīng)元既是輸入單元述呐,又是輸出單元,沒有隱藏神經(jīng)元蕉毯。一個(gè)神經(jīng)元和自身沒有反饋相連乓搬,不同神經(jīng)元之間連接權(quán)重是對(duì)稱的。

四個(gè)節(jié)點(diǎn)的Hopfield 網(wǎng)絡(luò)

假設(shè)一個(gè)Hopfield 網(wǎng)絡(luò)有m個(gè)神經(jīng)元代虾,第i 個(gè)神經(jīng)元的更新規(guī)則為:s_{i}=\left\{\begin{array}{ll}{+1} & {\text { if } \sum_{j=1}^{m} w_{i j} s_{j}+b_{i} \geq 0} \\ {-1} & {\text { otherwise }}\end{array}\right.,其中w_{ij}為神經(jīng)元i 和j 之間的連接權(quán)重进肯,bi 為偏置。

連接權(quán)重w_{ij} 有兩個(gè)性質(zhì):w_{ij}=0\qquad \forall i\in [1,m]棉磨,w_{ij}=w_{ji} \qquad \forall i,j\in [1,m]坷澡。

Hopfield 網(wǎng)絡(luò)的更新可以分為異步和同步兩種方式。異步更新是每次更新一個(gè)神經(jīng)元含蓉。神經(jīng)元的更新順序可以是隨機(jī)或事先固定的频敛。同步更新是指一次更新所有的神經(jīng)元,需要有一個(gè)時(shí)鐘來進(jìn)行同步馅扣。第t 時(shí)刻的神經(jīng)元狀態(tài)為s_t=[s_{t,1},s_{t,2},\cdots,s_{t,m}]^T斟赚,其更新規(guī)則為:s_t=f(Ws_{t-1}+b)。其中s_0=x,W=[w_{ij}]_{m\times m}為連接權(quán)重差油,\boldsymbol拗军=[b_i]_{m\times 1}為偏置向量任洞,f(·) 為非線性階躍函數(shù)。

能量函數(shù):在Hopfield 網(wǎng)絡(luò)中发侵,我們給每個(gè)不同的網(wǎng)絡(luò)狀態(tài)定義一個(gè)標(biāo)量屬性交掏,稱為“能量”。
\begin{aligned} E &=-\frac{1}{2} \sum_{i, j} w_{i j} s_{i} s_{j}-\sum_{i} b_{i} s_{i} \\ &=-\frac{1}{2} s^{\mathrm{T}} W s-b^{\mathrm{T}} s \end{aligned}
Hopfield 網(wǎng)絡(luò)是穩(wěn)定的刃鳄,即能量函數(shù)經(jīng)過多次迭代后會(huì)達(dá)到收斂狀態(tài)盅弛。權(quán)重對(duì)稱是一個(gè)重要特征,因?yàn)樗WC了能量函數(shù)在神經(jīng)元激活時(shí)單調(diào)遞減叔锐,而不對(duì)稱的權(quán)重可能導(dǎo)致周期性震蕩或者混亂挪鹏。

給定一個(gè)外部輸入,網(wǎng)絡(luò)經(jīng)過演化愉烙,會(huì)達(dá)到某個(gè)穩(wěn)定狀態(tài)讨盒。這些穩(wěn)定狀態(tài)稱為吸引點(diǎn)(Attractor)。一個(gè)Hopfield 網(wǎng)絡(luò)中步责,通常有多個(gè)吸引點(diǎn)返顺,每個(gè)吸引點(diǎn)為一個(gè)能量的局部最優(yōu)點(diǎn)。

Hopfield 網(wǎng)絡(luò)的能量函數(shù):紅線為網(wǎng)絡(luò)能量的演化方向蔓肯,藍(lán)點(diǎn)為吸引點(diǎn)创南。

聯(lián)想記憶:吸引點(diǎn)可以看作是網(wǎng)絡(luò)中存儲(chǔ)的模式,因?yàn)镠opfield 網(wǎng)絡(luò)是穩(wěn)定的省核,所以輸入向量x最終都會(huì)達(dá)到收斂狀態(tài)(吸引點(diǎn))稿辙,這個(gè)過程叫做檢索過程。因此气忠,Hopfield的檢索是基于內(nèi)容尋址的檢索邻储,具有聯(lián)想記憶能力。

信息存儲(chǔ):就是將輸入向量存入到網(wǎng)絡(luò)中的過程旧噪,也就是調(diào)整神經(jīng)元之間的連接權(quán)重吨娜,因此可以看做是一種學(xué)習(xí)過程。一種最簡單的學(xué)習(xí)方式為:神經(jīng)元i 和j 之間的連接權(quán)重:w_{i j}=\frac{1}{N} \sum_{n=1}^{N} x_{i}^{(n)} x_{j}^{(n)}

存儲(chǔ)容量:對(duì)于聯(lián)想記憶模型來說淘钟,存儲(chǔ)容量為其能夠可靠地存儲(chǔ)和檢索模式的最大數(shù)量宦赠。對(duì)于數(shù)量為m的互相連接的二值神經(jīng)元網(wǎng)絡(luò),其總狀態(tài)數(shù)2m米母,其中可以作為有效穩(wěn)定點(diǎn)的狀態(tài)數(shù)量就是其存儲(chǔ)容量勾扭。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市铁瞒,隨后出現(xiàn)的幾起案子妙色,更是在濱河造成了極大的恐慌,老刑警劉巖慧耍,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件身辨,死亡現(xiàn)場離奇詭異丐谋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)煌珊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門号俐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人定庵,你說我怎么就攤上這事吏饿。” “怎么了洗贰?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵找岖,是天一觀的道長陨倡。 經(jīng)常有香客問我敛滋,道長,這世上最難降的妖魔是什么兴革? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任绎晃,我火速辦了婚禮,結(jié)果婚禮上杂曲,老公的妹妹穿的比我還像新娘庶艾。我一直安慰自己,他們只是感情好擎勘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布咱揍。 她就那樣靜靜地躺著,像睡著了一般棚饵。 火紅的嫁衣襯著肌膚如雪煤裙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天噪漾,我揣著相機(jī)與錄音硼砰,去河邊找鬼。 笑死欣硼,一個(gè)胖子當(dāng)著我的面吹牛题翰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播诈胜,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼豹障,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了焦匈?” 一聲冷哼從身側(cè)響起沼填,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎括授,沒想到半個(gè)月后坞笙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體岩饼,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年薛夜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了籍茧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡梯澜,死狀恐怖寞冯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晚伙,我是刑警寧澤吮龄,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站咆疗,受9級(jí)特大地震影響漓帚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜午磁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一尝抖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迅皇,春花似錦昧辽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至框咙,卻和暖如春咕痛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扁耐。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國打工暇检, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人婉称。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓块仆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親王暗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悔据,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容