偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

新聞 深度學習
本文中,作者對經(jīng)典預(yù)測編碼模型和深度學習架構(gòu)中的預(yù)測編碼模型進行了簡單回顧,其中重點介紹了用于視頻預(yù)測和無監(jiān)督學習的深度預(yù)測編碼網(wǎng)絡(luò) PredNet 以及基于 PredNet 進行改進的一些版本。

 [[434722]]

 0、 引言

預(yù)測編碼(predictive coding)是一種認知科學的假說。與一般認為高層次的神經(jīng)活動都是由感官輸入引起的理念不同,該假說認為更高層次的神經(jīng)表征會參與定義感覺輸入(Sensory Input)。預(yù)測編碼的概念起源于神經(jīng)科學界,近年來,機器學習領(lǐng)域的一些研究人員也開始致力于研究預(yù)測編碼相關(guān)的模型。本文以來自路易斯安那大學拉菲特分校(University of Louisiana at Lafayette) 的 Hosseini M 和 Maida A 近期發(fā)表的文章為基礎(chǔ)[1],探討預(yù)測編碼是如何在深度學習的架構(gòu)中應(yīng)用的。

預(yù)測編碼的一個決定性特征是:它使用自上而下的重構(gòu)機制來預(yù)測感覺輸入或其低級別的表征。具體來說,預(yù)測編碼首先確定預(yù)測值和實際輸入之間的差異(稱為預(yù)測誤差),然后啟動后續(xù)學習過程,以改進所學的更高層次表征的預(yù)測準確度。在深度學習發(fā)展之前,旨在描述新皮質(zhì)計算(computations in the neocortex)的預(yù)測編碼模型就已經(jīng)出現(xiàn),這些模型構(gòu)建了模塊之間的通信結(jié)構(gòu),稱之為 Rao-Ballard 協(xié)議(RB protocol)。RB 協(xié)議是由貝葉斯生成模型得出的(通過結(jié)合感覺輸入與先前的預(yù)期,以做出更好的未來預(yù)測),包含了一些強統(tǒng)計假設(shè)。而非貝葉斯預(yù)測編碼模型(不遵循 RB 協(xié)議)一般用于減少信息傳輸要求和取消自身行動的影響,而不是用于預(yù)測。

預(yù)測編碼可以看作是一種表征學習(representation learning)。支持貝葉斯預(yù)測編碼的學習機制能夠改進所獲取的內(nèi)部表征的質(zhì)量,這可以看做是減少未來預(yù)測誤差的一種副作用。預(yù)測 / 重構(gòu)能力確保獲得的表征能夠完全代表輸入中所包含的信息。由于整個學習過程是由預(yù)測誤差所驅(qū)動的,所以是一種無監(jiān)督學習,只需要預(yù)測的數(shù)據(jù)流的信息。

在應(yīng)用方面,預(yù)測編碼可用于學習重疊圖像組件、物體分類、視頻預(yù)測、視頻異常檢測、偏向競爭(Bias competition)建模、靈長類視覺皮層的反應(yīng)特性以及腦電圖誘發(fā)的大腦反應(yīng)健康問題。此外,它還被提出作為新皮層功能的統(tǒng)一理論。

到目前為止,在深度學習架構(gòu)中構(gòu)建大型的預(yù)測編碼模型的示例非常少見,最著名的為文獻 [3] 中提出的 PredNet 模型,我們會在文章中對其進行介紹。大多數(shù)預(yù)測編碼模型都是在深度學習框架出現(xiàn)之前實現(xiàn)的,所以這些經(jīng)典的模型規(guī)模都很小,而且都沒有專門的時間處理模塊。

1、 預(yù)測編碼的基本知識

首先,我們參考來自華盛頓大學的研究人員發(fā)表的一篇預(yù)測編碼綜述性文章,從神經(jīng)學的角度對預(yù)測編碼進行介紹 [2]。預(yù)測編碼是一個試圖解釋認知現(xiàn)象和理解神經(jīng)系統(tǒng)的統(tǒng)一框架,它提出了神經(jīng)系統(tǒng)中如何減少冗余和進行高效編碼:通過只傳輸傳入的感覺信號中未預(yù)測的部分,預(yù)測編碼允許神經(jīng)系統(tǒng)減少冗余并充分利用神經(jīng)元的有限動態(tài)范圍。預(yù)測編碼為一系列神經(jīng)反應(yīng)和大腦組織的許多方面提供了功能性解釋。自然界中視網(wǎng)膜和外側(cè)膝狀核(lateral geniculate nucleus,LGN)接受區(qū)(receptive field) 的側(cè)向和時間拮抗(temporal antagonism)是自然圖像預(yù)測編碼的結(jié)果。在預(yù)測編碼模型中,視網(wǎng)膜 / LGN 中的神經(jīng)回路主動地從空間中的附近值或時間中的先驗輸入值的線性加權(quán)總和來預(yù)測局部強度的數(shù)值。這些電路中的細胞傳達的不是原始圖像強度,而是預(yù)測值和實際強度之間的差異,這種處理方式減少了輸出冗余。而在高級視覺系統(tǒng)中,預(yù)測編碼為定向感受區(qū)和背景效應(yīng)以及大腦皮層的分層互連組織提供了解釋。從不同腦區(qū)獲得的各種神經(jīng)生理學和心理物理學數(shù)據(jù)也與預(yù)測編碼的猜想一致。

