編者按:卷積神經(jīng)網(wǎng)絡(luò)如今的應(yīng)用已十分廣泛,但是uber的工程師們最近表示,卷積網(wǎng)絡(luò)在坐標(biāo)變換上的缺陷限制了它的性能提升,而uber開(kāi)發(fā)的CoordConv結(jié)構(gòu)正好可以解決這一問(wèn)題。以下是論智帶來(lái)的編譯:
Uber在很多設(shè)計(jì)坐標(biāo)變換的領(lǐng)域都使用了卷積神經(jīng)網(wǎng)絡(luò),從設(shè)計(jì)自動(dòng)駕駛工具到自動(dòng)信號(hào)燈監(jiān)測(cè)和建造地圖等等,這些工具都大大提升了空間移動(dòng)效率。
在深度學(xué)習(xí)中,很少能有像卷積影響深遠(yuǎn)的成果。幾乎機(jī)器視覺(jué)中所有先進(jìn)成果都用了堆疊的卷積層作為基本搭建模塊。由于這種結(jié)構(gòu)的廣泛應(yīng)用,我們期待它們能應(yīng)用于一些簡(jiǎn)單任務(wù),例如在小尺寸圖畫(huà)上繪畫(huà)單一像素。
但令人驚訝的是,卷積結(jié)構(gòu)似乎很難處理看上去很平常瑣碎的任務(wù)。在我們的論文——An Intriguing Failing of Convolutional Neural Networks and the CoordConv Solution中,我們研究并分析了卷積神經(jīng)網(wǎng)絡(luò)的一種常見(jiàn)缺陷,即它無(wú)法將空間表示轉(zhuǎn)換成笛卡爾空間中的坐標(biāo)和one-hot像素空間中的坐標(biāo)。這很意外,因?yàn)檫@些任務(wù)似乎很簡(jiǎn)單,并且此類(lèi)坐標(biāo)的轉(zhuǎn)換也是解決常見(jiàn)問(wèn)題的必備方法,例如圖像中的物體檢測(cè)、訓(xùn)練生成模型、訓(xùn)練強(qiáng)化學(xué)習(xí)智能體等等,所以也很重要。經(jīng)過(guò)研究我們發(fā)現(xiàn),這些任務(wù)已經(jīng)多多少少受到卷積結(jié)構(gòu)的限制。所以為了提升性能,我們提出了一種名為CoordConv的解決方案,在多個(gè)領(lǐng)域進(jìn)行了成果展示。
發(fā)現(xiàn)一:CNN很難做到監(jiān)督式渲染
我們先從一個(gè)簡(jiǎn)單的監(jiān)督式渲染開(kāi)始,假設(shè)我們向一個(gè)網(wǎng)絡(luò)中輸入(i, j)坐標(biāo),要求它輸出一個(gè)64×64的圖像,并在坐標(biāo)處畫(huà)一個(gè)正方形,如圖1a所示。你會(huì)用哪種網(wǎng)絡(luò)進(jìn)行這一問(wèn)題呢?
我們可以借鑒很多用于圖片生成的方法,用反卷積層畫(huà)正方形。為了測(cè)試這種方法,我們創(chuàng)建了一個(gè)數(shù)據(jù)集,其中在64×64的畫(huà)布上隨機(jī)放置了一些9×9的方塊,如圖1b所示。將數(shù)據(jù)集中方塊所有可能的位置列出后,總共有3136個(gè)樣本。為了評(píng)估模型生成的表現(xiàn),我們將樣本分為兩組訓(xùn)練/測(cè)試數(shù)據(jù)集:一組是將數(shù)據(jù)集中80%坐標(biāo)用于訓(xùn)練,20%用于測(cè)試。另一組中將畫(huà)布從中分為四個(gè)象限,坐標(biāo)位于前三個(gè)象限的用于訓(xùn)練,第四象限的坐標(biāo)用于測(cè)試。兩組數(shù)據(jù)的分布如1c所示。
圖1
我們?cè)O(shè)想CNN能完成這個(gè)任務(wù),因?yàn)樗芎?jiǎn)單(整個(gè)數(shù)據(jù)集可能用兩行Python就能表示出來(lái)了),并且數(shù)據(jù)集很小,我們能輕易地用模型進(jìn)行參數(shù)設(shè)定。但結(jié)果恰恰相反,CNN表現(xiàn)得極差。即使有1M的參數(shù)、訓(xùn)練了90分鐘(圖2b),模型在第一個(gè)數(shù)據(jù)集上也沒(méi)達(dá)到0.83的IOU分?jǐn)?shù),在第二個(gè)數(shù)據(jù)集上甚至都沒(méi)超過(guò)0.36(圖2a)。

