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