編者按:卷積神經(jīng)網(wǎng)絡(luò)如今的應(yīng)用已十分廣泛,但是uber的工程師們最近表示,卷積網(wǎng)絡(luò)在坐標(biāo)變換上的缺陷限制了它的性能提升,而uber開發(fā)的CoordConv結(jié)構(gòu)正好可以解決這一問題。以下是論智帶來的編譯:
Uber在很多設(shè)計坐標(biāo)變換的領(lǐng)域都使用了卷積神經(jīng)網(wǎng)絡(luò),從設(shè)計自動駕駛工具到自動信號燈監(jiān)測和建造地圖等等,這些工具都大大提升了空間移動效率。
在深度學(xué)習(xí)中,很少能有像卷積影響深遠(yuǎn)的成果。幾乎機器視覺中所有先進成果都用了堆疊的卷積層作為基本搭建模塊。由于這種結(jié)構(gòu)的廣泛應(yīng)用,我們期待它們能應(yīng)用于一些簡單任務(wù),例如在小尺寸圖畫上繪畫單一像素。
但令人驚訝的是,卷積結(jié)構(gòu)似乎很難處理看上去很平?,嵥榈娜蝿?wù)。在我們的論文——An Intriguing Failing of Convolutional Neural Networks and the CoordConv Solution中,我們研究并分析了卷積神經(jīng)網(wǎng)絡(luò)的一種常見缺陷,即它無法將空間表示轉(zhuǎn)換成笛卡爾空間中的坐標(biāo)和one-hot像素空間中的坐標(biāo)。這很意外,因為這些任務(wù)似乎很簡單,并且此類坐標(biāo)的轉(zhuǎn)換也是解決常見問題的必備方法,例如圖像中的物體檢測、訓(xùn)練生成模型、訓(xùn)練強化學(xué)習(xí)智能體等等,所以也很重要。經(jīng)過研究我們發(fā)現(xiàn),這些任務(wù)已經(jīng)多多少少受到卷積結(jié)構(gòu)的限制。所以為了提升性能,我們提出了一種名為CoordConv的解決方案,在多個領(lǐng)域進行了成果展示。
發(fā)現(xiàn)一:CNN很難做到監(jiān)督式渲染
我們先從一個簡單的監(jiān)督式渲染開始,假設(shè)我們向一個網(wǎng)絡(luò)中輸入(i, j)坐標(biāo),要求它輸出一個64×64的圖像,并在坐標(biāo)處畫一個正方形,如圖1a所示。你會用哪種網(wǎng)絡(luò)進行這一問題呢?
我們可以借鑒很多用于圖片生成的方法,用反卷積層畫正方形。為了測試這種方法,我們創(chuàng)建了一個數(shù)據(jù)集,其中在64×64的畫布上隨機放置了一些9×9的方塊,如圖1b所示。將數(shù)據(jù)集中方塊所有可能的位置列出后,總共有3136個樣本。為了評估模型生成的表現(xiàn),我們將樣本分為兩組訓(xùn)練/測試數(shù)據(jù)集:一組是將數(shù)據(jù)集中80%坐標(biāo)用于訓(xùn)練,20%用于測試。另一組中將畫布從中分為四個象限,坐標(biāo)位于前三個象限的用于訓(xùn)練,第四象限的坐標(biāo)用于測試。兩組數(shù)據(jù)的分布如1c所示。
圖1
我們設(shè)想CNN能完成這個任務(wù),因為它很簡單(整個數(shù)據(jù)集可能用兩行Python就能表示出來了),并且數(shù)據(jù)集很小,我們能輕易地用模型進行參數(shù)設(shè)定。但結(jié)果恰恰相反,CNN表現(xiàn)得極差。即使有1M的參數(shù)、訓(xùn)練了90分鐘(圖2b),模型在第一個數(shù)據(jù)集上也沒達(dá)到0.83的IOU分?jǐn)?shù),在第二個數(shù)據(jù)集上甚至都沒超過0.36(圖2a)。
圖2
簡化任務(wù)以及發(fā)現(xiàn)二:監(jiān)督式坐標(biāo)分類對CNN也很困難
所以為什么監(jiān)督式渲染對CNN這么難?我們需要深入挖掘一下原因。的確,如果在直接的監(jiān)督條件下渲染訓(xùn)練都這么困難,在無監(jiān)督下會更有挑戰(zhàn)性。
我們先看一下是什么讓這個問題變得困難?,F(xiàn)在我們讓網(wǎng)絡(luò)簡單地繪制一個像素,而不是9×9的方塊??梢韵胂?,如果這個任務(wù)能解決,那么之后的反卷積網(wǎng)絡(luò)就可以輕易地將單一像素擴展成更大的方塊。于是我們開始了監(jiān)督式坐標(biāo)分類任務(wù)(如圖3a)其中的數(shù)據(jù)集包括成對的(i, j)坐標(biāo),并且有單一對應(yīng)像素的圖像,如圖3b:
圖3
之后我們又嘗試了擁有不同參數(shù)的網(wǎng)絡(luò),發(fā)現(xiàn)及時有些網(wǎng)絡(luò)能記住訓(xùn)練集,但沒有一個的測試準(zhǔn)確率超過86%(如圖4a)。并且訓(xùn)練時間都超過了一小時。
圖4 兩數(shù)據(jù)集上的訓(xùn)練和測試結(jié)果
我們期望卷積網(wǎng)絡(luò)能表現(xiàn)的很好,但是很遺憾它并沒有。為了弄清楚原因,我們選擇了表現(xiàn)最好的網(wǎng)絡(luò),來驗證結(jié)果。
我們讓網(wǎng)絡(luò)畫一張圖,上面僅有一個像素(即在one-hot表示中的值為1)。為了看看發(fā)生了什么,我們放大了該區(qū)域。在圖5中,目標(biāo)像素用紅色圈出,我們展示出了模型的softmax預(yù)測和logits圖。第一個像素(第一行)是訓(xùn)練集中的數(shù)據(jù),所以模型做對了,雖然模型在其周圍也做了一些預(yù)測。第二個像素(第二行)來自測試集,模型險些沒有猜對,可以看到左上像素的概率也挺大的。最后一個像素(第三行)顯示模型完全預(yù)測錯誤。
圖5
反方向和第三個發(fā)現(xiàn):監(jiān)督式回歸對CNN同樣很難
所以為什么網(wǎng)絡(luò)很難定位一個像素呢?是因為從小空間到大空間的轉(zhuǎn)換很困難嗎?如果朝一個方向會不會容易點呢?如果我們訓(xùn)練卷積網(wǎng)絡(luò)將圖像信息轉(zhuǎn)換成標(biāo)量坐標(biāo),是否與普通圖像分類更相似呢?
結(jié)果模型在這種監(jiān)督式回歸的任務(wù)上同樣表現(xiàn)得不好。在圖10中,左邊圖中的點表示正確的像素坐標(biāo),中間圖中的點表示模型的預(yù)測。模型在測試集上表現(xiàn)得不好,并且在訓(xùn)練集上也差強人意。
簡單地說,方向根本不重要。
所以,這一看似簡單的坐標(biāo)轉(zhuǎn)換任務(wù)在卷積網(wǎng)絡(luò)身上主要有兩個問題:從笛卡爾空間轉(zhuǎn)換到one-hot像素空間及其他方式上。即使用監(jiān)督式方法進行訓(xùn)練,即使只有一個像素,即使所有的訓(xùn)練案例很容易獲得,卷積仍然學(xué)不會順利轉(zhuǎn)換。另外,表現(xiàn)最好的卷機模型體積巨大,訓(xùn)練耗時很長。
解決辦法:CoordConv
我們提出了解決這一難題的方法。
卷積是等變的,也就是說當(dāng)每個過濾器應(yīng)用到輸入上時,它不知道每個過濾器在哪。我們可以幫助卷積,讓它知道過濾器的位置。這一過程需要在輸入上添加兩個通道實現(xiàn),一個在i坐標(biāo),另一個在j坐標(biāo)。我們將這個圖層成為CoordConv,如圖6所示:
圖6
我們提出的CoordConv圖層是標(biāo)準(zhǔn)卷積層的簡單擴展,其中卷積和坐標(biāo)相對應(yīng)。讓卷積過濾器看到坐標(biāo)其實違背了等變性原則,看起來不是個好方法,但是,等變性原則對卷積有好處嗎?
我們認(rèn)為,卷積獲得成功的原因主要依靠三個元素:運用相對較少的學(xué)習(xí)參數(shù)、在GPU上計算速度很快、它學(xué)習(xí)的函數(shù)時符合平移等變性的。
CoordConv保留了前兩種特點——較少的參數(shù)和高效的計算。如果坐標(biāo)的權(quán)重變?yōu)榱?,CoordConv就和普通卷積沒什么區(qū)別。另一方面,如果平移依賴對下游任務(wù)有用的話,它也同樣可以學(xué)習(xí)。
CoordConv與目前很多理念相關(guān),例如局部連接層、復(fù)合模式生成網(wǎng)絡(luò)(CPPN)以及語言建模中用到的位置嵌入。
用CoordConv解決此前的監(jiān)督問題
首先,讓我們回顧下剛剛提到的任務(wù),并看一下CoordConv如何解決。
如圖7和圖8所示,CoordConv模型在監(jiān)督式坐標(biāo)分類和監(jiān)督式渲染任務(wù)上都達(dá)到了最佳訓(xùn)練和測試性能。另外,CoordConv的參數(shù)比之前少10—100倍,訓(xùn)練時間幾秒就完成,比之前快了150倍。
圖7
圖8
為了進一步驗證,下圖9展示了普通反卷積和CoordConv的對比:
圖9
當(dāng)用卷積繪制像素時,我們發(fā)現(xiàn)了明顯的殘影和過擬合現(xiàn)象。CoordConv在訓(xùn)練集和測試集上都表現(xiàn)的很好。同樣,在反方向的情況上也是如此。盡管卷積很難對坐標(biāo)進行回歸,CoordConv能表現(xiàn)的很好:
圖10
CoordConv應(yīng)用廣泛
以下是我們總結(jié)的CoordConv的應(yīng)用場景:
目標(biāo)檢測
目標(biāo)檢測模型也是在像素塊空間中尋找,輸出的是笛卡爾空間中的邊界框,所以看起來CoordConv很適合。我們還發(fā)現(xiàn),在簡單的MNIST數(shù)據(jù)集檢測上,F(xiàn)aster-RCNN網(wǎng)絡(luò)的IOU分?jǐn)?shù)提高了約24%。
圖像分類
在所有視覺任務(wù)中,我們很期待CoordConv對分類任務(wù)的提高,因為分類更關(guān)乎的是“這物體是什么”而不是“它在哪”。實際上,當(dāng)我們將CoordConv圖層添加到ResNet-50的底部,并在ImageNet上訓(xùn)練后,卻只有很少的進步。
生成模型
在類似GAN和VAE這樣的生成模型中,像素是在隱藏空間中的,對于高層次概念的編碼是很理想的位置。也許CoordConv能對此有所幫助。利用基于Sort-of-CLEVR的簡單數(shù)據(jù)集,我們訓(xùn)練了GAN和VAE,并展示了隱藏空間之間的插值。
這次的任務(wù)是生成帶有顏色的形狀。圖11左邊是普通的GAN,右邊是CoordConv GAN。我們在隱藏空間中對點之間進行插值,研究CoordConv的影響,這也是評估生成模型性能的常用方法之一。
圖11
對于普通GAN來說,動畫一開始看起來很好。但是當(dāng)我們近距離觀察后發(fā)現(xiàn),并不是所有像素都在移動。一些小的殘影會靜止不動,有些點會時不時的消失再出現(xiàn)。當(dāng)我們加入CoordConv后,動作變得流暢了許多。
在訓(xùn)練VAE時我們也發(fā)現(xiàn)了相似的情況。在有卷積的情況下,我們觀察到圖中一部分物體會逐漸消失,但后來加入CoordConv就不會有這種情況。
當(dāng)用GAN繪制更大的場景時,普通的GAN仍會出現(xiàn)靜止不動的物體時不時消失,而CoordConv對于變換就很流暢。
強化學(xué)習(xí)
強化學(xué)習(xí)也是CoordConv想提供幫助的一個領(lǐng)域,我們訓(xùn)練智能體玩吃豆人,我們認(rèn)為如果卷積過濾器能立刻認(rèn)出其他豆人并且鎖定其在迷宮中的位置,那么這對學(xué)習(xí)更好的策略是很有幫助的。
我們試著將CoordConv加入到Distributed Prioritized Experience Replay(Ape-X)中,但是CoordConv并沒有立即提升其性能。我們又試了A2C,這是一種常用的策略梯度方法,CoordConv起了作用。經(jīng)過訓(xùn)練,如我們所想,吃豆人的分?jǐn)?shù)有所提高,也證明CoordConv可以幫助強化學(xué)習(xí)。
下一步
在這篇文章中,我們研究了CNN在轉(zhuǎn)換坐標(biāo)時的不佳性能,所以對此提出了CoordConv這一解決方法。這一結(jié)果還可以用到其他類別廣泛的應(yīng)用中,未來我們會進一步評估CoordConv在大型數(shù)據(jù)集上的作用,研究它對檢測、語言任務(wù)、視頻預(yù)測等具有空間轉(zhuǎn)換網(wǎng)絡(luò)的應(yīng)用的影響。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103581 -
自動駕駛
+關(guān)注
關(guān)注
789文章
14316瀏覽量
170598 -
強化學(xué)習(xí)
+關(guān)注
關(guān)注
4文章
269瀏覽量
11598
原文標(biāo)題:Uber提出CoordConv:解決了普通CNN的坐標(biāo)變換問題
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
電機矢量控制中坐標(biāo)變換的詳細(xì)推導(dǎo)(可下載)
5G網(wǎng)絡(luò)中,信令測試儀如何幫助提升用戶體驗?
如何使用MATLAB實現(xiàn)一維時間卷積網(wǎng)絡(luò)

BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的比較
FDD網(wǎng)絡(luò)性能提升的方法
AI模型部署邊緣設(shè)備的奇妙之旅:目標(biāo)檢測模型
卷積神經(jīng)網(wǎng)絡(luò)的實現(xiàn)工具與框架
卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)調(diào)整方法
卷積神經(jīng)網(wǎng)絡(luò)在自然語言處理中的應(yīng)用
深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)模型
卷積神經(jīng)網(wǎng)絡(luò)的基本原理與算法
傅里葉變換與卷積定理的關(guān)系
關(guān)于卷積神經(jīng)網(wǎng)絡(luò),這些概念你厘清了么~
路由偏好,提升網(wǎng)絡(luò)性能新路徑

評論