Uber提出CoordConv:解決普通CNN坐標變換問題

Uber提出CoordConv:解決普通CNN坐標變換問題

來自專欄論智12 人贊了文章

論文:[1807.03247] An Intriguing Failing of Convolutional Neural Networks and the CoordConv Solution

編譯:Bing

編者按:卷積神經網路如今的應用已十分廣泛,但是uber的工程師們最近表示,卷積網路在坐標變換上的缺陷限制了它的性能提升,而uber開發的CoordConv結構正好可以解決這一問題。

Uber在很多設計坐標變換的領域都使用了卷積神經網路,從設計自動駕駛工具到自動信號燈監測和建造地圖等等,浙西工具都大大提升了空間移動效率。

在深度學習中,很少能有像卷積影響深遠的成果。幾乎機器視覺中所有先進成果都用了堆疊的卷積層作為基本搭建模塊。由於這種結構的廣泛應用,我們期待它們能應用於一些簡單任務,例如在小尺寸圖畫上繪畫單一像素。

但令人驚訝的是,卷積結構似乎很難處理看上去很平常瑣碎的任務。在我們的論文——An Intriguing Failing of Convolutional Neural Networks and the CoordConv Solution中,我們研究並分析了卷積神經網路的一種常見缺陷,即它無法將空間表示轉換成笛卡爾空間中的坐標和one-hot像素空間中的坐標。這很意外,因為這些任務似乎很簡單,並且此類坐標的轉換也是解決常見問題的必備方法,例如圖像中的物體檢測、訓練生成模型、訓練強化學習智能體等等,所以也很重要。經過研究我們發現,這些任務已經多多少少受到卷積結構的限制。所以為了提升性能,我們提出了一種名為CoordConv的解決方案,在多個領域進行了成果展示。

發現一:CNN很難做到監督式渲染(rendering)

我們先從一個簡單的監督式渲染開始,假設我們向一個網路中輸入(i, j)坐標,要求它輸出一個64×64的圖像,並在坐標處畫一個正方形,如圖1a所示。你會用哪種網路進行這一問題呢?

我們可以借鑒很多用於圖片生成的方法,用反卷積層畫正方形。為了測試這種方法,我們創建了一個數據集,其中在64×64的畫布上隨機放置了一些9×9的方塊,如圖1b所示。將數據集中方塊所有可能的位置列出後,總共有3136個樣本。為了評估模型生成的表現,我們將樣本分為兩組訓練/測試數據集:一組是將數據集中80%坐標用於訓練,20%用於測試。另一組中將畫布從中分為四個象限,坐標位於前三個象限的用於訓練,第四象限的坐標用於測試。兩組數據的分布如1c所示。

圖1

我們設想CNN能完成這個任務,因為它很簡單(整個數據集可能用兩行Python就能表示出來了),並且數據集很小,我們能輕易地用模型進行參數設定。但結果恰恰相反,CNN表現得極差。即使有1M的參數、訓練了90分鐘(圖2b),模型在第一個數據集上也沒達到0.83的IOU分數,在第二個數據集上設置都沒超過0.36(圖2a)。

簡化任務以及發現二:監督式坐標分類對CNN也很困難

所以為什麼監督式渲染對CNN這麼難?我們需要深入挖掘一下原因。的確,如果在直接的監督條件下渲染訓練都這麼困難,在無監督下會更有挑戰性。

我們先看一下是什麼讓這個問題變得困難。現在我們讓網路簡單地繪製一個像素,而不是9×9的方塊。可以想像,如果這個任務能解決,那麼之後的反卷積網路就可以輕易地將單一像素擴展成更大的方塊。於是我們開始了監督式坐標分類任務(如圖3a)其中的數據集包括成對的(i, j)坐標,並且有單一對應像素的圖像,如圖3b:

之後我們又嘗試了擁有不同參數的網路,發現及時有些網路能記住訓練集,但沒有一個的測試準確率超過86%(如圖4a)。並且訓練時間都超過了一小時。

數據集上的訓練和測試結果

我們期望卷積網路能表現的很好,但是很遺憾它並沒有。為了弄清楚原因,我們選擇了表現最好的網路,來驗證結果。

我們讓網路畫一張圖,上面僅有一個像素(即在one-hot表示中的值為1)。為了看看發生了什麼,我們放大了該區域。在圖5中,目標像素用紅色圈出,我們展示出了模型的softmax預測和logits圖。第一個像素(第一行)是訓練集中的數據,所以模型做對了,雖然模型在其周圍也做了一些預測。第二個像素(第二行)來自測試集,模型險些沒有猜對,可以看到左上像素的概率也挺大的。最後一個像素(第三行)顯示模型完全預測錯誤。

反方向和第三個發現:監督式回歸對CNN同樣很難

所以為什麼網路很難定位一個像素呢?是因為從小空間到大空間的轉換很困難嗎?如果朝一個方向會不會容易點呢?如果我們訓練卷積網路將圖像信息轉換成標量坐標,是否與普通圖像分類更相似呢?

結果模型在這種監督式回歸的任務上同樣表現得不好。在圖10中,左邊圖中的點表示正確的像素坐標,中間圖中的點表示模型的預測。模型在測試集上表現得不好,並且在訓練集上也差強人意。

簡單地說,方向根本不重要。