我們先了解一下不同層級的神經(jīng)系統(tǒng)的響應(yīng)特點:大腦中初級視覺皮層(V1)的神經(jīng)元對特定方向的條形和邊緣作出反應(yīng),而 V2 和 V4 區(qū)的神經(jīng)元對更復(fù)雜的形狀和輪廓特征作出反應(yīng)。內(nèi)側(cè)顳上區(qū)(medial superior temporal,MST)的神經(jīng)元對視覺運動有反應(yīng)。這些反應(yīng)的選擇性可以從自然輸入的分層預(yù)測編碼的角度來理解。例如,由于視覺系統(tǒng)是分層組織的,皮層區(qū)域之間有相互的聯(lián)系。根據(jù) Rao 和 Ballard 提出的分層神經(jīng)網(wǎng)絡(luò)的架構(gòu)(RB 架構(gòu)),來自高階視覺皮層區(qū)域的自上而下的反饋連接承載了對低階神經(jīng)活動的預(yù)測,而自下而上的連接則傳達了預(yù)測的剩余誤差。在對取自自然場景的圖像斑塊進行模型網(wǎng)絡(luò)訓練后,他們發(fā)現(xiàn)模型神經(jīng)元發(fā)展出與 V1 相似的感受野特性,包括定向感受野、末端停頓和其他背景效應(yīng)。

預(yù)測編碼的一個早期應(yīng)用是創(chuàng)建視網(wǎng)膜的模型,這些模型具有較低的信息傳輸要求,因為視神經(jīng)是向大腦傳輸視覺信息的瓶頸。連續(xù)的視覺輸入具有高冗余度。如果視網(wǎng)膜上的細胞從空間上和時間上計算出傳入光線的移動平均值,就可以得到對當前輸入的預(yù)測。通過將實際輸入與預(yù)測進行比較,視網(wǎng)膜可以將預(yù)測誤差發(fā)送到后來的處理區(qū)域,從而減少傳輸帶寬。如果脊椎動物的視網(wǎng)膜從頭開始創(chuàng)建當前輸入圖像的表征,信息傳輸?shù)囊髮⑷Q于建立當前環(huán)境的完整表征所需的帶寬。然而,大腦通??梢岳闷鋵^去環(huán)境的現(xiàn)有表征以及關(guān)于環(huán)境如何變化的約束條件,對環(huán)境的當前狀態(tài)做出非常好的預(yù)測。與從頭開始建立當前環(huán)境狀態(tài)的表征相比,預(yù)測誤差只需要較少的帶寬來表示。如果大腦已經(jīng)有了一個相當準確的默認預(yù)測,那么用預(yù)測誤差來更新默認預(yù)測就可以創(chuàng)造一個最新的、信息傳輸需求較低的表征。此外,預(yù)測誤差可以提供很好的信息來指導學習,以改善表征并減少未來的預(yù)測誤差。

隨著預(yù)測編碼模型的發(fā)展,人們開始嘗試將其構(gòu)建為生成模型,以使其能夠直接生成預(yù)測的感覺輸入。這通常將其表示為一個層次結(jié)構(gòu),其中上層預(yù)測下層的輸出(即對上層的輸入),任何預(yù)測誤差都提供信息來指導上層的學習。涉及前饋和反饋連接的分層結(jié)構(gòu)也與靈長類動物的新皮層結(jié)構(gòu)一致。在感知推理和識別的背景下,一個訓練好的生成模型具有這樣的特性:學習到的表征可以重建原始感覺輸入的分布,并在不同的空間和時間尺度上估計輸入中的隱性原因。學習到的表征能夠捕捉到首先產(chǎn)生輸入的因果因素,因此使得重建變?yōu)榭赡?。它需要一個從感覺到原因的逆向映射,以便構(gòu)建表征。這很有挑戰(zhàn)性,因為計算物理世界中感覺和原因之間的逆向映射是一個 ill-posed 問題,也就是說,它的解決方案不是唯一的。在貝葉斯方法中,這可以通過使用適當?shù)南闰灨怕蕘斫鉀Q,在某些情況下,如果有足夠的輸入,可以學習這些先驗概率。一種方法是通過學習使預(yù)測誤差最小化(即預(yù)測性編碼)。

