當前位置:
首頁 > 新聞 > 卷積神經網路做簡單任務原來有 BUG?UBER AI Lab 來支招

卷積神經網路做簡單任務原來有 BUG?UBER AI Lab 來支招

雷鋒網 AI 科技評論按:UBER AI Lab 最新研究發現卷積神經網路在處理坐標變換問題上存在驚人的「無能」缺陷,並提出了一種簡單的 CoordConv 策略修復了這一缺陷。雷鋒網 AI 科技評論把 UBER AI Lab 的這篇文章全文翻譯如下。

Uber 在許多領域中都需要應用到卷積神經網路,從設計自動駕駛車輛到路牌自動檢測,從地圖構建到最大化 Uber 市場中的空間調度效率。同時這些領域的研究又都涉及到坐標變換問題。

在深度學習領域,卷積操作所產生的影響是獨一無二的。當前機器視覺研究中幾乎所有最佳結果都採用了同一種策略,那就是使用卷積層的堆疊作為基本構建塊。由於這種架構非常普遍,我們也就理所當然地認為它應該能夠勝任一些簡單的任務,例如在一幅小圖像中繪製一個像素點。然而真實結果卻令人大跌眼鏡。


發現一:卷積神經網路不擅長處理監督渲染任務

讓我們來設想一個簡單的監督渲染(Supervised Rendering)任務,這個任務的要求是,給定一個 (i, j) 坐標作為網路的輸入,然後要求網路輸出一張 64*64 的圖像,並且圖像中繪有一個以 (i, j) 坐標為中心的正方形,如下圖1 (a) 所示。那麼你會使用什麼樣的網路來解決這個任務?

其中一種策略是,我們可以採用當前生成圖像的主流方法來實現這項任務,即通過堆疊反卷積(轉置卷積)層來生成圖像以及繪製正方形。為了驗證這個想法,我們創建一個由 64*64 大小的畫布(圖像)組成的數據集,這些畫布上隨機地繪製了 9*9 的正方形格子,如下圖1 (b) 所示。通過枚舉所有可能的情況(保證正方形完整的前提下),我們總共得到了 3136 個樣本。然後為了評估模型的泛化能力,我們定義兩種訓練/測試集分割方法:均勻分割法,這種方法將所有可能的正方形中心位置按 8:2 的比例隨機地分成了訓練集與測試集;另一種是象限分割法,這種方法將畫布劃分成了四個象限,其中正方形中心位於前三個象限的畫布被分配進訓練集,而正方形中心位於第四象限的畫布被分配進測試集。這兩種分割法所產生的數據集分布如下圖1 (c) 所示。

圖1 (a) 該監督渲染任務要求網路在給定的 (i, j) 坐標上繪製正方形。(b) 數據集的樣例展示。(c) 均勻分割與象限分割法所生成訓練測試集分布的可視化。

我們假設卷積神經網路可以輕鬆地解決這個任務,因為這個任務非常簡單(我們的論文https://arxiv.org/abs/1807.03247 展示了整個數據集的生成只需要兩行 Python 代碼),同時由於這個數據集非常小,模型很容易就過度參數化。但事實證明,卷積神經網路的表現十分糟糕。即使是具有多達 1M 個參數且訓練時間超過 90 分鐘的模型(圖2b),也無法在均勻分割的測試集上獲得超過 0.83 的 IOU 性能,而在象限分割的測試集上則無法超過 0.36 的 IOU(圖2a)。

圖2 (a) 展示了這項監督渲染任務在均勻分割和象限分割兩種策略下的訓練與測試數據集 IOU,它們的 IOU 都小於 1.0;(b) 為了訓練一個較好的模型需要花費 90 分鐘才能達到 0.8 的 IOU。


任務簡化與發現二:卷積神經網路不擅長處理基於監督的坐標分類任務

那麼為什麼通過卷積神經網路來處理監督渲染任務效果會這麼差呢?這點值得我們進行深入挖掘。畢竟,如果採用直接監督訓練的渲染任務都如此困難,那麼當我們採用無監督學習來實現渲染時,這隻會變得更加困難。例如,在相同的數據集上訓練生成對抗網路(GAN),並由一個訓練過的判別器來提供損失。

讓我們來縮小任務的範圍,以便於能夠發現問題所在。我們現在的任務是要求網路繪製一個簡單的像素(而不是 9*9 的正方形)。因為我們很容易就會想到,如果模型可以解決這個單像素任務,那麼通過堆疊更深的反卷積網路就可以很容易地將這個像素擴展成一個更大的正方形,這也是我們通過實驗驗證過的直覺。因此,我們想到了這個基於監督的坐標分類任務(圖3a),其中數據集由成對的 (i, j) 坐標和圖像(對應的像素點被激活)組成,如下圖 3b。

圖3 (a) 基於監督的坐標分類網路要求網路在給定的坐標 (i, j) 上繪製一個像素點;(b) 數據集樣例;(c) 訓練集與數據集可視化

我們再次嘗試了許多具有不同超參數的網路,然後觀察到即便有些網路可以記住訓練集,但是卻沒有一個網路的測試精度可以超過 86%(圖4a),而且還需要花費超過一個小時的訓練時間。

圖4 (a) 展示了在均勻分割和象限分割上訓練坐標分類任務的訓練精度與測試精度,雖然有些模型記住了訓練集,但是在均勻分割的測試集上都沒有超過 86%,這意味著卷積操作即便在單像素任務上也無法很好地泛化;(b) 為了實現 86% 的測試精度需要花費一個小時訓練時間。

我們本來設想卷積能夠完美解決這個問題,但事實並非如此。為什麼會這樣呢?為了弄清楚網路到底在幹什麼,我們訓練了一個最好的網路並檢查其預測結果。我們讓網路繪製一張圖像,該圖像中只有一個像素點被激活(在獨熱表示中值為 1)。為了查看正在發生的事情,讓我們放大目標像素周圍的小區域。在圖5中,目標像素使用紅色進行高亮,我們展示了模型的 softmax 預測結果和 logits。第一個像素(第一行)來自於訓練集,所以與預期一樣,模型正確繪製了圖像,儘管目標像素之外還有些誤判。下一個像素(中間行)來自於測試集,此時模型雖然預測正確了,但是目標像素和周圍像素的概率值差別更小了。再看第三行的右邊圖像,這次模型則完全預測錯誤了。這個結果十分令人驚訝,因為採用 8:2 的均勻分割中,幾乎所有的測試像素都被訓練像素包裹了。

圖5 對幾個相鄰像素的預測。網路在訓練集上的準確率是完美的,但是在測試集上只有 86%,更令人驚訝的是,大多數測試集像素幾乎都被訓練集像素包裹著。此外,從可視化結果來看,網路在訓練集上的結果也不是那麼完美,因為目標像素周圍還存在一些誤判。


調整方向與發現三:卷積神經網路也不擅長處理監督回歸

那麼為什麼對於卷積神經網路而言,要在圖像中高亮出指定坐標對應的像素這麼困難呢?是因為要將信息從更小的空間擴展到更大的空間比較困難嗎?那麼換個方向是否會變得簡單一些呢?如果我們訓練卷積神經網路將圖像壓縮成一個標量坐標(更類似於普通的圖像分類)會怎樣?

事實證明,卷積神經網路在這種監督回歸任務上的效果依然糟糕。在圖10中,最左邊的點雲顯示了正確的像素坐標,中間的點雲顯示了模型的預測結果。通過對某些細節進行著色,我們可以發現該模型在測試集上表現明顯不佳,並且即便是在訓練集上也是差強人意。

簡而言之,重點並不是研究方向。

這個看似簡單的坐標變換任務會從兩個方向上導致卷積「失敗」:從笛卡爾坐標系空間到獨熱像素空間,反之亦然。即使是在監督訓練的情況下,僅僅是繪製一個像素,甚至訓練樣例就圍繞在測試樣例周圍時,卷積仍然無法學習到笛卡爾空間和像素空間之間轉換的平滑函數。此外,實驗中表現最好的卷積模型非常大,且需要大量時間進行訓練。

我們的方案:CoordConv

事實證明這裡有個簡單的解決方案。卷積操作是等變的,這意味著當每個濾波器被作用於輸入以生成輸出時,它並不知道每個濾波器的位置。我們可以通過讓濾波器掌握自己的位置來協助卷積操作。我們的做法是向輸入的通道層添加兩個新層來實現的——一個具有 i 坐標,一個具有 j 坐標。我們稱之為 CoordConv,如下圖6所示。

圖6 卷積層與 CoordConv 層的對比。CoordConv 層將填充有坐標信息的附加通道作為輸入,坐標信息包含了 i 和 j。

我們提出的 CoordConv 層是標準卷積層的簡單擴展,其中卷積操作依賴於坐標信息。但是允許卷積濾波器獲知坐標信息將會破壞平移不變性(Translation equivariance),所以這看起來似乎是個壞主意。因為平移不變性正是卷積操作最顯著的特徵之一。

我們認為卷積由於三個重要因素而取得了成功:它使用了相對較少的學習參數;利用 GPUs 進行加速;學習的函數具有平移不變性。

CoordConv 層保留了前兩個屬性——相對較少的參數和高效的計算。而平移不變性的保留程度則是通過訓練學習。如果來自坐標的權重為 0,則 CoordConv 的行為就類似於標準的卷積。另一方面,如果平移依賴(Translation dependence)對於下游任務是有幫助的,那麼它也能夠學習到。但是正如我們所看到的,最終的證據隱藏於卷積之中。


CoordConv 可以解決之前的監督任務

首先,讓我們重新審視之前的任務,看看 CoordConv 的表現如何。

如圖7和圖8所示,CoordConv 模型在監督坐標分類和監督渲染任務中均取得了完美的訓練和測試精度。此外,CoordConv 模型的參數也減少了 10~100 倍,並且訓練達到完美性能的時間僅僅需要幾秒鐘,而不像卷積神經網路那樣需要一個多小時。

圖7 CoordConv 在監督坐標分類任務上快速達到了訓練和測試的完美性能

圖8 許多 CoordConv 模型在監督渲染任務中快速取得了完美的訓練和測試性能

為了更細緻地進行探討,下圖9顯示了在繪製相鄰像素時,普通反卷積與 CoordConv 的對比。

圖9 如前所述,反卷積在監督坐標分類任務上表現的馬馬虎虎,但是 CoordConv 卻在訓練集和測試集上都取得了 100% 的正確率。並且解決方案明顯更簡單了。

在使用卷積繪製像素時,我們觀察到了偽像和過擬合。而在使用 CoordConv 時,我們在測試以及訓練集上都達到了完美的性能表現。在監督回歸任務中結果也是如此。雖然卷積不擅於處理回歸坐標,但是 CoordConv 卻能很好地建模該函數,如下圖10所示。

圖10 卷積在監督回歸任務中表現的非常差,但是 CoordConv 的表現卻很好。


CoordConv 在其它領域大展身手

到目前為止,我們已經展示了卷積操作在處理非常簡單的任務時也會「失敗」,而我們通過提出 CoordConv 層來解決了這個問題。當然我們還想知道:這個問題僅僅是這項坐標轉換任務所特有的,還是說我們發現了一個核心問題,而這個核心問題長期以來一直隱藏在其它任務中,阻礙了這些任務的表現?為了回答這一疑惑,我們在針對各種任務的網路中插入了 CoordConv 層。以下是我們發現的總結摘要,更多的詳情請參閱文論。

物體檢測

因為物體檢測模型在笛卡爾空間中觀察像素空間然後輸出一系列定界框(Bounding boxes),所以它們看起來很適合 CoordConv。而我們的直覺也得到了證實:在檢測畫布上散布的 MNIST 數字的簡單問題上,我們發現在使用 CoordConv 時,Faster-RCNN網路的 IOU 提高了約 24%。

圖像分類

在所有視覺任務中,我們認為圖像分類任務能夠從 CoordConv 層上獲得的性能增益是最少的,因為分類任務更多地是與圖像內容有關,而不是圖像中目標的位置。實際上,當我們在 ResNet-50 的底部添加 CoordConv 層並在 ImageNet 上訓練時,我們發現性能只有微弱的提升。

生成模型

在諸如生成對抗神經網路(GANs)和變分自動編碼器(VAEs)這樣的生成模型中,像素是隱式繪製的,這意味著在一個理想的世界中模型也許能編碼像位置坐標這樣的高層次概念。直觀地說,CoordConv 可能對此有幫助。我們通過使用 Sort-of-SLEVR(這是一個包含各種形狀的簡單數據集)來訓練生成對抗神經網路和變分自動編碼器,並可視化了中間的插值過程。

這是一個生成彩色圖形的簡單任務。下圖11所示的插值視頻展示了 CoordConv 如何改善了生成模型的性能,其中左邊是普通生成對抗神經網路,右邊是 CoordConv 生成對抗神經網路。

通過使用生成模型,我們在隱式空間(Latent space)中的點之間使用插值方法來研究 CoordConv 所產生的影響。這也是用於評估生成模型泛化能力的常用方法。

圖11 普通卷積 GAN(左圖)和 CoordConv GAN(右圖)在隱式空間中的插值動畫。在普通 GAN 中,我們觀察到了與畫布相關聯的視覺偽像,以及淡入和淡出的現象。而 CoordConv GAN 中的對象則是連貫的,其運動也更加平滑。

對於左側的普通 GAN,其動畫整體看著還不錯。但是當我們仔細觀察時,我們卻注意到並非所有物體都在移動,其中的視覺偽像與畫布關聯在了一塊,並且畫面中物體的某些部位也會時隱時現。當我們將 CoorConv 層加入生成器和判別器時,生成結果變得更加平滑了。我們可以看到此時物體保持了整體的連貫性並且運動也非常流暢。

在訓練 VAEs 的時候我們注意到了相似的模式。通過卷積,我們觀察到圖像中的部分物體時隱時現,但是使用 CoordConv 之後,物體的運動變得更加平滑。

圖12 使用普通卷積 VAE(左圖)和 CoordConv VAE(右圖)在隱式空間中進行插值。在普通的 VAE 中物體存在時隱時現的問題,而 CoordConv VAE 的運動則更加流暢。

當使用較大的 GAN 繪製大規模場景理解(Large-scale Scene Understanding, LSUN)的卧室場景時,基於卷積的 GAN 再次出現對象物體時隱時現的問題。而使用 CoordConv 層的 GAN 則呈現出了平滑的幾何變換,包括平移和形變。

圖13 在隱式空間中的第三次插值,這次採用了 LSUN 卧室數據集進行訓練,左圖是普通卷積 GAN 而右圖是 CoordConv GAN。普通卷積中物體呈現出了時隱時現的問題。而使用 CoordConv 層的 GAN 則表現出了平滑的幾何變換,包括平移和形變


強化學習

強化學習是一個有趣的領域,CoordConv 也許能夠發揮作用。我們訓練了一些智能體來玩雅達利遊戲,例如《吃豆人小姐》。我們認為,如果卷積濾波器可以同時識別吃豆人小姐並提取她在迷宮中的位置,那麼這有可能幫助演算法學到更好的策略。

我們嘗試過將 CoordConv 添加到自己構建的Ape-X平台上,但是 CoordConv 並沒有立即提高性能。我們還嘗試了 A2C,這是一種流行的策略梯度方法,這時候 CoordConv 開始發揮作用。這可能反映了學習顯式策略和學習 Q 函數之間的差異。我們測試了 9 場比賽,相比於標準卷積,其中有 6 場的結果是採用了 CoordConv 的 A2C 訓練速度更快,或者取得了更高的最終結果。正如預期的那樣,我們注意到《吃豆人小姐》的分數獲得了提高。有兩場比賽,CoordConv 與標準卷積表現相似,而有一場比賽CoordConv 表現則比標準卷積稍微差一些。總的來說,這些結果表明 CoordConv 可能在強化學習中是有用的。

圖14 使用 A2C 訓練雅達利遊戲的結果。在 9 場比賽中,(a) 有 6 場比賽 CoordConv 的表現超過了標準卷積;(b) 有 2 場比賽,兩者表現一樣;(c) 有 1 場比賽,CoordConv 表現稍微差了一些


後續

在本文中,Uber AI Lab 的研究人員們通過實驗表明了卷積神經網路對坐標轉換任務建模的「無能」,並通過 CoordConv 層的形式引入了一種簡單的修復策略。他們的結果表明,使用 CoordConv 層可以提高部分應用的性能。他們未來的工作將進一步評估 CoordConv 在大規模數據集中的優勢,探索其在檢測、語言任務、視頻預測、空間變換網路等模型中的效果。

不過另一方面,也有一些其他的研究者在看過 Uber AI Lab 的這項研究之後認為他們的做法是「人工特徵的借屍還魂」,為部分任務增加了有益的特徵之後當然可以提高模型的表現,但這種做法是與表示學習、深度學習所倡導的「模型自己學習特徵」的思想背道而馳的。你怎麼認為呢?歡迎大家留言討論。

論文地址:https://arxiv.org/abs/1807.03247

ViaUber AI Labs,雷鋒網 AI 科技評論編譯

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

自動駕駛受追捧,軟體服務商的服務商在做什麼?
專訪融慧金科張羽:後監管時代,金融科技的春天

TAG:雷鋒網 |