圖2
簡(jiǎn)化任務(wù)以及發(fā)現(xiàn)二:監(jiān)督式坐標(biāo)分類(lèi)對(duì)CNN也很困難
所以為什么監(jiān)督式渲染對(duì)CNN這么難?我們需要深入挖掘一下原因。的確,如果在直接的監(jiān)督條件下渲染訓(xùn)練都這么困難,在無(wú)監(jiān)督下會(huì)更有挑戰(zhàn)性。
我們先看一下是什么讓這個(gè)問(wèn)題變得困難。現(xiàn)在我們讓網(wǎng)絡(luò)簡(jiǎn)單地繪制一個(gè)像素,而不是9×9的方塊。可以想象,如果這個(gè)任務(wù)能解決,那么之后的反卷積網(wǎng)絡(luò)就可以輕易地將單一像素?cái)U(kuò)展成更大的方塊。于是我們開(kāi)始了監(jiān)督式坐標(biāo)分類(lèi)任務(wù)(如圖3a)其中的數(shù)據(jù)集包括成對(duì)的(i, j)坐標(biāo),并且有單一對(duì)應(yīng)像素的圖像,如圖3b:

圖3
之后我們又嘗試了擁有不同參數(shù)的網(wǎng)絡(luò),發(fā)現(xiàn)及時(shí)有些網(wǎng)絡(luò)能記住訓(xùn)練集,但沒(méi)有一個(gè)的測(cè)試準(zhǔn)確率超過(guò)86%(如圖4a)。并且訓(xùn)練時(shí)間都超過(guò)了一小時(shí)。

圖4 兩數(shù)據(jù)集上的訓(xùn)練和測(cè)試結(jié)果
我們期望卷積網(wǎng)絡(luò)能表現(xiàn)的很好,但是很遺憾它并沒(méi)有。為了弄清楚原因,我們選擇了表現(xiàn)最好的網(wǎng)絡(luò),來(lái)驗(yàn)證結(jié)果。
我們讓網(wǎng)絡(luò)畫(huà)一張圖,上面僅有一個(gè)像素(即在one-hot表示中的值為1)。為了看看發(fā)生了什么,我們放大了該區(qū)域。在圖5中,目標(biāo)像素用紅色圈出,我們展示出了模型的softmax預(yù)測(cè)和logits圖。第一個(gè)像素(第一行)是訓(xùn)練集中的數(shù)據(jù),所以模型做對(duì)了,雖然模型在其周?chē)沧隽艘恍╊A(yù)測(cè)。第二個(gè)像素(第二行)來(lái)自測(cè)試集,模型險(xiǎn)些沒(méi)有猜對(duì),可以看到左上像素的概率也挺大的。最后一個(gè)像素(第三行)顯示模型完全預(yù)測(cè)錯(cuò)誤。
圖5
反方向和第三個(gè)發(fā)現(xiàn):監(jiān)督式回歸對(duì)CNN同樣很難
所以為什么網(wǎng)絡(luò)很難定位一個(gè)像素呢?是因?yàn)閺男】臻g到大空間的轉(zhuǎn)換很困難嗎?如果朝一個(gè)方向會(huì)不會(huì)容易點(diǎn)呢?如果我們訓(xùn)練卷積網(wǎng)絡(luò)將圖像信息轉(zhuǎn)換成標(biāo)量坐標(biāo),是否與普通圖像分類(lèi)更相似呢?
結(jié)果模型在這種監(jiān)督式回歸的任務(wù)上同樣表現(xiàn)得不好。在圖10中,左邊圖中的點(diǎn)表示正確的像素坐標(biāo),中間圖中的點(diǎn)表示模型的預(yù)測(cè)。模型在測(cè)試集上表現(xiàn)得不好,并且在訓(xùn)練集上也差強(qiáng)人意。
簡(jiǎn)單地說(shuō),方向根本不重要。
所以,這一看似簡(jiǎn)單的坐標(biāo)轉(zhuǎn)換任務(wù)在卷積網(wǎng)絡(luò)身上主要有兩個(gè)問(wèn)題:從笛卡爾空間轉(zhuǎn)換到one-hot像素空間及其他方式上。即使用監(jiān)督式方法進(jìn)行訓(xùn)練,即使只有一個(gè)像素,即使所有的訓(xùn)練案例很容易獲得,卷積仍然學(xué)不會(huì)順利轉(zhuǎn)換。另外,表現(xiàn)最好的卷機(jī)模型體積巨大,訓(xùn)練耗時(shí)很長(zhǎng)。
解決辦法:CoordConv
我們提出了解決這一難題的方法。
卷積是等變的,也就是說(shuō)當(dāng)每個(gè)過(guò)濾器應(yīng)用到輸入上時(shí),它不知道每個(gè)過(guò)濾器在哪。我們可以幫助卷積,讓它知道過(guò)濾器的位置。這一過(guò)程需要在輸入上添加兩個(gè)通道實(shí)現(xiàn),一個(gè)在i坐標(biāo),另一個(gè)在j坐標(biāo)。我們將這個(gè)圖層成為CoordConv,如圖6所示:

圖6
我們提出的CoordConv圖層是標(biāo)準(zhǔn)卷積層的簡(jiǎn)單擴(kuò)展,其中卷積和坐標(biāo)相對(duì)應(yīng)。讓卷積過(guò)濾器看到坐標(biāo)其實(shí)違背了等變性原則,看起來(lái)不是個(gè)好方法,但是,等變性原則對(duì)卷積有好處嗎?
我們認(rèn)為,卷積獲得成功的原因主要依靠三個(gè)元素:運(yùn)用相對(duì)較少的學(xué)習(xí)參數(shù)、在GPU上計(jì)算速度很快、它學(xué)習(xí)的函數(shù)時(shí)符合平移等變性的。
CoordConv保留了前兩種特點(diǎn)——較少的參數(shù)和高效的計(jì)算。如果坐標(biāo)的權(quán)重變?yōu)榱悖珻oordConv就和普通卷積沒(méi)什么區(qū)別。另一方面,如果平移依賴(lài)對(duì)下游任務(wù)有用的話(huà),它也同樣可以學(xué)習(xí)。
CoordConv與目前很多理念相關(guān),例如局部連接層、復(fù)合模式生成網(wǎng)絡(luò)(CPPN)以及語(yǔ)言建模中用到的位置嵌入。
用CoordConv解決此前的監(jiān)督問(wèn)題
首先,讓我們回顧下剛剛提到的任務(wù),并看一下CoordConv如何解決。
如圖7和圖8所示,CoordConv模型在監(jiān)督式坐標(biāo)分類(lèi)和監(jiān)督式渲染任務(wù)上都達(dá)到了最佳訓(xùn)練和測(cè)試性能。另外,CoordConv的參數(shù)比之前少10—100倍,訓(xùn)練時(shí)間幾秒就完成,比之前快了150倍。

圖7

