SysML 2019 已於 3 月 31 日-4 月 2 日在史丹佛成功舉辦,本文將解讀兩篇在高效視訊分析方面的研究。
系統與機器學習會議(SysML)是一個非常新的會議(始於 2018 年),針對的是系統與機器學習的交叉領域。該會議的目標是引出這些領域之間的新聯絡,包括確定學習系統的最佳實踐和設計原理,以及為實際機器學習工作流程開發全新的學習方法和理論。
前言
隨著視訊攝像頭的日益普及,視訊分析也吸引到了很多研究關注。因為目標檢測和語義分割等大多數計算機視覺任務都需要密集的計算,所以有必要設計出在軟體開發和硬體實現方面都高效的系統。下面介紹兩篇遵循這些思想解決視訊分析問題的論文。
第一篇論文提出了 Filter-Forward,這是一種新的邊緣計算到雲端計算(edge-to-cloud)系統,能通過安裝僅回傳相關視訊幀的輕量級邊緣濾波器讓基於資料中心的應用有能力處理數千個攝像頭的內容。第二篇論文提出了 FixyNN,其包含一個用於生成通用的 CNN 特徵的固定權重的特徵提取器,還有一個用於處理特定資料集的 CNN 的典型的可程式設計 CNN 加速器。
宣告:本文的所有圖片和公式都來自於原論文。
論文1:Scaling Video Analytics on Constrained Edge Nodes
引言
為了有效實現交通流量監控和行人檢測等應用,需要解決兩個問題:視訊流是廣角的且相關資料稀少,而資料中心需要高解析度視訊流來進一步處理。在這篇論文中,研究者設計了一個名為 FilterForward(FF)的系統,能為廣域視訊處理提供邊緣計算和基於資料中心的方法的雙重優勢。FilterForward 引入了快速且表現力強的每應用(比如「向我傳送包含狗的序列」)「微分類器」(MC)來識別與資料中心應用最相關的視訊序列(過濾)並僅將匹配的事件傳輸給資料中心以便進一步分析(轉發)。
FilterForward 架構
大多數邊緣計算到雲端計算的視訊分析系統都面臨著三個關鍵挑戰:頻寬限制、檢測現實視訊中的微妙細節、支援許多併發應用。為了解決這些難題,FilterForward 為應用提供了將工作劃分成邊緣和雲兩部分的靈活性,即在邊緣利用高質量的資料為雲提供相關的視訊序列。圖 1 給出了 FilterForward 的整體架構。FilterForward 的兩個主要元件是特徵提取器和微分類器。
特徵提取器的輸入是實時的相機幀,並使用深度神經網路(DNN)提取一些常見的特徵。每應用微分類器共享特徵提取器,以在計算有限的邊緣節點上同時檢測數十個事件(就像語義濾波器)。微分類器是輕量級的二元分類神經網路,其以基礎 DNN 提取的特徵圖為輸入,輸出一個幀與一個特定應用相關的概率。FilterForward 能通過並行地評估許多微分類器來擴充套件到許多獨立的應用(比如找到狗或找到自行車)。
為了以不同方式解決廣角監控視訊的難題,研究者在這篇論文中提出了三種定製的微分類器架構:全幀目標檢測器(Full-frame Object Detector)、區域性化二元分類器(Localized Binary Classifier)以及視窗化的區域性化二元分類器(Windowed, Localized Binary Classifer);如圖 2 所示。一方面,這些設計可以操作來自各種基礎 DNN 層的啟用,以關注它們各自任務的適當特徵;另一方面,還可以選擇裁剪掉幀中不相關的區域。
全幀目標檢測器微分類器的建模方法跟隨了 SSD 和 Faster R-CNN 等滑動視窗式目標檢測器,其在卷積層特徵圖的每個位置都應用一個小型的二元分類 DNN,然後將檢測結果聚合起來得到全域性預測。
區域性化二元分類器微分類器包含兩個單獨的卷積層和一個全連線層,可以處理空間上裁剪的特徵圖,比如檢測區域性化區域內的突出目標(即,比如縮放到原始幀的一個區域)。
視窗化的區域性化二元分類器微分類器是對區域性化二元分類器微分類器的擴充套件,是為了通過指定 W 幀的時間視窗來整合臨近的時間背景資訊,從而提升每幀的準確度。
評估
FilterForward 系統的主要目標是在實現高過濾準確度的同時限制頻寬用量並可擴充套件到多個應用。研究表明,FilterForward 能夠通過在微分類器之間共享計算而在商用硬體上實現較高幀率,同時還能在兩個事件檢測任務上維持較高的事件級準確度。研究者在兩個真實世界的相機流資料集上進行了評估,結果表明 FilterForward 在高難度的視訊內容上能夠提升計算效率和事件檢測準確度,同時還能顯著降低網路頻寬的使用。
資料集
為了在真實世界的監控任務上評估所提出的 FilterForward 系統,研究者收集了兩組真實世界視訊。第一個資料集的視訊來自懷俄明州傑克遜霍爾的一個交通攝像頭(Jackson 資料集)。第二個資料集是來自一個城市街道的兩段三小時長的視訊(Roadway 資料集)。圖 3 給出了這些資料的細節。
以事件為中心的指標:事件 F1 分數
大多數分類指標都以每幀為基礎,而 FilterForward 則是以事件為中心的。研究者針對跨越多幀的事件採用了來自近期研究工作的一個修改版的召回(recall)指標。對於事件 i,所得到的 EventRecall_i 指標衡量的是兩個成功度度量:
Existence_i 獎勵的是至少檢測到一個事件的一幀
Overlap_i 獎勵的是檢測到一個事件的更大比例的幀
其中 R_i 和 P_i 分別是基本真值和預測的事件範圍。EventRecall 是 Existence 和 Overlap 的線性組合。作者選擇了 α = 0.9 和 β = 0.1 的配置,說明更看重檢測到每個事件的單幀。
與此同時,研究者還將標準的精度(預測的幀佔真正例中的比例)與修改過的 EventRecall 定義結合起來計算了一個事件 F1 分數——精度和召回的調和平均值,並在整個評估階段使用了這一指標。
節省廣域頻寬
FilterForward 的主要目標是節省邊緣計算到雲端計算的頻寬。圖 4 展示了在 Roadway 資料集上兩種微分類器架構(全幀二元分類器和區域性化二元分類器)的頻寬用量和事件 F1 分數,並對比了壓縮整個資料流的方法。對於這兩種微分類器,相比於高質量地將整個視訊流傳送回資料中心,FilterForward 可將網路頻寬降低接近一個數量級。
端到端的效能可擴充套件性
為了評估效能可擴充套件性以及展示微分類器的低邊際成本,作者對比了三種微分類器與另外兩種過濾技術:直接執行一個完全 DNN(MobileNet)的多個例項以及訓練專門的畫素級分類器。圖 5 展示了 FilterForward 的三種微分類器架構以及多 DNN 和 NoScope 式離散分類器(DC)的過濾吞吐量。離散分類器比通用型分類 DNN 速度更快,但成本比微分類器更高。
結果表明,當分類器的數量較低時(大約少於 4),離散分類器有更高的吞吐量,因為此時基礎 DNN 的成本在 FilterForward 佔主導。一旦 FilterForward 執行的微分類器數量大約 4,其計算共享的設計就能達到成本攤銷的突破點。而執行多個 DNN 一直都更加低效,並且在超過 35 個例項後就會耗盡記憶體。
為了進一步理解 FilterForward 的吞吐量可擴充套件性,研究者還衡量了基礎 DNN 和微分類器在每幀上所用的時間。圖 6 展示了三種新提出的微分類器架構的細分結果。在查詢較少時,基礎 DNN 的執行時間佔主要,這在意料之中。但即使增加數十個併發的微分類器,總的執行時間也只會適量增長。在最壞的情況下,基礎 DNN 的 CPU 時間基本等於 20 個微分類器的時間。
微分類器的成本和準確度
圖 7 展示了微分類器和離散分類器在兩個真實世界資料集上的準確度(使用事件 F1 分數)和計算成本(以乘法-加法的數量衡量)。實驗結果表明,微分類器的邊際成本比離散分類器低得多,並且還能實現更高的準確度。
總結
這篇論文解決的問題是:基於資料中心的應用需要高保真的視訊序列,而每個相機又只有有限的頻寬。通過設計一種混合式邊緣計算到雲端計算的 FilterForward 系統,微分類器可以在真實世界計算機視覺任務上實現更高準確度的同時降低計算成本。作者相信 FilterForward 的混合式邊緣計算到雲端計算設計能夠為迅猛發展的智慧攝像頭部署提供重要的構建模組。
但是,FilterForward 的原型版本還存在一些侷限性。首先,每個微分類器僅使用了單層的特徵圖。而某些分割任務需要來自多層的多個尺度的特徵,這還沒有得到解決。其次,對每個應用而言,找到選擇哪一層作為每個分類器的輸入對結果非常重要。而在這篇論文中,作者只是基於兩個簡單的啟發而人工選擇了一層,這方面還有改進空間。最後,和大多數邊緣計算系統一樣,FilterForward 可能存在中斷時間更長以及資料可能丟失或損壞的風險。
論文2:FixyNN-Efficient Hardware for Mobile Computer Vision via Transfer Learning
引言
目標檢測/跟蹤和語義分割等實時計算機視覺(CV)任務是人臉跟蹤和人體分割等移動計算應用的關鍵使能技術。但是,實時計算機視覺應用日益增長的準確度需求與移動裝置的功率限制之間存在一道能量效率的鴻溝。為了填平這道能效鴻溝,目前有兩大主要研究趨勢:MobileNet 等更高效的卷積神經網路(CNN)架構以及專用硬體加速器。
這篇論文設計的 FixyNN 是這兩個趨勢的融合,採用了硬體與 CNN 的聯合設計方法來實現基於移動裝置的 CV 應用的 CNN 推斷。FixyNN(如圖 1 所示)將 CNN 分成了兩部分。第一部分是為多個不同的任務或資料集生成常見的低層面 CNN 特徵。第二個部分提供特定於任務的 CNN 後端。然後,其前端層被實現成一種經過深度優化的固定權重的特徵提取器(FFE)硬體加速器,後端部分則因為特定於具體任務,需要在典型的可程式設計 CNN 硬體加速器上實現。
固定權重特徵提取器的硬體設計
在這篇論文中,FixyNN 結合了兩個專用硬體加速器:一個深度優化的固定權重特徵提取器(FFE)和一個更傳統的可程式設計 CNN 加速器。在硬體中固定權重方面有五項主要的優化:固定的移位加法縮放器、零開銷權重剪枝、經過優化的中間精度、零 DRAM 頻寬、最小啟用儲存。固定全並行的、全流水線式的 FFE 加速器中卷積(CONV)層的權重能為 FFE 實現很多激進的硬體優化,使其在吞吐量和能效方面優於傳統的可程式設計加速器。FFE 的硬體設計可以描述為以下三個層級:
1.完全並行式固定權重 CNN 資料路徑:如圖 2 所示,每個卷積層的計算都可實現為扁平的、全並行的、經過剪枝的固定權重算術邏輯層級。替代乘法器的固定縮放器是由綜合工具(synthesis tool)生成的,而權重的嵌入方式則與 Verilog 硬體描述語言(HDL)完全一樣。在卷積層之後的是批歸一化、ReLU 和量化運算元。
2.全流水線式 CNN 緩衝:傳統的可程式設計 CNN 加速器通常是通過將卷積轉換成通用矩陣乘法(GEMM)來以序列方式計算 CNN;相對而言,FFE 是使用全流水線式的 CONV 層實現本地卷積。圖 3 給出了一個核大小為 3×3 的簡單卷積層的全流水線式排布概況。這個緩衝功能是使用一個 SRAM 行緩衝器(line buffer)實現的,其中逐行儲存了每一層的啟用,直到達到所需的張量大小。在 SRAM 行緩衝器之後是一個基於觸發器(flip-flop)的移位暫存器,可使得卷積視窗在特徵圖上有效地移動,而無需重新讀取資料。
3.DeepFreeze 工具流程:研究者開發了一個名為 DeepFreeze 的開源工具來幫助實現可能帶有數百萬個硬編碼的權重的 FFE 加速器。給定一個標準機器學習軟體框架(比如 TensorFlow)匯出的模型,DeepFreeze 工具流程能夠為一組特定的層生成 Verilog HDL 程式碼等固定的 CNN 硬體加速器設計,如圖 4 所示。
實驗結果
為了評估 FixyNN,研究者執行了硬體建模與遷移學習實驗。硬體建模部分是比較 FixyNN 與當前最佳的硬體加速器設計的硬體效能。另一方面,為了展示固定特徵提取器方法的泛化能力,研究者設計了兩組包含一系列任務的實驗,其分別使用了 MobileNetV1-0.25 和 MobileNetV1-1.0 來執行。MobileNetV1 首先在 ImageNet 資料集上進行了訓練,然後在遷移到其它視覺任務。
硬體
FixyNN 包含兩個硬體元件:FFE 和可程式設計的 CNN 加速器。其中 FFE 使用 DeepFreeze 工具流程生成。可程式設計加速器基於在英偉達深度學習加速器(NVDLA)上發表的結果,這是一種當前最佳的開源的神經網路加速器,使用了 Verilog RTL 進行硬體實現,使用了 TLM SystemC 模擬模型進行軟體開發、系統整合和測試。表 1 給出了硬體資源六種標稱配置的已發表的 NVDLA 效能結果。
首先,研究者比較了 FFE 和可程式設計 NVDLA 加速器在 MobileNet-0.25 的 13 層中每一層上的吞吐量(TOPS)和能效(TOPS/W),如圖 5 所示。很明顯,FFE 在所有方面都優於 NVDLA,在 TOPS 和 TOPS/W 上分別實現了 8.3 和 68.5 倍的提升。
但是,FFE 所需的矽面積實際上會對層的數量帶來限制。圖 6 給出了在使用不同大小的 MobileNet 網路時,FFE 的面積隨固定層的數量的變化情況。因此 FixyNN 的關鍵點是平衡 FFE 和可程式設計加速器之間的層分佈,從而在給定矽面積約束的條件下最大化能效和泛化能力。
在演示了固定特徵提取器在單個個體層上的優勢之後,研究者又展示了實際的 FixyNN 系統。類似地,其基線是一個沒有固定層的完全可程式設計 NVDLA 加速器,其代表了當前最佳。
在吞吐量方面(圖 7a),在預算面積小時,基線 NVDLA 的表現優於 FixyNN,因為此時 FFE 嚴重受制於可程式設計 NVDLA 的瓶頸。但是在預算面積更大時,FixyNN 可以固定更多層,在吞吐量上獲得更大增益。而在能效方面(圖 7b),由於資料複用和其它分攤的增加,基線 NVDLA 一開始能很好地隨面積擴充套件,但隨著在利用記憶體頻寬方面的限制出現,增益會出現飽和(甚至回落)。由於 FFE 能效出色,當從 NVDLA 向 FFE 轉移的負載增多時,能效也會隨之提升。
表 2 展示了在不同的設計條件下,圖 7 的設計空間中的帕累托最優 FixyNN 配置。
此外,這篇論文還調查了在面積預算為 2-3 mm²(有 11 個固定層和 NVDLA 配置 C)時能效最優的配置。圖 8 給出了 FFE 和可程式設計 NVDLA 之間的功率、效能和麵積(PPA)細分結果。圖中表明固定的資料路徑佔據了較大部分的面積和網路中較多的運算,但卻僅佔消耗能量和延遲的一小部分。
模型準確度
表 3 給出了在 MobileNet-0.25 上使用 FFE 的第一組遷移學習實驗結果。MobileNet-0.25 首先在 ImageNet 上經過訓練,然後再遷移到六個不同的視覺任務(CIFAR100、CIFAR10、SVHN、 Flwr、Airc 和 GTSR)。該網路中有更高的比例是固定的,也使用了更大的 FFE。第一行有 0 個固定層的結果是基線結果。
表 4 給出了 MobileNet-1.0 的遷移學習準確度,它也首先在 ImageNet 上進行了訓練,然後再遷移到 CIFAR-100。可以觀察到其遷移學習準確度損失有類似的趨勢。整體而言,這裡的準確度比上面的更高,因為 MobileNet-1.0 模型本身能力更強。固定網路的前 11 個卷積層並使用自適應批歸一化(BN)只讓準確度下降了 1.6%。
總結
由於基於深度學習的模型計算量很大,傳統的移動系統晶片(SoC)無法達到流暢執行深度學習模型所需要的效能。而目前市面上已有的硬體加速方案主要有(1)GPU:計算效率高,但功耗太大,價格昂貴;(2)FPGA:功耗低,但單顆效能低、導致總體價效比低,另外從業人員少,大規模開發難度高;(3)ASIC:效率能耗比,但不可更改任務,從而增大了普及難度。
這篇論文提出的 FixyNN 是一種更緊密整合計算機系統和機器學習的解決方案。通過將 DNN 分成兩部分,一部分使用高度定製的硬體來提取 CNN 特徵,另一部分是可程式設計的,使用遷移學習泛化到不同的計算機視覺任務,FixyNN 有能力實現能效的最優平衡。實驗評估表明,FixyNN 硬體可以實現比 iso-area 可程式設計加速器更好的能效。
本文作者為機器之心特邀技術分析師 Andy Xiong,他熱愛人工智慧和計算神經科學領域,樂觀相信深度強化學習能幫助人類更接近實現通用人工智慧。目前從事計算機視覺、圖形學相關工作,歡迎交流。