正在涌現的新型神經網絡模型:優于生成對抗網絡
隨著深度神經網絡技術的發展,新型的網絡架構也在不斷涌現。普渡大學 e-Lab 的三位研究者 Alfredo Canziani、Abishek Chaurasia 和 Eugenio Culurciello 近日在 Medium 上發文闡述了一類新型的深度神經網絡,其在視頻分析上具有無監督學習 、分割、場景解析、定位、時空表征、視頻預測、表征預測、在線學習等能力,并且還在很多方面優于當前大熱的生成對抗網絡(GAN)。
新一代深度神經網絡正在涌現。它們演變自前饋模型,之前我們曾作過詳細分析,參閱機器之心文章 《重磅 | 神經網絡架構演進史:全面回顧從LeNet5到ENet十余種架構(附論文)》 或更新版本:https://medium.com/towards-data-science/neural-network-architectures-156e5bad51ba
這種新型的神經網絡從 LeNet5 / AlexNet 及其變體的初始前饋模型進化而來,并且包含有比 ResNet / Inception 更復雜的旁路方案。由于這些前饋神經網絡把圖像壓縮并編碼為更小的表征向量,其也被稱為編碼器。
新一代神經網絡有兩個重要的新特征:
- 生成性分支(generative branches):也被稱為解碼器,因為它們把表征向量投射回輸入空間
- 循環層(recurrent layers):其把前一時間步的表征和當前時間步的輸入和表征結合在了一起
太棒了!但是這一額外的復雜性能給我們帶來什么?
它證明了傳統的前饋神經網絡有很多局限性:
- 不能精確定位:由于較高層的下采樣和空間分辨率的損失,特征/目標/類別的定位受到限制。
- 不能進行場景推理:由于把圖像壓縮為短表征代碼,它們失去了關于圖像構成以及圖像或者場景各個部分的空間排列的信息。
- 具有時間的不穩定性:由于它們使用靜止圖像進行訓練,所以不能學習目標在空間中運動時平滑的時空轉化。它們可以識別一些圖像中(但不是全部)目標所屬的類型,并且對于對抗性的噪音和擾動非常敏感。
- 不能預測:由于它們使用時間信息,前饋神經網絡在每一幀提供一個新的表征代碼,這只基于當前輸入,但是并不預測下幾幀中將會發生什么(注意:有一些例外,它們不在視頻上進行訓練)
為了克服這些局限,我們需要新一代神經網絡,以將已學習的表征投射回輸入圖像空間,并且可在圖像的時間連貫的序列上訓練:我們需要在視頻上進行訓練。
以下是新一代神經網絡所具有的高級特征:
無監督學習 - 它們可在視頻上進行預訓練,以預測未來的幀或者表征,因此需要更少的標注數據來訓練并執行某些任務。
- 分割 - 分割一張圖像中的不同目標
- 場景解析 - 其在分割之后,如果數據集有每一像素的目標標簽,用于自動駕駛和增強現實
- 定位 - 在分割和完美的目標邊界之后,所有的場景解析和分割網絡都可以做到此
- 時空表征 - 使用視頻進行訓練,而不僅僅是靜態圖像,了解時間概念和時間關系
- 視頻預測 - 一些網絡被設計用來預測視頻中的未來幀
- 表征預測 - 一些網絡可以預測視頻中未來幀的表征
- 在線學習能力 - 通過監測預測與真實未來幀或表征之間的錯誤信號
現在讓我們了解一下這些新網絡的細節和實現:
生成性梯網絡(Generative ladder networks)
這些模型使用一個編碼器和一個解碼器對以把圖像分割為不同的部分與目標。實例有: ENet、SegNet、Unet、DenseNet、梯網絡以及更多:
- ENet:https://arxiv.org/abs/1606.02147
- SegNet:https://arxiv.org/abs/1511.00561
- Unet:https://arxiv.org/abs/1505.04597
- DenseNet:https://arxiv.org/abs/1611.09326
- 梯網絡:https://arxiv.org/abs/1507.02672
下面是一個典型的 3 層模型:
D 模塊是標準的前饋層。G 模塊是生成性模塊,它和標準的前饋層相似,但具有去卷積和上采樣。它們同樣使用殘差類型的連接 「res」 以把每一編碼層的表征與解碼層的表征相連。這迫使生成層的表征被前饋表征模塊化,從而具有更強的能力去定位,把場景解析為目標和部分。「x」是輸入圖像,「y」是同一時間步的輸出分割。
這些網絡可以執行分割、場景解析、精確定位,但是不能在時域中進行操作,且沒有過去幀的記憶。
最近每一層的編碼器到解碼器旁路幫助這些網絡獲得了當前最佳的性能。
遞歸和生成性梯網絡(Recursive and generative ladder networks)
它是最新的深度神經網絡之一,把遞歸添加進了生成性梯網絡,從而形成了遞歸性和生成性梯網絡(REGEL)。REGEL 是迄今為止最為復雜的深度神經網絡之一,至少在圖像分析領域是這樣。
下面是一個我們正使用的 REGEL 的 3 層模型:
D 和 G 模塊實際上與上述的生成性梯網絡中的模塊相同。該網絡把來自每一個 G 模塊的循環路徑「t-1」添加到了同一層的每一個 D 模塊之中。
該網絡采用視頻中一系列的幀作為輸入 x[t],并在每一時間步預測視頻 y[t+1] 的下一幀, y[t+1] 接近于 x[t+1],如果預測是精確的。
由于該網絡可以度量預測與真實的下一幀之間的誤差,它知道什么時候可以或者不可以預測輸入。如果不可以,它可以激活增量學習,這是前饋神經網絡做不到的。因此該網絡本質上就可以執行在線學習。
我們認為這是機器學習的一個非常重要的特性,這是預測神經網絡的一種天賦。沒有這種特性,網絡就不能提供真實的預測置信度信號,而且不能執行有效的增量學習。
這些網絡仍在研究之中。我們的建議是:繼續關注它們!
預測編碼網絡(predictive coding network)——第一部分
遞歸生成網絡(recursive generative network)是一種可能的預測模型。預測編碼計算神經科學模型(predictive coding computational neuroscience model)可作為其替代,能夠提供預測能力并被做成層次化的深度神經網絡。
這里給出了一個 2 層模型的示意:
Rao 和 Ballard 在其 Nature Neuroscience 論文《Predictive coding in the visual cortex: a functional interpretation of some extra-classical receptive-field effects》中的模型和 Friston 的實現論文《Canonical microcircuits for predictive coding》都是計算 A 模塊(類似于上述梯網絡中的 D 模塊)和 R/Ay 模塊(類似于上述梯網絡中的 G 模塊)之間每一層的誤差 e。這個誤差 e 表示了該網絡在每一層預測表征的能力。然后誤差 e 被作為輸入發送給下一層。R 是一個卷積 RNN/LSTM 模塊,而 Ay 類似于 A 模塊。R 和 Ay 可以被結合為一個單一的循環模塊。在第一層中,x 是輸入幀。
這個模型的問題是該網絡非常不同于標準的前饋神經網絡。這些預測網絡并不會在更高層面上創造一個結合了更低層的特征的層次表征,而是會計算之前的層的殘差誤差(residual errors)的表征。
因此,它會讓人想起殘差前饋網絡(residual feed-forward network),但在實際中,強迫這些網絡向前傳播誤差并不能讓它們在更高層學習到有效的層次表征。因此,它們不能基于更上層的表征來有效地執行其它任務,例如分類、分割、動作識別。要明確這些限制,還需要更多的實驗。
該模型已經被 Bill Lotter 和 David Cox 實現,參考 PredNet:https://coxlab.github.io/prednet/
預測編碼網絡——第二部分
Spratling 預測編碼模型是將表征 y 投射到更上層,而非像之前的 Friston 模型那樣投射誤差 e。這使得該網絡與層次化前饋深度神經網絡更兼容,并且還避免了學習到更上層的誤差的矩(moments of errors)。
這里給出了一個 2 層模型的示意:
本質上講,該模型可以被重寫和簡化成我們前面提到的循環生成梯模型。這是因為 R 和 Ay 可以被結合成一個單個循環模塊。
與生成對抗網絡的關系
生成對抗網絡(GAN)是現在一種非常流行的模型,其可以從數據分布中學習生成樣本。這里提出的新網絡模型優于 GAN,原因如下:
- 它們并不通過最小最大博弈(minimax game)的方式來訓練,而是直接面向一個有用的任務訓練的,所以其鑒別器和生成器都是直接有用的。
- 它們可以學習創造有用的輸入表征,同時也可以生成新的輸入。
- 它們可以學習基于輸入來生成目標數據。
- 生成器網絡和鑒別器網絡是緊密綁定的,消除了收斂問題。
- 其生成器可以提供具有近乎完美真實感的照片樣本(見下),相比而言,GAN 的結果并不太好。
REGEL 網絡預測能力的示例——左圖:當前幀;中圖:下一個真實幀;預測的下一幀
其它模型
REGEL 這樣的模型讓人想起像素循環網絡(Pixel recurrent networks)及其諸多實現(比如 PixelCNN、Pixel CNN++、WaveNet)。這些模型的目標是建模輸入數據的分布。(「我們的目標是估計自然圖像的分布,并將其用于可跟蹤地計算數據的似然并生成新的數據。」)它們僅專注于生成新的具有真實感的數據樣本,但還沒有表現出為真實世界任務學習表征的能力。而且這些模型的推理速度也非常慢。
- 像素循環網絡:https://arxiv.org/abs/1601.06759
- PixelCNN:https://arxiv.org/abs/1606.05328
- Pixel CNN++:https://openreview.net/pdf?id=BJrFC6ceg
- WaveNet:https://deepmind.com/blog/wavenet-generative-model-raw-audio/
- 其它:http://ruotianluo.github.io/2017/01/11/pixelcnn-wavenet/
總結
這些新網絡仍然還在研究和評估之中。比如最近的 PredNet 論文(https://arxiv.org/abs/1605.08104 )就給出了預測編碼網絡和梯網絡的一個比較,其中 PredNet 在一些任務上表現更優。PredNet 可被用于使用高層表征來執行定向的面部分類。另外,其還可以在一個數據集中預測轉向角,但大多還是使用該網絡第一層的簡單動作過濾器。該任務并不需要對特征進行層次分解。