計算機視覺這一年:2017 CV技術報告Plus之卷積架構、數據集與新趨勢
本文是 the M Tank 計算機視覺報告《A Year in Computer Vision》的第四部分(之前部分參見:計算機視覺這一年:這是最全的一份 CV 技術報告)。本節將會介紹卷積神經網絡架構、數據集和其他軟硬件研究在 2017 年的最新進展,同時對于計算機視覺領域未來的發展做出展望。本文對于開發者和研究人員來說是不可多得的詳細材料。
ConvNet 架構
近期,ConvNet 架構在計算機視覺之外也有很多新的應用。但是,它們的架構在速度、準確率和任務訓練方面都有進步,仍然主導著計算機視覺領域。因此,整體而言,ConvNet 架構對計算機視覺至關重要。下面列出了 2016 年以來一些優秀的 ConvNet 架構,其中很多從 ResNet 中獲得靈感。
- Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning [131]:Inception v4 是一種新型 Inception 架構,從 Inception v2 和 v3 [132] 發展而來。本文還分析了使用殘差連接訓練 Inception 網絡和一些 Residual-Inception hybrid 網絡。
- Densely Connected Convolutional Networks [133](DenseNet)從 ResNet 的恒等/跳躍連接(identity/skip connections)中直接獲取靈感。該方法先在 ConvNet 中用前饋的方式將每一層連接至其他層,將前面所有層的特征圖作為輸入,從而創建 DenseNet。
「DenseNet 有多個優勢:改善梯度下降問題,加強特征傳播,鼓勵特征重用,以及大幅減少參數數量。」[134]
圖 16:DenseNet 架構示例。5 層,growth rate k = 4。每一層的輸入為前面所有特征圖。來源:Huang et al. (2016) [135]
該模型在 CIFAR-10、CIFAR-100、SVHN 和 ImageNet 上進行評估,并在多個數據集上實現了頂尖性能。同時,DenseNet 使用了較少內存和計算能力。現在已經有多個實現(Keras、Tensorflow 等):https://github.com/liuzhuang13/DenseNet。[136]
- FractalNet Ultra-Deep Neural Networks without Residuals [137]:使用不同長度的子路徑,沒有傳遞(pass-through)或殘差連接,而是使用濾波器和非線性函數改變內部信號進行轉換。
「FractalNet 重復連接多個并行層序列和不同數量的卷積 block,以獲取大的額定深度,同時維護網絡中的很多短路徑。」[138]
該網絡在 CIFAR 和 ImageNet 上獲得了頂尖的性能,同時也展現了其他的特性。如,它們質疑極深層的卷積網絡中殘差連接的作用,同時通過不同的子網絡深度找出問題的答案。
- Lets keep it simple: using simple architectures to outperform deeper architectures [139]:創建一個簡化的母架構(mother architecture)。該架構在 CIFAR10/100、MNIST 和 SVHN 等數據集(使用簡單的或不使用數據增強)上獲得了頂尖結果,或至少與現有方法性能相當。
「該研究中,我們展示了一個非常簡單的 13 層全卷積網絡架構,該架構最少限度地依賴新特征,但是優于幾乎所有深層網絡(參數數量是該架構的 2 倍到 25 倍)。我們的架構可用于多種場景,尤其是嵌入式設備中。」
「使用深度壓縮(DeepCompression)可以進一步壓縮該架構,從而大幅減少內存消耗。我們嘗試創建一個最少限度地依賴新特征的母架構,以展示精巧、簡單的卷積網絡架構的有效性,文獻中提到的現有或新方法還可以提高其效用。」[140]
下面是一些補充 ConvNet 架構的技術:
- Swapout: Learning an ensemble of deep architectures [141]:生成 dropout 和隨機深度(stochastic depth)方法來防止特定層或所有層中單元的共適應。集成訓練方法從多個架構中采樣,包括「dropout、隨機深層和殘差架構」。Swapout 在 CIFAR-10 和 CIFAR-100 數據上優于同樣網絡結構的 ResNet,該技術屬于正則化的范疇。
- SqueezeNet [142]:小型 DNN 具備很多優勢,如較少的復雜計算訓練、較容易的信息傳輸,以及可在內存或處理能力有限的設備上運行。SqueezeNet 是一個小型 DNN 架構,該架構使用模型壓縮技術大幅減少參數數量和所需內存(AlexNet 的大小是它的 510x),且達到了 AlexNet 級別的準確率。
傳統意義上,修正線性單元(ReLU)是所有神經網絡中主要的激活函數。但是,現在有一些其他選項:
- Concatenated Rectified Linear Units(CRelu)[143]
- Exponential Linear Units(ELUs)[144](2015 年末)
- Parametric Exponential Linear Unit(PELU)[145]
卷積網絡中的不變性
卷積網絡是轉換不變的,意思是它們可以在一張圖像的多個部分識別相同的特征。然而,經典的 CNN 并不是旋轉不變的,即當某一個特征或整張圖像旋轉之后,網絡的識別性能就會下降。通常卷積網絡通過數據增強(例如,在訓練中有目的地將圖像旋轉隨機的角度)可以(稍微地)學習處理旋轉不變性。這意味著卷積網絡可以不引入具體的旋轉不變性而獲得輕微的旋轉不變性。同樣意味著使用當前的技術在網絡中引入旋轉不變性是行不通的,這是一個基本的局限性。這其實和人類難以識別上下顛倒的圖像挺相似的,但是機器必須克服這個局限性。
以下幾篇論文都提出了旋轉不變的卷積網絡。每一種方法都有其創新性,都是通過更有效的參數利用提升旋轉不變性,并最終獲得全局旋轉同變性(equivariance):
- Harmonic CNNs [146] 使用『圓諧波』(circular harmonics)濾波器替換常規的 CNN 濾波器。
- Group Equivariant Convolutional Networks (G-CNNs) [147]:使用 G-卷積(G-Convolutions),這是一種新類型的層,其中層內共享的權重比常規的 CNN 層內的權重高級得多,從而能增大網絡的表達容量,并且不需要額外增加參數數量。
- Exploiting Cyclic Symmetry in Convolutional Neural Networks [148] 中提出了四種運算(作為層的結構),可以增強神經網絡的層以部分增加旋轉不變性。
- Steerable CNNs [149] 由 Cohen 和 Welling 在他們對 G-CNN 的研究基礎上建立,證明可控架構(steerable architectures)在 CIFAR 數據集上的性能超過了殘差和密集網絡。他們還對不變性問題做了簡要的概述:
「為了提高機器學習方法的統計效率,很多人曾經尋求學習不變性表征的方法。然而,在深度學習中,中間層不應該是完全不變性的,因為局部特征的相對位姿(relative pose)必須保留給之后的層。因此,人們提出了同變性(equivariance)的思想:假如已知輸入的轉換,表征可以用一種可預測的線性形式生成轉換,那么該網絡就是同變的。換種說法即,同變網絡生成的表征是可控的。可控性使網絡不僅可以在所有的位置(正如標準的卷積層)還可以在所有的位姿上應用濾波器,從而增加參數共享。」
殘差網絡
圖 17:CIFAR 數據集上的測試誤差率。其中黃色標記表示這些論文針對的是我們所討論的問題。關于 pre-resnet 請參考「Identity Mappings in Deep Residual Networks」(參見接下來的內容)。此外,雖然不包含在表格中,我們相信,「Learning Identity Mappings with Residual Gates」在 CIFAR-10 和 CIFAR-100 上分別獲得了 3.65% 和 18.27% 的 2016 年最低誤差率。來源:Abdi and Nahavandi (2016, p. 6) [150]
隨著微軟的 ResNet[151] 獲得成功,殘差網絡和其變體在 2016 年變得很流行,出現了很多開源版本和可用的預訓練模型。在 2015 年,ResNet 在 ImageNet 的檢測、定位和分類任務,以及 COCO 的檢測和分割挑戰賽上都贏得了第一名。雖然其深度仍然是個問題,但 ResNet 解決了梯度消失問題,使人們更加相信「網絡越深,抽象表達能力越強」的理念,鞏固了深度學習的當前地位。
ResNet 通常被概念化為淺層網絡的集成,通過運行(與它們的卷積層平行的)跳過鏈接,從而在某種程度上抵消深度神經網絡的分層性質。這些跳過連接允許更簡單的反向傳播過程,緩解了深度神經網絡中的梯度消失和梯度爆炸問題。如果想了解更多信息,請查閱 Quora:https://www.quora.com/What-is-an-intuitive-explanation-of-Deep-Residual-Networks。[152]
殘差學習、理論和改進
- Wide Residual Networks [153]:目前是一種非常普遍的 ResNet 方法。作者對由 ResNet 模塊組成的架構進行了實驗性研究,并通過增加網絡的寬度和減少深度提升了網絡的性能,從而緩解了逐漸減少的特征重用(diminishing feature reuse)的問題。這個方法在多個基準測試中都取得了當前最佳結果,包括在 CIFAR-10 和 CIFAR-100 上的 3.89% 和 18.3%。作者證明了一個 16 層深的寬 ResNet 可以獲得比任何其它 ResNet(包括 1000 層的網絡)更高的準確率和效率。
- Deep Networks with Stochastic Depth [154]:主要將 dropout 技術應用于整個層的神經元,而不是單個神經元。「我們從很深的網絡開始,在訓練過程中,對于每一個小批量,隨機刪除部分層,使用恒等函數繞過它們。」隨機深度允許更快的訓練,能得到更高的準確率,甚至當訓練的網絡過了 1200 層也是如此。
- Learning Identity Mappings with Residual Gates [155]:「通過使用一個標量參數控制每一個門,我們提供了一種只需要優化一個參數就可以學習恒等映射的方法。」作者使用這些 Gated ResNet 改善了深度網絡的優化方式,并提供了對「移除整層的高接收度」,從而即使隨機而大量地刪除層,也能保持 90% 的性能。使用 Wide Gated ResNet 在 CIFAR-10 和 CIFAR-100 上分別獲得了 3.65% 和 18.27% 的結果。
- Residual Networks Behave Like Ensembles of Relatively Shallow Networks [156]:ResNet 可以看成很多路徑的集成,路徑之間的依賴關系不強,從而增強對整體行為的理解。此外,殘差路徑長度不同,短路徑為訓練過程中的梯度做貢獻,長梯度對該階段沒有影像。
- Identity Mappings in Deep Residual Networks [157]:恒等映射『用作跳躍連接和 after-addition activation 時,允許在 ResNet block 中對信號進行前后和后向傳輸」。該方法改善了「1001 層的 ResNet 在 CIFAR-10(誤差 4.62%)和 CIFAR-100 數據集,以及 200 層的 ResNet 在 ImageNet 上」的生成、訓練和結果。
- Multi-Residual Networks: Improving the Speed and Accuracy of Residual Networks [158]:再次提倡 ResNet 的集成,支持 ResNet 架構變得更寬、更深。「multi-residual network 增加了殘差塊中殘差函數的數量。」提高的準確率使網絡在 CIFAR-10 和 CIFAR-100 數據集上的誤差分別是 3.73% 和 19.45%。
其他殘差理論和改進。盡管它是最近提出的想法,但已經有大量研究圍繞著 ResNet 展開。下面是一些相關的論文:
- Highway and Residual Networks learn Unrolled Iterative Estimation[159]
- Residual Networks of Residual Networks: Multilevel Residual Networks[160]
- Resnet in Resnet: Generalizing Residual Architectures[161]
- Wider or Deeper: Revisiting the ResNet Model for Visual Recognition[162]
- Bridging the Gaps Between Residual Learning, Recurrent Neural Networks and Visual Cortex[163]
- Convolutional Residual Memory Networks[164]
- Identity Matters in Deep Learning[165]
- Deep Residual Networks with Exponential Linear Unit[166]
- Weighted Residuals for Very Deep Networks[167]
數據集
不能過分夸大用于機器學習所有層面的豐富數據集的重要性。因此,我們審慎地收錄該領域中一些最大進步。Kaggle CTO 兼聯合創始人 Ben Hamner 曾說過「一個新數據集能催生出一千篇論文」[168],即數據的可用性能夠催生新方法,并為之前無效的技術注入新活力。
2016 年,傳統數據集如 ImageNet [169]、COCO [170]、 CIFARs [171] 和 MNIST [172] 中加入了大量新條目。我們還注意到制圖技術的進步引發合成數據集的增長,它是滿足人工神經網絡對大量數據的需求的一種有趣工作。為了簡潔起見,我們選擇了 2016 年最重要的新數據集:
- Places2 [173] 是一個場景分類數據集,其任務是使用一個場景分類(比如「體育館」、「公園」等等)標注圖像。盡管借助 Places2 數據集預測模型和圖像理解無疑會有改善,從這個數據集上訓練的網絡得到一個有趣的發現是,在學習分類場景的過程中,網絡無需經過明確指導學會了檢測其中的物體。例如,臥室里有床和廚房與浴室里都有水池。這意味著在場景分類的抽象層級中,物體本身是較低水平的特征。
圖 18:SceneNet RGB-D 示例。來自 SceneNet RGB-D 的示例,它是一個帶有 500 萬張真實感圖像的合成室內軌跡的真值數據集。圖片 (a) 通過計算圖呈現,帶有從 (b) 到 (e) 的特定任務的可用真值。合成數據集的創建有助于域適應進程,如果從其中學習到的知識無法應用到現實世界,那么合成數據集則是無意義的。這正是域適應發揮作用的地方,它具備把知識從一個領域遷移到另一個領域的能力,比如從合成圖像到現實世界。域適應最近再次迅速發展,其在遷移學習方面的努力是亮點。列 (c) vs (d) 展示了實例與語義/分類分割之間的不同。來源:McCormac et al. (2017) [174]
- SceneNet RGB-D [175]:此合成數據集擴展了原始的 SceneNet 數據集,為語義分割、實例分割和物體檢測等場景理解問題以及光流、深度估計、相機姿態估計和三維重建等幾何計算機視覺問題提供了像素完美的真值。該數據集通過提供像素完美的表征來細微化已選的環境。
- CMPlaces [176] 是 MIT 的一個跨模態場景數據集,其任務是識別除自然圖像以外的許多不同形態的場景,并且在這個過程中跨模態地遷移知識。其中一些形態如下:剪貼畫、素描、空間文本以及自然語言描述。這篇論文同樣也討論了通過跨模態卷積神經網絡處理這一類型問題的方法。
圖 19:CMPlaces 跨模態場景表征。來自 CMPlaces 論文,它展示了兩個實例,臥室和幼兒園教師。傳統的神經網絡方法學習無法在不同形態之間很好遷移的表征,并且該論文試圖生成一個共享表征「形態不可知論」。來源:Aytar et al. (2016) [177]
CMPlaces 明顯提及到遷移學習、域不變表征、域適應和多模態學習。所有這些都進一步證明了計算機視覺研究的當前進展。作者致力于試圖找到「域/模態獨立的表征」,它可以對應于人類借以獲取統一表征的更高層級的抽象。比如以不同形態之中的「貓」為例,無論是看到貓這個單詞,一只素描本中的貓,一張貓的真實圖像,抑或是在演講中提及貓,人類總會抽象出一個相同的統一表征,高于以上所有的形態。
人類能夠獨立地利用從形態中感知到的知識與經驗,機器獲得相似能力能夠帶來檢索和識別方面的若干個重要應用。
- MS-Celeb-1M [178] 包含一百萬張名人圖像,人臉識別訓練集中有一千萬張訓練圖像。
- Open Images[179] 來自谷歌,有帶有多標簽的九百萬張圖像 URLs,這是對典型的單標簽圖像的一次巨大提升。Open images 涵蓋 6000 個范疇,遠高于之前 ImageNet 提供的 1000 個類別,這使其成為了機器學習社區不可或缺的一部分。
- 油Tube-8M[180] 同樣也來自谷歌,它包含八百萬個視頻 URL、五十萬小時視頻時長以及 4800 個類別,每個視頻平均 1.8 個標簽。一些標簽示例如下:藝術&娛樂、購物以及寵物&動物。視頻數據集更加難以標注和收集,因此該數據集價值很大。
也就是說,圖像理解的進步,如分割、物體分類和檢測已經將視頻理解帶入了研究前沿。然而,在這個數據集發布之前,真實世界的視頻數據集的種類和規模實際上很缺乏。此外,這個數據集剛剛更新 [181],并且今年谷歌聯合 Kaggle 正組辦一場視頻理解競賽,它是 CVPR 2017[182] 的一部分。有關 油Tube-8M 的一般信息請參見:https://research.google.com/油Tube8m/[183]。
局限和趨勢
這一部分總結其他應用、趨勢、遺漏等。
應用/用例:
- 非死book 構建的適合盲人的應用 [184] 和百度的硬件 [185]。
- 情緒檢測將人臉檢測和語義分析結合起來,并發展迅速。目前有 20+ 可用 API [186]。
- 從航空影像中提取道路 [187],從航測圖和人口密度地圖中提取土地使用分類 [188]。
- Amazon Go 免排隊商店提升了計算機視覺的重要性 [189],盡管目前還存在很多功能問題 [190]。
- 現有很多為自動駕駛進行的大量研究,我們沒有太多涉及。但是,對于那些想要深入研究市場趨勢的人來說,Twenty Billion Neurons 公司的 Moritz Mueller-Freitag 關于德國汽車行業和自動駕駛汽車的影像有一些精彩的論斷 [191]。
- 其他有趣的領域:圖像檢索/搜索 [192]、手勢識別、圖像修復和人臉重建。
- 也有大量研究是關于醫學數字成像和通信(DICOM)和其他醫療應用的,尤其是成像方面。例如,大量 Kaggle 檢測競賽(肺癌、宮頸癌)。
但是,盡管研究還在繼續改善這些算法的誤差率,它們作為醫療從業者工具的價值越來越重要。醫學專家 [194] + AI 系統 [193] 在乳腺癌檢測上獲得的性能提升實在令人震驚。在這個案例中,人機協作以 99.5% 的準確率遠遠超過人和機器單獨的準確率。
這只是目前深度學習/機器學習社區探索的醫療應用洪流中的一個例子。我們團隊的一些成員開玩笑地說這些嘗試只是試圖討好社會,使人們認為 AI 研究是一種普遍、善意的力量。但是只要技術能夠幫助醫療行業,且用安全、周密的方式引入,那么我們真誠地歡迎這樣的進步。
硬件/市場
- 機器人視覺/機器視覺(這是兩個不同領域)以及物聯網的潛在目標市場正在不斷增長當中。深度學習的應用或許在其中會扮演重要的角色,通過是用樹莓派和 TensorFlow,一個日本農民的兒子就可以利用計算機視覺對黃瓜的形狀、色澤和尺寸進行分類 [195]。這一過程大大減少了他母親分揀黃瓜的人工需求。
- 計算需求的縮減和移動端移植的呼聲是非常明顯的,但計算機視覺應用的發展與硬件加速相關性仍然很高。我們很快就會見到移動端 CNN 和視覺處理單元(VPU)大量進入人們的手中。例如,Movidius Myriad2 正被谷歌 Project Tango 和一些無人機使用。[196]
Movidius Fathom 處理單元 [197] 也使用了 Myriad2 的技術,它允許用戶將 SOTA 計算機視覺能力擴展到很多消費級產品中去。Fathom 就像一塊 U 盤一樣小巧,卻可以輕松地將神經網絡嵌入到幾乎所有設備上。
- 探測除可見光以外的傳感器和系統也將得到發展:如雷達、紅外線攝像頭、高光譜成像、聲吶、磁共振成像等等。
- 更加便宜的 LiDAR,它通過發射不可見光束來探測距離,相對于常用 RGB 攝像頭具有更多優勢。LiDAR 設備目前的售價已經普遍低于 500 美元。
- Hololens 和其他大量增強現實頭盔 [198] 也將進入市場。
- 谷歌的 Project Tango [199] 代表了 SLAM 商業化的未來。Tango 是一個增強現實的計算機平臺,包含了新硬件和軟件。Tango 可以探測移動設備的位置,并與現實世界展開互動,也可以在沒有 GPS 或其他外部信息的情況下對周遭環境進行 3D 繪圖。
在該項目中,谷歌與合作伙伴聯想共同在 2016 年推出了一款中端手機,讓開發者們可以在 Tango 平臺上開發新的應用。Tango 包含了以下軟件技術:運動跟蹤、視場學習和深度知覺。
遺漏補充
值得注意的是計算機視覺和機器學習/人工智能的其他領域有很多重疊。這些內容在以上論述中均有涉及,在本文中,我們根據自己的思路對內容進行了劃分。
例如,我們若決定將兩個完整的計算機視覺任務:圖像標注和視覺問答加入 NLP 系統中整合為視覺語音識別系統,該研究就同時具有了 CV 與 NLP 的組成部分,其中生成模型用于處理圖像。這樣的未來方向包含:
- 唇讀系統:在 2016 年,我們看到了像 LipNet [200] 這樣的系統可以從視頻中說話人的唇語中讀取出文字內容,這種技術結合了計算機視覺與 NLP,形成了視覺語音識別。
- 生成模型適用于圖像領域,其中的各種自回歸模型(如 PixelRNN、PixelCNN、ByteNet、V*N、WaveNet 等)、生成對抗網絡(GAN)、變分自編碼器以及它們的各種變體、結合與混合方法之間的技術競爭非常激烈。
在最后一節中,我們將給出一些結論性意見,總結出目前的發展趨勢。我們希望能夠得到計算機視覺領域近期發展的全貌。注意:該總結不包含 2017 年 1 月-8 月的早期內容——由于技術的快速發展,舊的技術已經被新的技術超越了。這種快速發展的態勢將使得計算機視覺硬件和軟件在 2022 年發展成為 486 億美元規模的新市場。
圖 20:計算機視覺應用市場利潤發展預測 [202]。來源:Tractica(2016)[203]。
結論
在這里我們希望突出一些不斷出現的趨勢和重點研究方向。首先必須提到的是研究社區對于優化的重視,其中最明顯的就是今年各類研究中準確度的提升。
錯誤率并不是唯一一個被關注的參數,研究人員同時也在關注速度、效率以及算法的泛化能力,希望其成果可以在其他任務中具有足夠競爭力。像 one-shot learning、生成模型、遷移模型以及最近開始火熱的進化模型等方法是目前的主流,這些方向正在逐漸產生影響,并催生出更好的工作。
盡管以上論述毫無疑問是對于未來的美好憧憬,但隨著這個思路,我們不免會回到人工智能的終極問題——通用人工智能上來。盡管我們在計算機視覺領域和其他 AI 相關領域里進展很快,目前技術的發展距離我們需要擔憂還有很長一段距離。只有通過不斷公開這些信息,我們才能消除公眾對于新技術的誤解。
我們選擇對最近一年的技術發展進行概述原因在于:目前的研究成果正呈指數級增長,即使對于業內人士來說,隨時保持對最新研究的跟蹤也是一件越來越困難的事了;同時,我們也想以年為單位對于技術的進步作出度量。
回顧一年來的進展,讀者們或許會驚訝于目前技術發展的高速度,在很短的一段時間內,技術就已有了多次重大進步。這是因為研究者們已經建立了一個全球化的社區,讓新的探索可以在前人的方法上(架構、元架構、技術、思想、提示、捷徑、結果……)和基礎工具上(Keras、TensorFlow、PyTorch、GPU 加速方法等等)更進一步,這是一件可喜可賀的事情。這樣的開源環境絕無僅有,它正在不斷鼓勵新的研究者將他們從其他領域中(如經濟學、物理學等等)得來的想法應用其中。
對于還未意識到這些的人來說,理解計算機視覺發展的現狀非常重要,在一片贊揚聲中,我們需要回到技術的本質上,去理解它;至少需要理解這項技術可以用新的方式來改變世界。然而,技術的發展還在展開,未來的時間線上仍然存在很多的分支。
希望本文可以幫助人工智能開發者快速獲知計算機視覺和人工智能領域的最新進展。
原報告地址:http://www.themtank.org/a-year-in-computer-vision
來自:https://www.jiqizhixin.com/articles/2017-11-27