作者 | 賈偉
昨天在華為開發者大會上,華為首席科學家陳雷發布的全場景AI計算框架MindSpore開源框架,引起業界廣泛關注,畢竟在短短一周之內,國內相繼湧現出計圖(Jittor,清華)、天元(MegEngine,曠視)、MindSpore(華為)三個深度學習開源框架,可謂「2020年是深度學習框架井噴的一年」。
但在昨天的大會中,華為發布的另一項重要計劃卻似乎受到了忽視,這是由田奇博士主導的 「華為計算視覺基礎研究進展暨華為視覺計劃發布」 。
田奇博士,計算機視覺領域的人士應該都不陌生,畢業於清華電工系,後赴伊利諾伊大學香檳分校,師從計算視覺之父 Thomas S.Huang 教授。在2018年加入華為之前,一直在德克薩斯大學聖安東尼奧分校任教,是2016年多媒體領域 10 大最具影響力的學者,並於當年入選IEEE Fellow。
田奇博士加入之後,華為諾亞方舟在計算機視覺領域的研究突飛猛進。以論文來講,ICCV 2019、CVPR 2019 分別有 19篇和29篇入選論文,CVPR 2020上更是多達 33 篇,且不論他們在類似ICLR、ICML這類篇算法的頂會上發表的論文。
在這次「研究進展&計劃發布」上,田奇博士將他們的研究內容梳理為三大方向,即
在此基礎上,他提出了華為諾亞的六大視覺計劃:數據冰山計劃、數據魔方計劃、模型摸高計劃、模型瘦身計劃、萬物預視計劃、虛實合一計劃。每個計劃聽著都很帶感,其中邏輯是什麼?各自代表了什麼?
田奇博士在演講中,將當下計算機視覺面臨的挑戰分為三大方向,分別為數據、模型和知識表達。(為什麼沒有算力?畢竟這不是做視覺的人所能決定的,對算力的考慮其實包含在模型裡面)
在信息時代,做計算機視覺其實面臨一個尷尬的事情,即網際網路上存在著海量的視覺數據,甚至已經遠遠超過了人類處理的極限;標註數據,無論規模多大,都只是視覺大數據中的「滄海一粟」。如何從海量數據中挖掘出有效的信息,依舊是一個很大的挑戰。
華為在這方面提出了兩個典型的場景,一是如何利用生成數據訓練模型;二是如何對齊多模態數據。
首先是生成數據,華為在這方面投入了大量的研究。具體來說,分為三部分。
第一,自動數據擴充。這個以發表在ICLR 2020 上的 「Adversarial AutoAugment」為代表,這篇文章針對以前NAS(例如 AutoAugment)做數據增強計算開銷大、policy是靜態的問題,借用 GAN 的「對抗」思想,引入了 adversarial loss,這樣一方面大大減少了訓練所需的時間;另一方面,可以認為policy generator 在不斷產生難樣本,從而能幫助分類器學到 robust features,從而學的更好。(ICLR 2020 | 巧妙思想,NAS與「對抗」結合,速率提高11倍 )
第二,利用GAN來模擬更多的數據。這個以發表在CVPR 2018 上的PTGAN 和 CSGAN 為代表。前者(「Person Transfer GAN to Bridge Domain Gap for Person Re-Identification」)是針對行人重識別問題的生成對抗網絡,使用GAN將一個數據集的行人遷移到另一個數據集當中。後者(「Compressed sensing using generative models」)是針對感知的GAN壓縮,換句話來說,即利用GAN來重構出「原始數據」,相比於其他的重構算法來講,CSGAN在更少的測量(可理解為採樣後的數據)情況下能夠重構出很好的原始數據。
第三,利用計算機圖形學技術來生成虛擬數據。這個以發表在CVPR 2019 上的「CRAVES: Controlling Robotic Arm with a Vision-based, Economic System」為代表。在CRAVES這篇工作中,他們設計了一套基於虛擬數據生成和域遷移的訓練流程,機械臂只需要藉助一個額外的攝像頭,便可以完成抓取骰子並放置在指定位置的任務。注意,這裡的數據是基於CG技術生成的,對機械臂的訓練完全不需要提供額外的監督數據。
田奇也介紹了他們在數據生成方面最近的一項工作,這是一項基於知識蒸餾與自動數據擴增結合的方法。我們知道,自動數據擴充(AutoAugment,以下簡寫為 AA)來源於對數據集的全局優化。對每個圖片,AA可能帶來圖像語義的混淆。
如左邊的圖所示,原圖是一隻狐狸;如果對它進行亮度變化,它看起來會更像一隻狗;如果對它進行反轉,這個時候看起來像一隻貓。因此在訓練模型的時候,如果仍然使用原來的硬標籤(「fox」)顯然是不合適的。
為了解決這個問題,華為提出了知識蒸餾的辦法,通過預訓練的模型,對AA的圖片,產生軟標籤,再用軟標籤指導圖形的訓練。上圖便是知識蒸餾後產生的軟標籤。
從結果上來看,這種知識蒸餾與自動數據擴增相結合的方法,在ImageNet上能夠取得85.8%的效果。
針對第二個場景,多模態數據,田奇博士認為多模態學習將成為未來計算機視覺領域的主流學習模式,因此非常重要,他們也將在這個領域進行重點布局。當前多模態學習面臨的挑戰包括:多模態信息表示,模態間的聯合映射,模態對齊,模態融合,多模態協同學習。
針對這方面的工作,即如何對齊多模態數據,田奇重點介紹了他們在ACM MM 2019 上獲得最佳論文提名的論文「Multimodal Dialog System: Generating Responses via Adaptive Decoders」。他們稱之為「魔術模型」,論文本身是針對電子商務場景,用戶在與機器克服對話過程中存在輸入文本或圖片的需求。他們針對這一問題,使用了一個統一的模型來編碼不同模態的信息,從而能夠根據上下文來反饋文字或圖片。
田奇博士提出,華為諾亞在視覺模型方面的主要研究在於如何設計出高效的神經網絡模型以及如何加速/小型化神經網絡計算。換句話來說,即模型如何更快、更小、更高效。
神經網絡模型的設計,最初都是手工設計,但現階段手工網絡模型設計已經進入了瓶頸期。而作為對應,從2017年開始,自動網絡架構搜索(NAS)迅猛發展,儘管只有三年時間,卻已經取得了可喜的進展。
田奇博士認為,NAS目前存在三大挑戰,分別為:1)搜索空間仍需人工經驗定義;2)待搜運算元需要人工設計;3)相較手工設計網絡,可遷移性較差。
田奇博士在這方面僅舉了他們的一個工作,發表在ICLR 2020 上的「PC-DARTS: Partial Channel Connections for Memory-Efficient Architecture Search」。PC-DARTS針對現有DARTS模型訓練時需要 large memory and computing 問題,提出了局部連接和邊正則化的技術,分別解決了網絡冗餘問題和局部連接帶來的不穩定性。這個模型能夠在性能無損的情況下,做到更快(與同類相比快一倍)。
針對如何加速神經網絡及模型小型化,田奇博士是這樣思考的。目前大的網絡模型發展如火如荼,但這樣的模型更適合配置在雲側,而無法適配端側。從2016年起,業界便開始探索模型加速和小型化的研究,也提出了大量小型化方案。但這些方案在實際中面臨著諸多問題,包括:1)低比特量化使得精度受限;2)混合比特網絡對硬體卻並不友好;3)新型運算元並沒有得到充分的驗證。
田奇博士同樣舉了他們最近的一項工作,是CVPR 2020 上的一篇 Oral:「AdderNet: Do We Really Need Multiplications in Deep Learning?」。在計算機中,浮點運算複雜度相比加法要高很多,但神經網絡中存在大量的乘法運算,這就限制了模型在移動設備上大規模使用的可能性。那麼是否能設計一種基於加法的網絡呢?華為的這篇文章正是對這一問題的回答,他們將卷積網絡中的乘法規則變成加法,並對網絡中的多種規則進行修改:1)使用曼哈頓距離(取代夾角距離)作為各層卷積核與輸入特徵之間輸出的計算方法;2)為AdderNet設計了一種改進的帶正則梯度的反向傳播算法;3)提出一種針對神經網絡每一層數量級不同的適應性學習率調整策略。實驗結果上表明,AdderNet能夠取得媲美於乘法網絡的效果,且在計算功耗上具有明顯的優勢。
田奇表示,華為的目標是打造下一代視覺感知的通用視覺模型,並把該算法遷移到下游任務進行模型復用。
那麼,何為「通用視覺模型」?其核心思想事實上就是如何表達並存儲知識。
田奇博士提出兩種場景。首先是目前比較熱的預訓練的方式,通過預訓練獲得的模型來表達和存儲知識;其次是通過虛擬環境,在基本不需要標註數據的情況下來學習知識。
針對預訓練模型,田奇博士提到了他們在CVPR 2019上發表的工作:「Iterative Reorganization with Weak Spatial Constraints: Solving Arbitrary Jigsaw Puzzles for Unsupervised Representation Learning」。這篇文章提出了一種適用於處理任意維度拼圖問題的自監督學習方法。
拼圖問題將無標籤圖像按網格分割為圖像塊,並打亂它們的順序,通過網絡恢復正確的圖像塊布局,來達到從無標籤圖像數據中學習語義信息的目的。這篇文章提出,以疊代的方式逐步調整圖像塊的順序直到收斂。在ImageNet上能夠取得非常好的性能。
深度學習大量依賴於可標註的數據,但是很多場景下,數據標註成本很高。同時,標註數據也存在一個致命的問題,即知識表達不準確——比如在自動駕駛中,我們有大量的標註信息,但這些標註數據是否真的「最適合」自動駕駛任務呢?此外,人類對外界的感知依賴於常識,而依賴於標註數據來訓練的模型則存在缺乏常識的問題。
針對這一問題,田奇博士提出了用虛擬場景構建虛擬場景來學習常識的方法。田奇博士舉了他們發表在CVPR 2019 的文章(CRAVES),主要是通過虛擬場景來訓練機械臂抓骰子。我們在前面已經提到,這裡就不再贅述。
延續以上提到的研究內容,田奇在隨後發布了「華為視覺計劃」。簡單來說包括六個子計劃:
與數據相關的:數據冰山計劃、數據魔方計劃;
與模型相關的:模型摸高計劃、模型瘦身計劃;
與知識相關的:萬物預視計劃、虛實合一計劃。
該計劃是為了解決數據標註瓶頸問題,讓數據生成真正代替手工標註。這裡包含三個子課題,分別為:
子課題一:數據生成質量拔高。即通過一到兩年時間,解決生成數據質量差和不真實的問題;
子課題二:數據生成點石成金。即設計數據自動挑選的算法,在海量的生成數據中,挑選高質量的數據;
子課題三:通用自動數據生成。即對不同的子任務設計不同的生成數據方式,讓數據生成具備普惠能力。
該計劃主要解決多模態數據量化、對齊和融合的問題,從而構建下一代智能視覺。包括構建多模態數據量化指標,從而全面評估性能;多模態數據對應策略研究;多模態數據融合方案等。
該計劃主要是構建雲側大模型,來刷新各類視覺任務的性能上限。同樣包括三個子課題:
子課題一:全空間網絡架構搜索。即突破神經網絡架構搜索空間受限的約束,搜索更多的範式、更多網絡空間結構的變化,讓神經網絡架構真正實現自動搜索;
子課題二:新型運算元搜索。即讓運算元的設計從手工復用到創造新的運算元;
子課題三:搜索模型普適能力的提升。目前搜索出的網絡泛化性能、抗攻擊性、遷移性都比較差,該子課題希望能夠提升網絡架構索索的這些性能。
開發端側小模型,助力各種晶片完成複雜推理,是一個重要的研究方向。華為在這個領域中的目標是,打造高效的端側視覺計算模型。該計劃包含三個子課題:
子課題一:自動搜索小型化網絡。即將硬體的約束融入自動設計中,使得算法能夠適配不同的硬體。
子課題二:一比特網絡量化。即設計一比特網絡,使一比特網絡能達到全精度網絡的性能,目標是追求極致的性能。
子課題三:構建新型加法網絡。即在卷積網絡中,用加法運算代替所有的乘法運算,同時與晶片計算相結合,探索高效計算的新路徑。
所謂萬物預視,即定義預訓練任務,構建通用視覺模型。具體做法是搜集大量公開無標籤的億級數量級的圖片,完成知識的抽取與整理。
該計劃的目標是在虛擬場景下,不通過標註數據,直接訓練智能行為本身。目前業界在這個領域的研究非常還有限。這裡涉及如何定義知識、如何構築虛擬場景、如何模擬用戶的真實行為、如何確保數據與智能體的安全等問題。雖然這個計劃極具挑戰性,但田奇認為這才是通向真正的人工智慧的道路。