單CPU處理1s影片僅需37ms、GPU僅需10ms,Google提出TVN影片架構

  • 2019 年 11 月 13 日
  • 筆記

來源:公眾號 機器之心 授權轉

Google機器人團隊利用進化演算法,獲得低計算成本、高性能的影片網路架構 TVN,該網路運行高效,速度可達之前影片模型的 100 倍。

影片理解是電腦視覺領域中的重要問題,它有很多應用,如影片自動標註、行為識別和機器人感知。影片理解對自動智慧體在現實世界中的應用有重大影響,目前它仍是一道難題。現有的解決方案計算成本高昂,最快速的演算法需要在強大的 GPU 上運行才能處理超過 0.5 秒的影片片段。

為了解決該問題,Google機器人團隊提出使用進化演算法,自動設計出以原來計算成本的一部分提供相當性能的網路(即低計算成本、高性能)。具體來說,Google研究者提出了一種為影片理解任務設計「微」神經網路(tiny neural network)族的通用方法。

論文鏈接:https://arxiv.org/abs/1910.06961v1

這些微神經網路可實現相當高的準確率,且運行高效,可實時或者以更快的速度運行。它們在一塊 CPU 上處理約 1 秒的影片片段需要 37-100 ms,在一塊 GPU 上僅需 10 ms,速度是當前模型的 100 倍(見下圖 1、2)。研究者將這些網路稱為 Tiny Video Networks (TVN),因為此類網路僅需要極小的運行時,這在影片模型中尚屬首例。

圖 1:TVN 與之前方法的性能相當,但它在 CPU 上處理一個影片僅需 37 ms,在 GPU 上所需時間為 10 ms。TVN 的速度是當前影片模型的 100 倍,如 (2+1)D ResNet-101。

圖 2:TVN 和主流 (2+1)D 影片理解模型在 Moments-in-Time (MiT) 數據集上的運行時和模型準確率對比情況。

之前的方法為什麼那麼慢?

影片理解是非常活躍的研究領域,存在大量成功的方法。架構搜索是新興領域,近期也出現很多方法,其中大部分面向影像和語言理解領域。這些之前的方法中沒有一個可為影片理解領域構建高效架構。其主要原因在於,影片的內容量大,需要更多處理,而架構搜索是時間密集過程,因此將架構搜索應用於影片領域需要費很大功夫,且在很多情況下計算成本高昂。

Tiny Video Network 為什麼那麼高效?

Google的這項研究解決了上文提到的兩個問題,他們提出的新方法能夠輸出實時影片架構,從而實現高效搜索,無需過多計算資源。此外,如此快速的網路也為影片理解在現實生活應用(如在線機器人系統、手機等)中的部署和科研開發提供了機會。

對於影片理解領域而言,如此高效的網路前所未見,因為影片包含的內容遠遠多於影像,且包含很多耗費算力的元素。這使得優化影片模型成為難題,之前的研究沒有找到準確率和運行時均得到優化的小型神經架構。

該研究的貢獻如下:

  • 首個學習影片高效網路(TVN)的方法。TVN 是已知最快速的影片網路,在 CPU 和 GPU 上的運行速度均優於實時速度;
  • 架構搜索方法不僅解決了影片處理問題,同時能夠輸出快速準確的模型;
  • 微模型進一步擴展後可得到最快速模型,其性能堪比當前最優模型。

該研究學得的模型架構 TVN 與典型的影片架構不同,前者的卷積層更少;TVN 偏好輕量級元素,如 2D 池化、門控層、擠壓和激勵層(squeeze-and-excitation layer)。與之相反,現有的影片理解模型通常包含計算密集層,如 3D 卷積。有趣的是,TVN 通常不傾向於使用流行的非局部模組(non-local block module,Wang et al. 2018),因為該模組計算成本高且所獲得的性能低。下圖 3 為 TVN 架構的示例:

圖 3:使用架構進化方法得到的 TVN 示例,它包含多個具備不同配置的模組。

此外,該方法使得以低成本探索影片架構成為可能,這也表明未來的影片架構工作會更加高效,計算負擔也會更小。

研究者在四個流行的影片理解數據集上進行了實驗,它們分別是:Moments in time 數據集、HMDB 數據集、Charades 數據集和 MLB-YouTube 數據集。該研究提出的網路在這四個數據集上均取得了堪比(或稍低於)當前最優模型的性能,但前者的運行時僅為後者的一部分。上圖 2 展示了 TVN 的準確率-運行時曲線,在該區域內沒有其他模型的一席之地。

Tiny Video Network 的技術細節

研究者沒有使用手動設計架構的方式,而是在巨大的搜索空間內執行架構搜索,實現自動架構設計。