圖8
為了進(jìn)一步驗(yàn)證,下圖9展示了普通反卷積和CoordConv的對(duì)比:
圖9
當(dāng)用卷積繪制像素時(shí),我們發(fā)現(xiàn)了明顯的殘影和過(guò)擬合現(xiàn)象。CoordConv在訓(xùn)練集和測(cè)試集上都表現(xiàn)的很好。同樣,在反方向的情況上也是如此。盡管卷積很難對(duì)坐標(biāo)進(jìn)行回歸,CoordConv能表現(xiàn)的很好:
圖10
CoordConv應(yīng)用廣泛
以下是我們總結(jié)的CoordConv的應(yīng)用場(chǎng)景:
目標(biāo)檢測(cè)
目標(biāo)檢測(cè)模型也是在像素塊空間中尋找,輸出的是笛卡爾空間中的邊界框,所以看起來(lái)CoordConv很適合。我們還發(fā)現(xiàn),在簡(jiǎn)單的MNIST數(shù)據(jù)集檢測(cè)上,F(xiàn)aster-RCNN網(wǎng)絡(luò)的IOU分?jǐn)?shù)提高了約24%。
圖像分類(lèi)
在所有視覺(jué)任務(wù)中,我們很期待CoordConv對(duì)分類(lèi)任務(wù)的提高,因?yàn)榉诸?lèi)更關(guān)乎的是“這物體是什么”而不是“它在哪”。實(shí)際上,當(dāng)我們將CoordConv圖層添加到ResNet-50的底部,并在ImageNet上訓(xùn)練后,卻只有很少的進(jìn)步。
生成模型
在類(lèi)似GAN和VAE這樣的生成模型中,像素是在隱藏空間中的,對(duì)于高層次概念的編碼是很理想的位置。也許CoordConv能對(duì)此有所幫助。利用基于Sort-of-CLEVR的簡(jiǎn)單數(shù)據(jù)集,我們訓(xùn)練了GAN和VAE,并展示了隱藏空間之間的插值。
這次的任務(wù)是生成帶有顏色的形狀。圖11左邊是普通的GAN,右邊是CoordConv GAN。我們?cè)陔[藏空間中對(duì)點(diǎn)之間進(jìn)行插值,研究CoordConv的影響,這也是評(píng)估生成模型性能的常用方法之一。
圖11
對(duì)于普通GAN來(lái)說(shuō),動(dòng)畫(huà)一開(kāi)始看起來(lái)很好。但是當(dāng)我們近距離觀(guān)察后發(fā)現(xiàn),并不是所有像素都在移動(dòng)。一些小的殘影會(huì)靜止不動(dòng),有些點(diǎn)會(huì)時(shí)不時(shí)的消失再出現(xiàn)。當(dāng)我們加入CoordConv后,動(dòng)作變得流暢了許多。
在訓(xùn)練VAE時(shí)我們也發(fā)現(xiàn)了相似的情況。在有卷積的情況下,我們觀(guān)察到圖中一部分物體會(huì)逐漸消失,但后來(lái)加入CoordConv就不會(huì)有這種情況。
當(dāng)用GAN繪制更大的場(chǎng)景時(shí),普通的GAN仍會(huì)出現(xiàn)靜止不動(dòng)的物體時(shí)不時(shí)消失,而CoordConv對(duì)于變換就很流暢。
強(qiáng)化學(xué)習(xí)
強(qiáng)化學(xué)習(xí)也是CoordConv想提供幫助的一個(gè)領(lǐng)域,我們訓(xùn)練智能體玩吃豆人,我們認(rèn)為如果卷積過(guò)濾器能立刻認(rèn)出其他豆人并且鎖定其在迷宮中的位置,那么這對(duì)學(xué)習(xí)更好的策略是很有幫助的。
我們?cè)囍鴮oordConv加入到Distributed Prioritized Experience Replay(Ape-X)中,但是CoordConv并沒(méi)有立即提升其性能。我們又試了A2C,這是一種常用的策略梯度方法,CoordConv起了作用。經(jīng)過(guò)訓(xùn)練,如我們所想,吃豆人的分?jǐn)?shù)有所提高,也證明CoordConv可以幫助強(qiáng)化學(xué)習(xí)。

下一步
在這篇文章中,我們研究了CNN在轉(zhuǎn)換坐標(biāo)時(shí)的不佳性能,所以對(duì)此提出了CoordConv這一解決方法。這一結(jié)果還可以用到其他類(lèi)別廣泛的應(yīng)用中,未來(lái)我們會(huì)進(jìn)一步評(píng)估CoordConv在大型數(shù)據(jù)集上的作用,研究它對(duì)檢測(cè)、語(yǔ)言任務(wù)、視頻預(yù)測(cè)等具有空間轉(zhuǎn)換網(wǎng)絡(luò)的應(yīng)用的影響。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4839瀏覽量
107932 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
794文章
14914瀏覽量
180282 -
強(qiáng)化學(xué)習(xí)
+關(guān)注
關(guān)注
4文章
272瀏覽量
11975
原文標(biāo)題:Uber提出CoordConv:解決了普通CNN的坐標(biāo)變換問(wèn)題
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Adyen與Uber拓展全球合作,并推出Uber自助服務(wù)機(jī)
高性能網(wǎng)絡(luò)存儲(chǔ)設(shè)計(jì):NVMe-oF IP的實(shí)現(xiàn)探討
自動(dòng)駕駛中常提的卷積神經(jīng)網(wǎng)絡(luò)是個(gè)啥?
NVIDIA與Uber合作推進(jìn)全球L4級(jí)自動(dòng)駕駛移動(dòng)出行網(wǎng)絡(luò)
CNN卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)原理及在MCU200T上仿真測(cè)試
神經(jīng)網(wǎng)絡(luò)加速器的雙線(xiàn)性插值上采樣
構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議
卷積運(yùn)算分析
三坐標(biāo)如何實(shí)現(xiàn)測(cè)量效率的提升?
Uber提出卷積網(wǎng)絡(luò)在坐標(biāo)變換上的缺陷限制了它的性能提升
評(píng)論