早期的預(yù)測編碼模型一般被表述為統(tǒng)計模型,如分層期望最大化(hierarchical expectation maximization)和變分自由能量模型(variational free energy models)。盡管這些模型提出了計算預(yù)測的精確計算方法但仍存在一些問題和挑戰(zhàn),實施這些模型具有非常龐大的計算量,而且模型的假設(shè)具有高度的限制性。在近期的研究工作中,研究人員提出了利用深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來解決這一問題[3],從而可以直接調(diào)用深度學習框架附帶的大型工具集已解決計算量的問題。

2、 預(yù)測編碼學習層次化的背景知識[1][5]

本節(jié)我們首先了解一下經(jīng)典的預(yù)測編碼方法是如何學習層次化的背景知識的。如上一節(jié)中分析,人類的大腦通??梢岳闷鋵^去環(huán)境的現(xiàn)有表征以及關(guān)于環(huán)境如何變化的約束條件,對環(huán)境的當前狀態(tài)做出非常好的預(yù)測。而預(yù)測編碼模型則是通過生成方式來預(yù)測感覺輸入。一般的,這種生成方式構(gòu)建為一個層次化的結(jié)構(gòu):上層預(yù)測下層的輸出(即上層的輸入),任何預(yù)測誤差都提供信息來指導上層的學習。預(yù)測編碼模型通過減少各層的預(yù)測誤差來構(gòu)建層次化的表征,即表征層次結(jié)構(gòu)(Representation hierarchies),具體包括兩類方法:第一類方法是構(gòu)建越來越抽象的特征層次,通過在層次結(jié)構(gòu)的后期使用更大的輸入上下文信息(input context)來實現(xiàn),類似于卷積網(wǎng)絡(luò)。第二類方法是像在泰勒級數(shù)展開中一樣學習高階誤差的層次結(jié)構(gòu)。我們在這一章節(jié)具體介紹一種第一類方法,即 Rao/Ballard 模型。

Rao/Ballard 的經(jīng)典文獻 [5] 中使用三級表示層次結(jié)構(gòu)對初級視皮層末梢神經(jīng)感受野模型進行建模,其中來自更上層的反饋傳達對前一層神經(jīng)活動的預(yù)測。例如,將最下層的預(yù)測活動與實際活動(原始感官輸入)進行比較。預(yù)測誤差是一個層的輸出,并被轉(zhuǎn)發(fā)到下一個更高的層。在層次結(jié)構(gòu)中,有兩類神經(jīng)元:內(nèi)部表示神經(jīng)元和預(yù)測誤差神經(jīng)元。在預(yù)測中間層表征時,通過讓最上層表征使用相鄰的空間上下文對結(jié)束停止(End-stopping)進行建模。最上層表征為空間更大的上下文構(gòu)建表示。該模型是圍繞預(yù)測元素(predictive element,PE)建立的。人們可以將預(yù)測元素視為大腦中的一個處理階段或皮質(zhì)層。在深度學習術(shù)語中,它由兩個執(zhí)行互補功能的神經(jīng)層組成,并通過前饋和反饋連接連接。

為了方便理解,我們給出 PE 的圖形化展示。將 PE 堆疊成層次結(jié)構(gòu)(圖 1(a))。PE 從層次結(jié)構(gòu)中的前一層接收預(yù)測誤差(通過前向連接),并以先驗概率的形式(通過后向連接)向前一層發(fā)送預(yù)測。圖 1(a)給出信息流的原始視圖。第 l+1 層學習第 l 層的變換表示,從而提高其對第 l 層活動的預(yù)測性能。r(l)表示輸入的假設(shè)原因。不同的層 l 以越來越高的描述級別提供相同原因的不同表示。每一層的表達都表現(xiàn)為形成該層的神經(jīng)元向量的一組激活水平。圖 1(b)中的視圖顯示相鄰層之間的交互遵循一個約束協(xié)議,即 Rao-Ballard 協(xié)議。在我們的表示中,有四種連接類型:預(yù)測(prediction,P)、預(yù)測誤差(prediction error,PE)、橫向目標(lateral target,LT)和橫向目標誤差(lateral target error,LTE)。層輸出是由 PE 連接提供的信息。P 和 PE 為完全連接,LT 和 LTE 為點對點連接(見圖 2)。表示模塊僅與預(yù)測誤差模塊通信,預(yù)測誤差模塊僅與表示模塊通信。此外,預(yù)測誤差神經(jīng)元在層次結(jié)構(gòu)中從不向下投射,內(nèi)部表征神經(jīng)元在層次結(jié)構(gòu)中從不向上投射。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