研究者搜索輸入解析度的最優組合,包括空間(寬高)和時間(幀數)、層數、層類型(如池化、卷積等),及其配置(卷積核大小、步幅等)。他們使用進化演算法,因為該演算法可以執行並行評估,允許群體中多個個體網路發生突變,且能夠使用不可微目標函數高效探索不規則搜索空間,比如運行時。

為了學習新的高效影片架構,研究者最大化以下公式,其中輸入為定義網路架構的變數/參數集。N 表示網路配置,θ 表示網路的可學習參數(|θ| 表示網路中的參數數量),P 是控制網路最大規模的超參數。R(N_θ) 計算網路在設備上的運行時,其中 N 是網路,θ是網路權重值,R 是最大期望計算運行時。

其中,F 是適應度函數。在此案例中,F 衡量訓練模型在驗證集上的準確率。

研究者通過進化搜索來優化公式 1。注意,由於運行時和參數量的約束,該函數不可微。儘管一些研究嘗試將運行時變為可微操作,但這需要估計每個操作在目標設備上的運行時。為簡單起見,Google研究者選擇使用進化演算法,因為它可以輕鬆適配不同設備,並為參數量(如模型大小)添加約束,這對於移動應用來說尤為重要。此外,搜索空間設計好後,其他超參數無法調整,如學習率或損失縮放因子。

在實驗部分我們可以看到,進化演算法發現了非常高效、準確的架構。注意,由於搜索中考慮的每個架構都很高效,因此搜索本身的計算成本低於其他神經架構搜索方法。

進化方法

研究者使用具備離散突變運算元的錦標賽選擇進化演算法(tournament selection evolutionary algorithm)作為搜索方法。

由於搜索空間很大,研究者首先生成 200 個隨機網路,其中一部分性能很差。在對這些網路進行評估後,他們遵循錦標賽選擇演算法,從目前的 200 個網路中隨機選擇 50 個,選取其中性能最好的一個作為「母體」(parent)。然後隨機改變該網路的一部分,從而對該網路應用離散突變運算(discrete mutation operaton)。

突變

突變運算僅隨機選取了網路的一部分並進行隨機改變。它可以是輸入解析度、模組數,或者模組內的層配置。

對新網路進行評估後,將其添加到當前網路群體中,刪除其中性能最差的一個。將這一過程重複 1000 次。每個模型經歷了 10000 次迭代訓練,由於速度很快,因此平均訓練時間為大約 1.5 小時。使用並行訓練後,搜索可在一天內完成。

實驗

研究者實施了以下實驗:

在 4 個數據集上對比 TVN 模型和當前最優結果。注意,之前的影片理解工作很少涉及演算法運行時,因此研究者額外添加了當前基準線方法及其運行時。對搜索空間添加不同約束,得到具備不同性能和運行時的 TVN。研究者嘗試擴展 TVN 以提升性能,同時維持原有的速度。

下表 1、2、3、4 分別展示了 TVN 在四個數據集上的性能。

表 1:TVN 和基準線模型 (2+1)D ResNets、當前最優結果 † (Monfort et al. 2018) 在 Moments-in-time 數據集上的性能對比情況。TVN 以部分計算成本實現了相似的性能。

表 2:TVN 與當前最優模型在 MLBYouTube (RGB-only) 數據集上的性能對比情況。

表 3:TVN 與當前最優模型在 Charades 數據集上的性能對比情況。

表 4:TVN 與當前最優結果在 HMDB (RGB-only) 數據集上的性能對比情況。

下圖 4 展示了多個模型的運行時和參數量對比情況。

圖 4:TVN 和其他模型的運行時(上)和模型參數量(下)對比情況。

為了確定時間資訊對性能的影響,研究者將 TVN-2 所用的幀數從 4 增加到 8 和 16。結果見下表 5:

研究者還發現,進化搜索比隨機搜索更有效(見下圖 5),因為該案例中的大型搜索空間包含很多性能差的網路。

圖 5:對影片網路搜索空間執行隨機搜索 vs 進化搜索。研究發現,進化搜索能夠更快地得到更好的模型。

研究者擴展了 TVN,進一步展示了模型性能。下表 6 對比了原版 TVN-1 和具備更高空間解析度、更大寬度(每一層中的卷積核大小)、更大深度(每個模組的重複次數)的 TVN 模型的性能。

表 6:在 Moments in Time 數據集上擴展 TVN 模型後得到的不同方法。

基於 EfficientNet 的研究發現,研究者從各個維度擴展了 TVN-1,如輸入解析度、寬度和深度。下表 7 對比了擴展後的網路和當前最優結果。TVN-1 EN 即為擴展後的 TVN-1 模型,它能夠獲得與規模更大模型相當的性能,且運行非常高效。

表 7:基於 EfficientNet 係數,在 MiT 數據集上擴展 TVN-1 模型,得到 TVN-1 EN,並與當前最優模型進行對比。

Tags: