7月12日-7月14日,2019第四屆全球人工智慧與機器人峰會(CCF-GAIR 2019)於深圳正式召開。
峰會由中國計算機學會(CCF)主辦,雷鋒網、香港中文大學(深圳)承辦,深圳市人工智慧與機器人研究院協辦,得到了深圳市政府的大力指導,是國內人工智慧和機器人學術界、工業界及投資界三大領域的頂級交流博覽盛會,旨在打造國內人工智慧領域極具實力的跨界交流合作平臺。
7月14日,「智慧城市·視覺智能」專場正式拉開帷幕,本專場全面圍繞「未來城市級視覺AI的發展方向」這一主題展開。
會上,曠視首席科學家、研究院院長、西安交通大學人工智慧學院院長孫劍帶來了題為《深度學習變革視覺計算》的精彩分享。
孫劍從視覺智能、計算機攝影學以及AI計算3個方面介紹了計算機視覺研究領域的變革。
他首先回顧了深度學習發展歷史,深度學習發展到今天並不容易,過程中遇到了兩個主要障礙:
第一,深度神經網絡能否很好地被訓練。在深度學習獲得成功之前曾被很多人懷疑,相比傳統的機器學習理論,深度學習神經網絡的參數要比數據大10倍甚至上百倍;
第二,當時的訓練過程非常不穩定,論文即使給出了神經網絡訓練方法,其他研究者也很難把結果復現出來。
這些障礙直到2012年才開始慢慢被解除。
孫劍認為,深度學習和傳統機器學習最大的差別是,隨著數據量越來越大,使用更大的神經網絡就有可能超越人類性能。
而具體到計算平臺上,目前包括雲、端、芯上的很多硬體上都可以部署智能,技術發展趨勢是如何自適應地根據計算平臺做自動模型設計。在這方面,曠視提出了Single Path One-Shot NAS的模型搜索新方法,它分為兩步:
第一步是訓練一個SuperNet,是一個超網絡,包含我們想搜索的子網絡,先訓SuperNet所有的權重;
第二步是搜索Sub-Nets子網絡,好處是第二步不需要訓練,非常高效。整個模型搜索時間只是正常訓練時間的1.5-2倍,但可以得到非常好的效果。目前在多個測試集上得到了領先的結果。
此外,為了構建核心技術,曠視還打造了自研的人工智慧框架Brain++,包括具備多中心、強大算力的Brain++ Infrastructure,公司全員使用的深度學習引擎Brain++ Engine,以及整合最新模型搜索的AutoML技術;同時,曠視還有人工智慧數據標註和管理平臺Data++,藉助算法輔助數據清洗和標註。
曠視首席科學家、研究院院長、西安交通大學人工智慧學院院長孫劍
以下是孫劍博士大會現場演講內容,雷鋒網作了不改變原意的整理及編輯:
孫劍:謝謝大家,今天非常高興來到本次盛會,會議的火爆程度比去年高很多。這次Talk的主題是回顧深度學習對計算機視覺研究帶來的變化。
我們知道,計算機視覺在人工智慧裡佔有非常重要的地位。人工智慧可分為感知、認知兩大部分,語音、自然語言、視覺是人工智慧的三大支柱。我用不同的顏色表示不同方向的技術突破和落地程度。
曠視成立之初一直致力於計算機視覺研究,其發展如此興盛的原因與我們周圍存在的海量攝像頭有關。
我們知道,攝像頭作為一種重要載體,有非常多的應用場景,這也是今天計算機視覺領域有非常多公司的原因之一。
今天的分享主要分為三個方面,這也是深度學習引入計算機視覺後,對我們的研究帶來的三大變革:
Marvin Minsky是人工智慧領域的奠基者。他在研究人工智慧之初,曾研究一個計算機視覺問題:將一個攝像頭對著一堆積木用機械臂去抓取,以及讓機器堆放的和人擺放的一樣。
他招了幾個實習生希望能在幾個月就完成這個項目,但是幾年後都沒有太大進展。這說明計算機視覺是個非常難的課題。
計算機視覺研究雖然場景很多,至今可以歸類為幾個問題:分類、檢測、分割以及將前三者用於視頻序列的識別工作。
計算機視覺尤其是語義理解核心是如何在計算機中表示一張照片,以至於可以操作它、理解它,用它做各種各樣的應用。最早期的研究包括David Marr提出的 2.5D Sketch, 和Part-base的表示。
90年代的神經網絡主要用來做做字符識別、人臉檢測。2000年左右,類似Boosting的機器學習方法第一次引入學習特徵。
2000年後最好的方法是Feature-base,從一張圖中抽取很多局部的特徵,編碼成一個非常長的向量。2010年深度學習後,神經網絡給我們帶來了更強大的視覺表示方法。
深度神經網絡有兩個特徵:
首先,它是對一張圖片做映射,映射到一個高維空間的向量上;它由非常長的非線性變換組成,進來的信號進行多次非線性變換,直到人們得到想要的圖像表示。
第二,這個非線性變換中的所有參數都是根據監督信號全自動學習的,不需要人工設計。
這是一個可視化工作,展示了神經網絡在前面一些層學到了類似邊緣、角點或紋理等初級模式,在後面一些層學到越來越多的語義模式例如物體或物體部分。整體學到了分層結構的表示。
深度學習走到今天經歷了很多的坎坷,直到2010年才重新佔據了統治性地位,發展過程中主要遇到了兩個障礙:
這兩個障礙直到2012年開始慢慢地被解除。
從2012年AlexNet,一個8 Layers的神經網絡,後來有VGG, 一個19 Layers的神經網絡,到了2015年,我們提出了152 Layers的神經網絡。隨著網絡層數的增加與數據的增多,我們第一次在ImageNet數據集上讓機器超越了人類。
從ImageNet數據集建立,到打破人類的性能大概用了5-6年時間。我想當初李飛飛教授團隊完全沒有想像到可以這麼快,機器的能力超過人的能力。
我們當時做152 Layers網絡經常被問一個問題:為什麼這個網絡是152 Layers?我們的預設的回答是當時內存就可以裝這麼多層。
去年一個朋友給了一個更好的答案:8乘以19等於152。AlexNet是8層,VGG網絡是19層,所以ResNet是152層。
ResNet的核心思想是加入跳層連接,不要學習直接的映射而是學習殘差映射,這樣非常有利於訓練或優化。
ResNet出來後,同行給了各種各樣的解釋。這是我比較相信的解釋:而非ResNet很容易表示0映射,即輸入信號和輸出很接近0;而ResNet很容易表示Identity映射,即輸入信號和輸出很接近,直觀的理解是當一個網絡非常深時,相鄰的變化越來越小。這種參數化的形式更利於學習,以至於我們神經網絡的優化更容易。
這裡列出深度學習之前遇到的很多困難:
數據、計算力不夠;
如何初始化網絡的方式;
如何使用非線性單元等。
ResNet補充了一點:網絡結構應當對優化更友好。綜合這些在深度學習方面的各種進展,今天每個人都可以很好地重現結果,做出高度可重複的實驗。
深度學習的映射能力非常強大,ResNet去年被用到AlphaGo Zero 中,他們用一個40或者80 Layers的ResNet,來預測棋子應該放置的位置。下棋這麼複雜的映射都可以被一個簡單的ResNet很好地學到,說明了其映射能力之強。
在實際過程中,在有監督學習問題上,深度學習和傳統機器學習最大的差別在於:隨著數據量越來越大,如果用更大的網絡,很有可能超越人類的性能。
曠視第一個雲服務的產品——Faceplusplus.com,提供了各種計算機視覺API,服務了全世界的開發者。
我們另一個產品是FaceID.com,它是目前最大的第三方身份認證平臺,由於它遠超人類的能力,目前服務於包括網際網路金融、銀行客服、交通出行等領域。
上述討論的產品主要應用在雲上,不用太考慮計算速度和神經網絡的大小。雲端模型的目標是突破認知邊界,看我們能做得多好。
但是在線下場景,很多應用需要在移動端或手機上運行。在移動端這個計算平臺上,有兩個代表性的神經網絡設計可以參考:
一個是Google的MobileNet系列;
一個是曠視ShuffleNet系列。
ShuffleNet有V1和V2版本,核心是提出了一套設計原理:比如讓卷積更平衡;儘量不要產生分支;降低整體結構的碎片化,避免逐元素操作。
我們的ShuffleNet V2設計性能非常出色。這是Google AI團隊給出評測報告,他們評測ShuffleNet V2在實際運行速度上經常比MobileNet V2快30-50%。
由此曠視助力國內全部一線手機廠商,做出了第一款2D人臉解鎖手機、第一款3D結構光人臉識別解鎖手機、第一款紅外人臉解鎖手機等。
隨著端上對功耗要求更低、面積體積更小,所以需要進一步研究如何把神經網絡在晶片上高效運行。
因此出現了以低比特表示為代表的一系列工作,包括DorefaNet(曠視首先提出),在低比特運算方面,這是第一個提出將權重、激活向量、和梯度都進行低比特化的工作。
在晶片上,比計算最大的問題是內存訪問帶寬受限,需要內存訪問量很大程度壓下去,才可能高效運行。
這是我們在2017年推出的第一款基於FPGA的智能相機,我們把DorefaNet放在智能相機裡。
2018年,我們把DorefaNet放在了一顆我們與合作夥伴聯合研發的ASIC晶片上,提供了比FPGA高非常多的性能。
它不但可以用在手機上,還能用在實時的自動化場景中,用來搬運貨架或物品,它有兩個攝像頭,朝下和朝前看,分別做車的導航和避障,類似室內無人車。
攝像頭是機械臂的眼睛,它在搬運物體需要實時識別箱子在哪裡,在哪裡抓取箱子。在自動化流程過程中需要高效、高速地在端上做智能計算。
用了這些晶片的計算方法,可以應用到非常多的智能硬體上。這張圖是都是曠視自研的硬體。
在神經網絡設計的最新研究方面,目前很熱的趨勢叫AutoML或者NAS。這是一個很好的網站(automl.org),大家可以在這裡看最新的文章。
NAS的問題核心是解一個嵌套的權重訓練問題和網絡結構搜索問題。
這個問題非常難,需要非常大的計算量。最早Google用增強學習或演化計算方法降低計算量,但計算量依然非常大。
最新流行的方式是用權重分享的方式,比如用Darts或ProxyLess等工作。我們曠視今年年初推出了Single Path One-Shot的新方法,分為兩步:
第一步是訓練一個SuperNet,這是一個超大的網絡,任何子網絡是我們想搜索的網絡。我們先訓SuperNet所有的權重;
第二步是做對SuperNet採樣其中的子網絡,好處是這一步不需要訓練,非常高效,訓練時間是正常訓練時間的1.5-2倍,可以得到非常好的效果。目前在多個測試集上得到了最好效果。
我們的方法不但可以做圖像分類,也可以做物體檢測。
我們的方法還可以用來做模型簡化(Pruning),同樣可以用SuperNet的方法,先訓一個PruningNet,它相當於一個SuperNet,由PruningNet生成很多子網絡,得到很多很好的Pruning的效果。
以上是今天的第一部分,說的是視覺智能,我們從Feature的功能化定義,到走向模型的設計,再走到現在的模型搜索。
第二部分,我想分享以前做了很多年的研究方向——計算攝影學。除了計算智能,計算機視覺中還有一個問題是給輸入一個圖像,輸出是另一個圖像。從輸入質量比較差的圖像(比如模糊、有噪聲、光照不好)恢復更好的圖像,這就是計算攝影學,也是目前研究很活躍的方向。
計算攝影學以前是怎麼做的?這篇(上圖)是我們2009年的Dehaze去霧,引入黑通道先驗並結合霧的物理產生過程來恢復沒有霧的圖像,效果非常好,並獲得了CVPR 2009最佳論文。
這是我們以前和同事一起做的(上圖),如何從一張模糊圖像和噪聲圖像恢復成清晰的圖像,這裡用了很多傳統的反卷積方法。
這是另一問題,被稱為圖像摳圖:左邊是輸入,右邊是輸出,目的是把前景精細分離出來。
這是我和今天第一位講者賈佳亞教授當年聯合做的一篇文章(上圖)。
這是我和賈佳亞合作的第二篇文章(左上圖)。一張圖上缺失一部分或者想移除一個人,我們通過交互的方法,上面畫一些線;後來我們又利用Patch自然統計的方法,能夠做的更好。
總結一下傳統的計算攝影學方法:「八仙過海」,每個問題需要尋找不同的假設,每個問題都要單獨的去建模和求解。
不同的研究員有不同的方法,好處是你有能力的話可以做出非常有意思的方法,壞處是每一個方法都要獨立設計。
今天的深度學習的方法是拋棄了以前的做法,不需要做任何顯式的假設,通過全卷積的Encoder-Decoder輸出想要的圖像。
舉個例子,關於Image Matting問題,今天的方法是:通過一個多任務的網絡,可以直接輸出Matting的結果,非常細的毛髮都能提取出來。我們的工作在圖像Matting最大的兩個benchmark上都排名第一。
Matting不光可以做圖像合成,它還可以用單攝像頭就拍出像單反一樣的效果。
還有一個變革是這對相機裡面的圖像信號處理器ISP(Image Signal Processor), 上面是傳統的圖像ISP和圖像信號處理流程,後面是AI-ISP,用一個神經網絡來做。
左邊是之前,右邊是之後,AI-ISP可以得到非常好的降噪效果和高質量的圖像。
這個方法獲得了今年CVPR圖像降噪的冠軍,同時我們將這個方法應用在OPPO今年最新的旗艦手機OPPO Reno 10倍變焦版的夜攝超畫質拍攝技術上。
最後我想分享我們在計算上的變革。
左邊傳統的馮諾伊曼計算架構,服務了我們很多年。但隨著數據的日益增大,出現了「馮諾伊曼瓶頸」,指內存和計算單元之間搬運數據的瓶頸。
右邊是今天神經網絡做訓練、推理的方法,它突破了這個瓶頸。因為神經網絡計算非常簡單,基本上只包含向量和矩陣之間的操作,可以避免很多判斷和分支,用大規模並行的計算方式消除瓶頸。
雖然摩爾定律慢慢消失了,AI計算能力反而在超指數增長,從2016年10 TFLOPS的算力,現在到幾百的TFLOPS。
前期帶來的變化是從以前的大規模計算CPU Cloud(大盒子)遷移到了 GPU Box(小盒子)。但是大概2015年後,大家發現這些小盒子也不行,因為我們現在用更大的模型,我們今天在ImageNet上的模型比我們2015年用的大10倍都不止。另外,很多人一起工作時的每人一個小盒子的效率是非常低效的。
在模型大小方面,物體識別目前最權威的比賽是COCO,2017年我們得到了3項冠軍,隨著我們更大的模型,效果越來越好。2018年我們有更大的模型,拿下了4項COCO冠軍。
這麼大的模型,在一個小盒子裡是不行的。2018年我們提出一個方法MegDet,結論是你可以用多個計算單元,可以把訓練速度非常高效的提高,幾乎是線性速度的加速,性能更好,這是模型的變化,是第一個方面。
數據的話也會越來越大,這是曠視和北京智源人工智慧研究院共同推出的Objects365,第一階段開源超過1000萬的標註框,這是目前世界上最大的檢測數據集,不光是數據大,可以真正學到更好的Feature,這是第二方面。
第三方面,如果你的數據非常大無法放在小盒子裡,必須放在中心。帶來的問題是,如果我們同時訓練,傳輸是很大的問題,
於是,在2015年之後,我們又從小盒子又回到大盒子,但這個大盒子是是GPU或者TPU Cloud。
為了做這件事,曠視自研了我們的AI平臺Brain++,底層是物理算力,上面有Engine、Computing,Data,和AutoML。
這個Brain++ Engine是我們自研的深度學習引擎,之前大家用最多的是Caffe、TessorFlow、Pytorch,曠視從2014年研發Brain++ Engine,到現在曠視全員使用已經的版本已經是7.0版本。
據我所知,曠視是所有創業公司中唯一一家自研深度學習引擎並且全員使用的公司。引擎之下是計算環境,包括硬體管理,包括計算存儲管理、模型訓練支持等。
最後是自動模型搜索,也是在我們引擎中。它需要用大算力才可以把最好的模型搜索出來。
以上是我今天的分享,謝謝大家!雷鋒網(公眾號:雷鋒網)
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。