所以,這一看似簡單的坐標轉換任務在卷積網路身上主要有兩個問題:從笛卡爾空間轉換到one-hot像素空間及其他方式上。即使用監督式方法進行訓練,即使只有一個像素,即使所有的訓練案例很容易獲得,卷積仍然學不會順利轉換。另外,表現最好的卷機模型體積巨大,訓練耗時很長。

解決辦法:CoordConv

我們提出了解決這一難題的方法。

卷積是等變的,也就是說當每個過濾器應用到輸入上時,它不知道每個過濾器在哪。我們可以幫助卷積,讓它知道過濾器的位置。這一過程需要在輸入上添加兩個通道實現,一個在i坐標,另一個在j坐標。我們將這個圖層成為CoordConv,如圖6所示:

圖6

我們提出的CoordConv圖層是標準卷積層的簡單擴展,其中卷積和坐標相對應。讓卷積過濾器看到坐標其實違背了等變性原則,看起來不是個好方法,但是,等變性原則對卷積有好處嗎?

我們認為,卷積獲得成功的原因主要依靠三個元素:他運用相對較少的學習參數、在GPU上計算速度很快、他學習的函數時符合平移等變性的。

CoordConv保留了前兩種特點——較少的參數和高效的計算。如果坐標的權重變為零,CoordConv就和普通卷積沒什麼區別。另一方面,如果平移依賴對下游任務有用的話,它也同樣可以學習。

CoordConv與目前很多理念相關,例如局部連接層、複合模式生成網路(CPPN)以及語言建模中用到的位置嵌入。

用CoordConv解決此前的監督問題

首先,讓我們回顧下剛剛提到的任務,並看一下CoordConv如何解決。

如圖7和圖8所示,CoordConv模型在監督式坐標分類和監督式渲染任務上都達到了最佳訓練和測試性能。另外,CoordConv的參數比之前少10—100倍,訓練時間幾秒就完成,比之前快了150倍。

圖7

圖8

為了進一步驗證,下圖9展示了普通反卷積和CoordConv的對比:

圖9

當用卷積繪製像素時,我們發現了明顯的人工痕迹和過擬合現象。CoordConv在訓練集和測試集上都表現的很好。同樣,在反方向的情況上也是如此。儘管卷積很難對坐標進行回歸,CoordConv能表現的很好:

圖10

CoordConv應用廣泛

以下是我們總結的CoordConv的應用場景:

目標檢測

目標檢測模型也是在像素塊空間中尋找,輸出的是笛卡爾空間中的邊界框,所以看起來CoordConv很適合。我們還發現,在簡單的MNIST數據集檢測上,Faster-RCNN網路的IOU分數提高了約24%。

圖像分類

在所有視覺任務中,我們很期待CoordConv對分類任務的提高,因為分類更關乎的是「這物體是什麼」而不是「它在哪」。實際上,當我們將CoordConv圖層添加到ResNet-50的底部,並在ImageNet上訓練後,卻只有很少的進步。

生成模型

在類似GAN和VAE這樣的生成模型中,像素是在隱藏空間中的,對於高層次概念的編碼是很理想的位置。也許CoordConv能對此有所幫助。利用基於Sort-of-CLEVR的簡單數據集,我們訓練了GAN和VAE,並展示了隱藏空間之間的插值。

這次的任務是生成帶有顏色的形狀。圖11左邊是普通的GAN,右邊是CoordConv GAN。我們在隱藏空間中對點之間進行插值,研究CoordConv的影響,這也是評估生成模型性能的常用方法之一。

對於普通GAN來說,動畫一開始看起來很好。但是當我們近距離觀察後發現,並不是所有像素都在移動。一些小的殘影會靜止不動,有些點會時不時的消失再出現。當我們加入CoordConv後,動作變得流暢了許多。

在訓練VAE時我們也發現了相似的情況。在有卷積的情況下,我們觀察到圖中一部分物體會逐漸消失,但後來加入CoordConv就不會有這種情況。

當用GAN繪製更大的場景時,普通的GAN仍會出現靜止不動的物體時不時消失,而CoordConv對於變換就很流暢。

強化學習

強化學習也是CoordConv想提供幫助的一個領域,我們訓練智能體玩吃豆人,我們認為如果卷積過濾器能立刻認出其他豆人並且鎖定其在迷宮中的位置,那麼這對學習更好的策略是很有幫助的。

我們試著將CoordConv加入到Distributed Prioritized Experience Replay(Ape-X)中,但是CoordConv並沒有立即提升其性能。我們又試了A2C,這是一種常用的策略梯度方法,CoordConv起了作用。經過訓練,如我們所想,吃豆人的分數有所提高,也證明CoordConv可以幫助強化學習。

下一步

在這篇文章中,我們研究了CNN在轉換坐標時的不佳性能,所以對此提出了CoordConv這一解決方法。這一結果還可以用到其他類別廣泛的應用中,未來我們會進一步評估CoordConv在大型數據集上的作用,研究它對檢測、語言任務、視頻預測等具有空間轉換網路的應用的影響。


推薦閱讀:

從DensNet到CliqueNet,解讀北大在卷積架構上的探索
【論文筆記】CVPR 2017 ORAL --MDNET
Low-Latency Video Semantic Segmentation
使用三維信息優化搜索結果的嘗試
Rethinking ICCV 2017 [Part 1]

TAG:卷積神經網路CNN | 機器學習 | 計算機視覺 |