圖 1:(a)預(yù)測 PE 的 Rao/Ballard 圖。虛線框中包含的預(yù)測元素是預(yù)測編碼層次結(jié)構(gòu)的構(gòu)建塊。圍繞減號的圓表示計算預(yù)測誤差的誤差單位向量;(b) 使 Rao-Ballard 協(xié)議更加清晰的數(shù)據(jù)流圖。e^l 明確預(yù)測誤差和水平。圓箭頭表示減法。與預(yù)測元素關(guān)聯(lián)的四個連接已標記

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

圖 2. PE 預(yù)測單元。e 表示殘差單元,r 表示表征單元,I 表示輸入。黑色的小圓圈代表神經(jīng)元。以實心圓結(jié)尾的紅色箭頭表示減法反饋抑制。紅色箭頭表示 P 連接,藍色箭頭表示 PE 連接,黑色箭頭表示 LT 連接

圖 1(b)拋出了一個尚未有答案的問題:第 r^(l-1)層從第 r^(l+1)層中中獲得了什么樣的層次表示,這些層次表示與經(jīng)典的深度學習模型(如卷積網(wǎng)絡(luò))中獲得的層次表示相比如何?圖 2 示出了 [5] 中模型第一層 PE 的網(wǎng)絡(luò)級表示。為簡單起見,假定第 2 層中的表示單元 r^(2)為線性。在接收層 r^(2)中,有兩個表示 16x16 大小的圖像塊的輸入像素強度的元素,但只有 32 個表示元素。前饋連接為藍色 W,反饋連接為紅色 W^T。自上而下的預(yù)測,表示為 I^。e^(1)單元計算預(yù)測誤差。這些想法與架構(gòu)處理有關(guān):

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

根據(jù)公式 (1a),I 是感官輸入,第一層表征表示為 r^(1),它們是等同的。I 和 I^ 的維度均為 256 x1(假設(shè)為 16 x 16 的輸入圖像塊)。預(yù)測輸入 I^ 也是等同于 r^(1)。預(yù)測輸入表示為 W^Tr^(2),其中 r^(2) 的維度為 32 x 1,W 的維度為 32 x 256。最后,在正常工作條件下,輸入 I 和預(yù)測輸入 I^ 應(yīng)大致相等。公式 (1b) 將第 1 層的預(yù)測誤差 e^(1)定義為實際輸入和預(yù)測輸入之間的差異。公式 (1c) 用于根據(jù)預(yù)測誤差更新第二層的內(nèi)部表征。從預(yù)測誤差平方和的成本函數(shù) J 開始。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

考慮到僅針對單層網(wǎng)絡(luò),為了便于閱讀,作者在公式中省略了層上標。在文獻 [5] 中報告的成本函數(shù)包含了先驗知識,但公式 (2) 的成本函數(shù)并未考慮先驗知識。為了準備梯度下降,我們得到了 J 對 r 的導數(shù)。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

對于梯度下降,我們以一定的速率沿導數(shù)的相反方向移動:

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

通過取 W^T 對 J 的導數(shù),可得到如下所示的學習方程:

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

進一步的,給定圖 2 中的模塊,我們希望看到更大的體系結(jié)構(gòu)是什么樣子,以及當它嵌入到上下文層次結(jié)構(gòu)中時會發(fā)生什么。為了實現(xiàn)這一點,圖 3 擴展了圖 2,在第一層中有兩個橫向 PE,在第二層中增加了一個 PE。層 2 的輸入由三個重疊的 16x16 圖像塊組成。圖 2 中的神經(jīng)元 (r_1)^(1)-(r_1)^(32) 與圖 3 中由 (r_1)^(1,2)-(r_1)^(32,2) 識別的神經(jīng)元相同。新添加的第 3 層接收來自第 1 層的所有 PEs 的輸入。在圖 3 中,第一層的中間組件對應(yīng)于圖 2 中的模塊。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

圖 3. 擴展后的文獻 [5] 中模型的全局結(jié)構(gòu),顯示了層次結(jié)構(gòu)和相鄰上下文。圖 2 中的網(wǎng)絡(luò)位于虛線框內(nèi)

3、 PredNet: 用于視頻預(yù)測和無監(jiān)督學習的深度預(yù)測編碼網(wǎng)絡(luò)[3]

3.1 PredNet 介紹

