選自The M tank
機器之心編譯
本文是 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):
- Hanmonic 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 個類別,這使其成為了機器學習社群不可或缺的一部分。
- YouTube-8M[180] 同樣也來自谷歌,它包含八百萬個視訊 URL、五十萬小時視訊時長以及 4800 個類別,每個視訊平均 1.8 個標籤。一些標籤示例如下:藝術&娛樂、購物以及寵物&動物。視訊資料集更加難以標註和收集,因此該資料集價值很大。
也就是說,影像理解的進步,如分割、物體分類和檢測已經將視訊理解帶入了研究前沿。然而,在這個資料集釋出之前,真實世界的視訊資料集的種類和規模實際上很缺乏。此外,這個資料集剛剛更新 [181],並且今年穀歌聯合 Kaggle 正組辦一場視訊理解競賽,它是 CVPR 2017[182] 的一部分。有關 YouTube-8M 的一般資訊請參見:https://research.google.com/youtube8m/[183]。
侷限和趨勢
這一部分總結其他應用、趨勢、遺漏等。
應用/用例:
- Facebook 構建的適合盲人的應用 [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、VPN、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
本文為機器之心編譯,轉載請聯絡本公眾號獲得授權。