文獻 [4] 首次提出了深度預(yù)測編碼網(wǎng)絡(luò)(deep predictive coding networks)的概念,而文獻 [3] 中提出的模型 PredNet,可能是使用深度學習(DL)框架實現(xiàn)的最早的預(yù)測編碼模型。與上文描述的直接使用數(shù)學公式的方法相比,使用 DL 框架實現(xiàn)預(yù)測編碼模型具有許多潛在優(yōu)勢。

  • 首先,DL 框架非常成熟、通用且高效。因此,他們應(yīng)該更容易建立和研究預(yù)測編碼模型,唯一的復(fù)雜性是他們處理跨層反饋連接的能力。
  • 其次,使用 DL 框架的模型可以擴展到具有超過十萬個參數(shù)的非常大的體系結(jié)構(gòu)。這不是使用傳統(tǒng)的預(yù)測編碼能夠?qū)崿F(xiàn)的。
  • 第三,深度學習體系結(jié)構(gòu)允許使用大型學習模塊(如 LSTM),可以處理更寬松的統(tǒng)計假設(shè),從而在更一般的情況下運行。

PredNet 屬于第二類預(yù)測編碼模型(如上文所述:像在泰勒級數(shù)展開中一樣學習高階誤差的層次結(jié)構(gòu))。PredNet 的架構(gòu)見圖 4。PredNet 由一系列重復(fù)堆疊的模塊組成,這些模塊對輸入進行局部預(yù)測,然后從實際輸入中減去該預(yù)測并傳遞到下一層。具體的,每個模塊由四個基本部分組成:輸入卷積層(A_l)、遞歸表示層(R_l)、預(yù)測層((a_l)^)和誤差表示層(E_l)。R_l 是一個循環(huán)卷積網(wǎng)絡(luò),它生成 A_l 在下一幀上的預(yù)測(a_l)^。該網(wǎng)絡(luò)獲取 A_l 和(A_l)^ 之間的差值,并輸出誤差表示形式 E_l,包括單獨的校正正誤差總體和負誤差總體。E_l 通過卷積層向前傳遞,成為下一層(A_l+1)的輸入。R_l 接收 E_l 的副本以及來自下一級網(wǎng)絡(luò)(R_l+1)的表示層的自頂向下的輸入。網(wǎng)絡(luò)的組織是這樣的,在操作的第一個時間步驟中,網(wǎng)絡(luò)的“右側(cè)”(A_l’s 和 E_l’s)相當于標準的深度卷積網(wǎng)絡(luò)。網(wǎng)絡(luò)的 "左側(cè)"(R_l’s)相當于一個生成性去卷積網(wǎng)絡(luò),每個階段都有局部遞歸。與上一節(jié)介紹的經(jīng)典預(yù)測編碼模型不同,PredNet 構(gòu)建為一個深度學習框架,它使用梯度下降法進行端到端的訓練,同時隱式嵌入了一個損失函數(shù)作為誤差神經(jīng)元的觸發(fā)頻率。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

圖 4. PredNet 架構(gòu)。左圖:兩層內(nèi)信息流的圖示。每一層由表示神經(jīng)元(R_l)組成,表示神經(jīng)元(R_l)在每個時間步((a_l)^)輸出特定于層的預(yù)測,并與目標(A_l)進行比較以產(chǎn)生誤差項(E_l),然后誤差項(E_l)在網(wǎng)絡(luò)中橫向和垂直傳播

PredNet 架構(gòu)適用于各種模擬數(shù)據(jù),文獻 [3] 具體關(guān)注圖像序列(視頻)數(shù)據(jù)。給定圖像序列 x_t,下層的目標設(shè)置為實際序列本身,上層的目標則是通過對下層的誤差單元進行卷積,然后通過 ReLU 和 Max pooling 處理得到的,使用 LSTM 作為表示神經(jīng)元。(R_l)^t 利用 (R_l)^(t-1)、(E_l)^(t-1) 更新,以得到(R_l+1)^t。(A_l)^t^ 則通過(R_l)^t 堆的卷積附加 ReLU 處理得到。對于下層,(A_l)^t^ 通過一個設(shè)置為最大像素值飽和非線性集:

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

最后,(E_l)^t 計算為(A_l)^t^ 和(A_l)^t 的差,然后被分為 ReLU 激活的正預(yù)測誤差和負預(yù)測誤差,這些誤差沿特征維度串聯(lián)。完整的更新公式如下:

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

對模型進行訓練以使誤差單元活動的加權(quán)和最小。訓練損失為:

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

對于由減法和 ReLU 激活組成的誤差單元,每層的損失相當于 L1 誤差。雖然本文沒有針對此問題進行探討,但作者表示也可以使用其他誤差單元實現(xiàn),甚至可能是概率的或?qū)剐缘?。完整的流程如下?/p>

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

狀態(tài)更新通過兩個過程進行:一個自上而下的過程,其中計算(R_l)^t 狀態(tài),然后一個向前的過程,以計算預(yù)測、誤差和更高級別的目標。最后一個值得注意的細節(jié)是 R_l 和 E_l 被初始化為零,這是由于網(wǎng)絡(luò)的卷積性質(zhì),意味著初始預(yù)測在空間上是一致的。

3.2 PredNet 的預(yù)測編碼分析

本小節(jié)介紹 PredNet 的圖形化展示[1]。圖 5 示出了模型最下層的 PredNet 預(yù)測元素(PE),其中左側(cè)的表示模塊實現(xiàn)為 cLSTM(convolutional LSTMs,卷積 LSTM)。由于 PredNet 處理視頻數(shù)據(jù),因此該模型中的表示模塊由卷積 LSTM(cLSTMs)組成。cLSTM 是對 LSTM 的一種修改,它使用多通道圖像作為其內(nèi)部數(shù)據(jù)結(jié)構(gòu)來代替特征向量。cLSTM 將基于仿射權(quán)乘(用于常規(guī) LSTM)的門操作替換為適用于多通道圖像的卷積門操作,以生成圖像序列(如視頻)的有用表示。表示模塊的輸出投射到誤差計算模塊,該模塊將其輸出發(fā)送回表示模塊。該模型通過將預(yù)測結(jié)果與目標幀進行比較,并使用預(yù)測誤差作為代價函數(shù),來學習預(yù)測視頻(目標)中的下一幀。由于圖 5 沒有顯示前饋和反饋連接如何鏈接到下一個更上層,我們無法確定它是否是預(yù)測預(yù)測誤差的模型。在這一點上,它作為預(yù)測編碼模型是通用的。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

圖 5. PredNet 最下層(訓練模式)中的信息流,其中輸入為真實視頻幀,R 和 E 是循環(huán)連接的

PredNet 與早期預(yù)測編碼模型之間的根本區(qū)別在于 PredNet 中的模塊間連接性與之前研究的模型不同。具體而言,PredNet 不遵循 RB 協(xié)議。這在圖 5 中不容易看出,但在圖 6(a)中很明顯,圖 6(a)給出了 PredNet 模型的兩層版本,模塊互連模式不同于 RB 協(xié)議。例如,PredNet 中第二層表示投影到第一層表示,而如果使用 RB 協(xié)議,它將投影到第一層誤差。類似地,如果使用 RB 協(xié)議,第一層應(yīng)投影到第二層表示。相反,PredNet 投影到了第二層誤差。

下圖6為PredNet 的兩個視圖。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

(a)

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

(b)

圖6.PredNet的兩個視圖。(a) 簡單的文字表述。(b) 重構(gòu)圖

我們可以通過圖 6 具體分析 PredNet 的工作方法。當使用 L0 訓練損失時,誤差值 e2 不是訓練損失函數(shù)的一部分,因此在第 2 層的表示中學習僅減少損失 e1。此外,兩層的架構(gòu)表示減少了高階誤差,但 L0 損失函數(shù)與此相反。因為 e2 并不影響訓練。來自 e2 的反向傳播權(quán)重更新信息沿箭頭指向的相反方向流動。

假設(shè):如果我們切斷標記為 “1” 的連接,它對性能的影響應(yīng)該可以忽略不計。如果這一假設(shè)被證明是正確的,那么更高級別的預(yù)測誤差計算不會起到顯著作用。Hosseini M 和 Maida A 認為,這意味著 PredNet 模型并非真正的預(yù)測編碼網(wǎng)絡(luò),其功能原理類似于傳統(tǒng)的深度網(wǎng)絡(luò)。具體而言,它是一個分層 cLSTM 網(wǎng)絡(luò),在最下層使用平方誤差損失之和[1]。雖然圖 6 中沒有明確顯示,但在連續(xù)層之間的上行鏈路上使用了池化,在下行鏈路上使用了上采樣。這實現(xiàn)了某種形式的分層空間上下文,但由于它將預(yù)測誤差作為更上層次的表征,所以很難進行啟發(fā)式解釋。

4、利用 RB 協(xié)議對 PredNet 改進的思考

通過上文的介紹我們可以看出,PredNet 是第一個深度學習架構(gòu)中的預(yù)測編碼,但是它并不遵循 RB 協(xié)議。Hosseini M 和 Maida A 在 文獻 [1] 中提出了一種利用 RB 協(xié)議改進 PredNet 的方法,命名為 RBP 模型(RB-PredNet),如圖 7 所示。所有可訓練參數(shù)都在 A^l、(A^l)^ 和 R^l 模塊中。所有三種模塊類型都執(zhí)行多通道 2D 卷積運算。A^l 和(A^l)^ 模塊使用一種操作,而 R^l 模塊實現(xiàn)的是 cLSTM,因此一共使用了四組相同的操作。如果輸出通道數(shù)為 oc,則需要 oc 多通道卷積來計算此輸出,這是卷積集的大小。cLSTM 有三個門操作和一個輸入更新操作,每個操作計算一個多通道卷積集。除了內(nèi)核中的權(quán)重值外,這些集合是相同的。R^l 模塊的輸入通道數(shù)(表示為 ic)是前饋、橫向和反饋輸入的總和。所有卷積運算都使用平方濾波器,其內(nèi)核大小在一維上由 k=3 表示??紤]到這些因素,下面的公式給出了一組多通道卷積的參數(shù)計數(shù),稱為卷積集:

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

其中,括號中給出了多通道卷積濾波器的權(quán)重數(shù)。每個過濾器都有一個偏差。對于每個輸出通道,需要一個多通道卷積。表 1 給出了圖 7 中模型的參數(shù)計算量,該模型共有 65799 個可訓練權(quán)重。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

圖 7. 改進的 RBP 模型架構(gòu)

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

表 1. 圖 7 所示模型的參數(shù)計算量。如果 R^l 模型中的 LSTM 被 GRU 替換,則參數(shù)計數(shù)為 50451,而不是 65799。這是通過將每個 R^l 模塊中的卷積集的數(shù)量從四個更改為三個來實現(xiàn)的

接下來,作者將圖 7 中的 RBP 模型與原始 PredNet 3 層模型進行比較。兩個模型都使用相同的 11 個模塊。兩種模式都被限制在 R^l 模塊中使用相同的輸出通道。為了將這些模塊組合在一起,要求 Rl^ 模塊的輸入通道數(shù)不同,E^1 和 E^2 模塊以及連接它們的 A^l 和(A^l)^ 模塊的通道數(shù)也不同。由于輸入通道的數(shù)量不同,圖 8 模型有 103,020 個參數(shù)(參見表 2),而不是 65,799。圖 7 和圖 8 中連接模塊的箭頭表示信息流的方向。箭頭上的數(shù)字標簽表示該路徑的通道數(shù)。每個模型的 R^l 模塊中的輸出通道數(shù)量是匹配的。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

圖 8. 擴充后的三層 PredNet 模型,其中,藍色路線在 RBP 模型中不存在,但在擴充后的模型中使用,紅色通路在 RBP 和混合模型中都是缺失的,這是原始 PredNet 模型特有的。箭頭附近的標簽是通道數(shù)。這種結(jié)構(gòu)由表 3 中給出的 Pred1 和 Pred2 模型實現(xiàn)

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

表 2. 圖 8 中涉及的參數(shù)計算量

所有的模型都在預(yù)處理的 KITTI 交通數(shù)據(jù)集上使用 Adam 優(yōu)化器訓練了 20 個 epochs。該數(shù)據(jù)集經(jīng)過預(yù)處理,以獲得尺寸為 120 x 160 像素的三通道彩色圖像。完成這個數(shù)據(jù)集上的預(yù)測任務(wù)需要模型檢測和跟蹤視頻幀中的幾個移動和非移動物體。作者通過實驗測試了三種架構(gòu)。第一個是 RBP 架構(gòu),其中 R^l 模塊是由 cLSTMs 構(gòu)建的。第二個也是 RBP 架構(gòu),其中 R^l 模塊由卷積 GRU 構(gòu)建。第三種是使用原始 PredNet 架構(gòu)進行測試。如表 3 所示具體的模型體系結(jié)構(gòu)規(guī)范。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

表 3. 根據(jù)模型 ID 索引的模型體系結(jié)構(gòu)規(guī)范。其中,"stack sizes" 是誤差模塊的輸入通道數(shù),"R stack sizes" 是表示模塊的輸出通道的數(shù)量,"Params" 是模型中可訓練參數(shù)的數(shù)量

作者具體完成了兩個實驗。第一個實驗使用的損失函數(shù)權(quán)重值為 [.5, .4, .2]。第二個實驗使用的損失函數(shù)權(quán)重值為[1, 0, 0]。在所有的實驗中,作者記錄了三個性能指標:平均絕對誤差(MAE)、平均平方誤差(MSE)和結(jié)構(gòu)相似度指數(shù)(SSIM)。所有指標都是在文獻[3] 給出的基線控制條件下計算的,以便與神經(jīng)網(wǎng)絡(luò)性能指標進行比較。基線使用當前的視頻幀作為下一幀的預(yù)測值。表 4 和表 5 分別給出兩個實驗的結(jié)果。作者將預(yù)測誤差分數(shù)應(yīng)與基線分數(shù)相比較。在訓練階段,RBP 模型對訓練數(shù)據(jù)的平均絕對誤差(MAE)為 .0191,對驗證誤差的平均絕對誤差為 .0245。在測試階段,MSE 下一幀的預(yù)測精度為 .0163,而使用前一幀作為預(yù)測的基線預(yù)測精度為 .0212。這些結(jié)果與 PredNet 模型非常接近。SSIM 的結(jié)果與 MAE 非常類似。這些結(jié)果表明,盡管這兩個模型的通信結(jié)構(gòu)不同,但實際上是等效的。第二個實驗給出的結(jié)果與實驗一有所不同。兩個模型的預(yù)測性能都有所提高。就 Lotter 等人提出的 PredNet 模型而言,這是預(yù)料之中的,因為該結(jié)果已在原始論文中報告。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

表 4. 使用 LSTM 的原始 PredNet 模型和使用 LSTM 和 GRU 的 RBP 模型的比較。兩個模型的層損失函數(shù)權(quán)重都是[.5, .4, .2]。完整的模型規(guī)格可以通過查找表 3 中的模型 ID 找到。

說到深度學習架構(gòu)中的預(yù)測編碼模型,還得看PredNet

表 5. 原始 PredNet 模型和 RBP 三層模型的比較。兩個模型的損失函數(shù)權(quán)重都是[1.0, .0, .0]。關(guān)于模型的更多信息可以通過在表 3 中查詢模型 ID 找到

5、小結(jié)

我們在這篇文章中對經(jīng)典預(yù)測編碼模型和深度學習架構(gòu)中的預(yù)測編碼模型進行了簡單回顧。預(yù)測編碼模型使用自上而下的重構(gòu)機制來預(yù)測感覺輸入或其低級別的表征,經(jīng)典預(yù)測編碼模型遵循 RB 協(xié)議。深度學習架構(gòu)的 PredNet 構(gòu)建了一個誤差驅(qū)動的表征層次,其中, 上層表示的輸入來自于前一層的預(yù)測誤差,但 PredNet 并不滿足 RB 協(xié)議。我們對文獻 [1] 中提出的基于 RB 協(xié)議改進的 PredNet 也進行了介紹。由給出的實驗結(jié)果分析可以,改進后的遵循 RB 協(xié)議的 RBP 模型確實提高了性能。

從定義的角度出發(fā)分析,我們可以看出預(yù)測編碼模型的目的是 “減少預(yù)測誤差”。不過,如果只是通過減少預(yù)測誤差來生成表征,那么我們是無法保證這些獲取的表征對特定的任務(wù)是有效的,例如分類任務(wù)。正如文獻[1] 的作者在文章最后問到的,指導構(gòu)建高階表征的殘余誤差是如何提高 PredNet 模型的學習能力的?預(yù)測誤差觸發(fā)了學習,但是否還需要什么來觸發(fā)特征層次的學習?

在我們撰寫這篇文章的過程中對與預(yù)測編碼相關(guān)的文獻進行了搜索,與深度學習各類論文相比,預(yù)測編碼相關(guān)的研究論文數(shù)量還非常有限。正如我們在上文中提到的,能夠真正意義上稱為深度學習架構(gòu)中的預(yù)測編碼的模型目前也就只有 PredNet 以及基于 PredNet 進行改進的一些版本。筆者猜測,這可能與預(yù)測編碼 “僅致力于減少預(yù)測誤差” 有關(guān),在一些專門的任務(wù)中表現(xiàn)可能并不亮眼。但是,這種高度模擬大腦工作機制的方法 / 模型能否在實際場景中獲得較好的應(yīng)用效果,有待后續(xù)深入的研究和探索。

 

責任編輯:張燕妮 來源: 機器之心Pro
相關(guān)推薦

2022-07-15 16:14:39

深度學習時間序列理論

2023-01-30 17:10:23

DeepTime元學習

2018-03-20 15:33:05

深度學習加密貨幣

2021-05-06 09:05:11

深度學習

2022-03-30 07:32:10

JDK8異步編程

2021-11-24 17:48:30

深度學習風險預(yù)測

2022-03-17 17:55:08

深度學習人工智能Nature

2017-12-26 10:48:37

深度學習原始數(shù)據(jù)

2019-08-08 08:00:00

深度學習機器學習神經(jīng)網(wǎng)絡(luò)

2025-02-17 13:09:59

深度學習模型壓縮量化

2024-07-19 08:00:00

深度學習知識蒸餾

2020-02-10 17:55:32

疫情模型靠譜

2023-02-13 08:00:00

深度學習數(shù)據(jù)算法

2021-03-29 09:02:24

深度學習預(yù)測間隔

2023-08-23 12:38:10

2020-04-10 15:05:09

深度學習人工智能蒸餾

2023-02-24 15:57:02

魅族FlymeAuto

2023-11-20 09:53:13

自動駕駛系統(tǒng)

2024-04-28 09:02:49

2023-11-19 23:36:50

點贊
收藏

51CTO技術(shù)棧公眾號