爲什麼深度學習幾乎成了計算機視覺研究的標配?

本文轉載自:https://zhuanlan.zhihu.com/p/21533690

本次CVPR 2016上,深度學習幾乎成了如今計算機視覺研究的標配,人臉識別、圖像識別、視頻識別、行人檢測、大規模場景識別的相關論文裏都用到了深度學習的方法,加上Google,Facebook這樣的大企業助力,很多人疑惑,爲什麼深度學習相比其它的AI實現方法,已然呈現出一副碾壓之態?

本期硬創公開課嘉賓我們邀請了商湯科技執行研發總監曹旭東,其剛從CVPR 2016現場趕回來,正好在這裏爲大家解釋一下爲什麼深度學習幾乎成了計算機視覺研究的標配這個問題。以及爲大家講解CV和深度學習的現狀和未來趨勢。

曹旭東,商湯科技執行研發總監,深度學習專家。畢業於清華大學。前微軟亞洲研究院副研究員,負責研發的人臉算法曾用於微軟Xbox、How-old等知名產品,現象級產品How Old.net有數億用戶。在CVPR/ICCV/ECCV等計算機視覺頂級會議發表論文十餘篇,其中三篇CVPR論文和兩篇ICCV論文獲得口頭報告榮譽(接收率小5%)。

基於深度學習的物體檢測

Q:目前的深度學習用於目標檢測中有什麼優點和缺點?

首先簡單介紹一下傳統物體檢測的方法和基於深度學習的物體檢測方法。

傳統方法使用滑動窗口的框架,把一張圖分解成幾百萬個不同位置不同尺度的子窗口,針對每一個窗口使用分類器判斷是否包含目標物體。傳統方法針對不同的類別的物體,一般會設計不同的特徵和分類算法,比如人臉檢測的經典算法是Harr特徵+Adaboosting分類器;行人檢測的經典算法是HOG(histogram of gradients) + Support Vector Machine;一般性物體的檢測的話是HOG的特徵加上DPM(deformable part model)的算法。

基於深度學習的物體檢測的經典算法是RCNN系列: RCNN,fast RCNN (Ross Girshick),faster RCNN (少卿、凱明、孫劍、Ross)。這三個工作的核心思想是分別是:使用更好的CNN模型判斷候選區域的類別;複用預計算的sharing feature map加快模型訓練和物體檢測的速度;進一步使用sharing feature map大幅提高計算候選區域的速度。其實基於深度學習的物體檢測也可以看成對海量滑動窗口分類,只是用全卷積的方式。

RCNN系列算法還是將物體檢測分爲兩個步驟。現在還有一些工作是端到端(end-to-end)的物體檢測,比如說YOLO(You Only Look Once: Unified, Real-Time Object Detection)和SSD(SSD: Single Shot MultiBox Detector)這樣的算法。這兩個算法號稱和faster RCNN精度相似但速度更快。物體檢測正負樣本極端非均衡,two-stage cascade可以更好的應對非均衡。端到端學習是否可以超越faster RCNN還需要更多研究實驗。

深度學習爲何成爲CV研究的標配

Q:針對本屆大會深度學習幾乎成了如今計算機視覺研究的標配,法國 Inria 研究所的研究員 Nikos Paragios 在 LinkedIn 撰文表示了擔憂,似乎過於單一了,對這個有什麼看法?

先回答深度學習爲什麼會成爲現在計算機視覺標配的方法。

首先,最重要的原因是深度學習可以做到傳統方法無法企及的精度,這是關鍵中的關鍵,如果說這個優點是1的話,其它的優點都是1後面的0。深度學習革命爆發在2011~2012年,11年的時候在語音識別領域有重大突破,12年的時候在圖像識別領域有重大突破。深度學習革命,使得計算機視覺在很多應用領域達到了實用水平,催生了工業界的大量應用。這也是爲什麼在11年前,機器視覺&人工智能的博士生都是找不到工作的,但是12年之後,尤其是現在,都變成了被衆多公司高薪爭奪的寶貝。

另外深度學習成爲標配,還有其它的優點。

第一,深度學習算法的通用性很強,剛纔提到的檢測,在傳統算法裏面,針對不同的物體需要定製化不同的算法。相比來看,基於深度學習的算法更加通用,比如faster RCNN在人臉、行人、一般物體檢測任務上都可以取得非常好的效果。


第二,深度學習獲得的特徵(feature)有很強的遷移能力。所謂特徵遷移能力,指的是在A任務上學習到一些特徵,在B任務上使用也可以獲得非常好的效果。例如在ImageNet(物體爲主)上學習到的特徵在場景分類任務上也能取得非常好的效果。


第三, 工程開發、優化、維護成本低。深度學習計算主要是卷積和矩陣乘,針對這種計算優化,所有深度學習算法都可以提升性能。另外,通過組合現有的層(layer),我們可以實現大量複雜網絡結構和一些算法,開發維護的成本低。想想同時開發、維護Boosting,Random Forest等算法是非常痛苦的一件事情。

再回答深度學習過於單一的問題。

深度學習過於單一的說法,我覺得是不準確的。就好比說一個包容萬象的宇宙過於單一了。

簡單來說,機器學習就是學習輸入到輸出的一個映射,傳統方法使用淺層的簡單映射,現在深度學習是多層的複合映射。深度學習有很多的自由度,學習目標和學習方法有很多種選擇,網絡結構層與層之間有無數的可能連接方式,每一層映射的具體形式到底是卷積,還是全連接,還是其它的形式,並沒有限制,其實除了全連接和卷積之外,還可以用其它的映射形式,比如說去年ICCV上的一個工作:微軟研究院用Random Forest做爲新的映射形式。

深度學習技術樹

Q: 商湯科技CVPR2016送選論文重點介紹了四篇論文《物體分割》《服飾識別搜索技術》《行爲識別和定位》《人臉檢測中級聯卷積神經網絡的聯合訓練》,這4篇有何重要意義?這與你們目前的業務側重點有何關係?

深度學習的技術框架是一棵樹形結構。

訓練平臺是樹根,如caffe、tensorflow等。現在深度學習還處於實驗科學階段,實驗效率很大程度上決定着研發效率,好的訓練平臺可以把實驗週期從一個月縮短到一天,對於深度學習研發非常重要。

模型是樹幹。自06年提出深度學習概念,學術界花了六年時間才認識到模型結構的研究纔是深度學習的重點。典型的成果有AlexNet、VGGNet、GoogleNet、ResNet等。學術界大家主要研究怎麼把模型做的精度更好。在工業界我們還要考慮怎麼把模型做得更快,更小。

在樹幹上有幾個主幹的枝丫,對應着計算機視覺裏的核心任務,包括了檢測、識別、分割、特徵點定位、序列學習等五個大的任務,任何計算機視覺的具體的應用都可以由這五個任務組合而成。以人臉識別爲例,人臉識別要完成整個流程,要涉及到人臉的檢測、特徵點定位,特徵的提取&驗證。這就包含了檢測、特徵點定位和識別三個部分。

我們在剛纔提到的那五個重要的主幹方向其實都投入了非常大的研究力量,一方面是保證我們在學術界的前沿有所突破,另一方面,針對我們一些重要應用也開發出了一整套與學術界並行的方法,能夠做到十倍的加速和百倍模型的壓縮,同時保持很好的精度。這個問題中提到的四篇論文主要是我們在這五個計算機視覺的核心任務上取得的一些研究方向的成果。其實我們除了在研究方向成果之外在工業實用方面有更大、更多的成果,比如我們的人臉檢測在做到學術界最好結果的同時能做到300FPS的速度。人臉特徵點的定位超過學術界最好結果的同時,做到3000FPS的速度。在學術界公開的論文中,我還沒有看到這樣的性能。

Q:在《物體分割》這篇文章中(作者石建萍)主要解決的問題是 instance segmentation(也稱爲Simultaneous Detection and Segmentation)。Instance segmentation 最近逐漸成爲一個新的熱點問題。它要解決的問題是檢測(Object Detection)和語義分割(Semantic Segmentation)綜合的一個問題。比起檢測,需要得到物體更精確的邊界信息;比起語義分割,需要區分不同的物體個體。

檢測好懂,現在都強調從2D檢測升級到3D,4D的深度檢測;語義分割一直在做的都是區分不同的物體個體,那麼現在的語義分割與之前的區別是什麼?是不是指語義分割要上升到結合場景的語義理解?

在深度學習領域有一個簡單但又非常通用的原理。在學習時,指導信息越豐富、越精細,學習的效果一般來說也會越好。

舉個簡單的例子,在數據量充足的情況下,如果我對我圖像類別的標註僅僅是動物、植物、場景的話,學習出來的模型和特徵可能一般。但是如果把這些類別標記細化,比如最開始有十類數據,我們把它細化到一千類,例如把狗分成斑點狗、鬥牛犬等,把貓分成波斯貓、大花貓等,通常來說可以學習到更好的模型和更加好的特徵。

另一個例子是物體檢測,如果在bounding box的基礎上增加額外的監督信息通長會得到更好的結果。比如標註出人臉的眼睛、鼻子、嘴的位置,人臉的角度,種族性別男女等屬性,做成一個多任務學習的算法的話,通常來說能得到更好的效果。

兩個代表性工作可以參考:Joint cascade face detection and alignment,Facial landmark detection by deep multi-task learning。

有時候多個標註/任務是並列關係,可以通過Multi-Task Learning的框架來學習。另外一些情況,多個任務是遞進關係,前一個任務的結果可以幫助後一個任務,例如將每一個人都獨立的檢測出來之後再分割每個人身體的Mask。合理利用這種遞進關係,可以得到比並列關係更好的結果,這其實就是Instance segmentation的核心思想。因爲同傳統語義分割不同的是,傳統語義分割只需要對物體類別進行分類,不需要區分不同的個體。物體分割(Instance segmentation)是既需要區分類別,又需要區分同一物體的個體,所以深度學習的網絡需要學習到比之前語義分割任務更多的信息。這方面微軟亞洲研究院的戴繼峯做了非常開創性的工作。我們商湯科技石建萍高級研究員的工作也非常有創建性。通過多尺度局部區域融合的方法,端到端的實現了instance segmentation 物體類別與區分統一類別不同個體的信息。

計算機視覺黑科技

Q:最近CV的應用出現了一些黑科技,比如MIT給機器“看電視劇”預測人類行爲;MIT的人工智能爲視頻配音;迪士尼研究院可以讓AI直接識別視頻里正在發生的事。這些黑科技是噱頭多還是真的有意義?

做深度學習的人都是有一個終極的追求。現在的深度學習模式其實比較傻。給定一個數據,以及對應的標籤(label)。比如說給一張圖片,標籤是一隻貓,給另一幅圖片,標籤是一隻狗,然後把這些數據送到神經網絡裏去學習,最終達到一個很好的識別效果。這樣的方法叫做監督學習,雖然非常有效,但是和人類學習的方法還是不一樣的。深度學習的研究者希望,機器可以更加聰明,可以像人一樣學習。

在監督學習領域取得了重大成果之後,大家就把更多的精力投入到更接近人類學習方式的半監督學習(semi-supervised)和無監督學習(unsupervised)上。一方面,我們希望更加的深入的理解人類視覺的機理、甚至人的智能的機理。另一方面,監督學習需要大量的數據,如果能用半監督或無監督學習的方式繞過大數據標註難題,達到相同精度,這對工業界非常有吸引力。

問題中提到的這些黑科技,都是朝着人類學習方式探索性工作,非常有意義。

其實朝着這個方向努力的工作還有很多。這些工作都使用沒有監督信息的圖像或者視頻。這些數據雖然沒有標籤,但數據內部其實都是蘊含着一些結構。比如視頻裏物體的運動、行爲存在特定規律;在一張圖片裏,一個物體也是有特定的結構的。利用這些視頻或圖像中特定的結構,我們可以把一個無監督的問題轉化爲一個有監督問題,然後利用有監督學習的方法來學習。

有兩個典型的工作。第一個工作把圖像劃分成2x2或者3x3的圖像區域,給定任意兩個區域預測他們之間的相對位置關係。這個工作利用到的物體、場景的固有結構特點,例如天空在道路上方,雙腿在身體下方。另一個工作利用視頻數據學習物體邊緣,主要用到了視頻中物體的邊緣相對於背景有較大的運動這一個特點。

長期來看的話,探索人類學習過程的半監督、非監督、多感知輸入的學習方式是深度學習的另一個發展趨勢。

怎麼看最佳論文們

Q:微軟亞洲研究院的論文 Deep Residual Learning for Image Recognition 榮獲最佳論文獎,本屆 CVPR 2016最佳學生論文是斯坦福大學的 Structural-RNN: Deep Learning on Spatio-Temporal Graphs,您對這兩篇論文有什麼看法?

凱明、孫劍的兩篇best paper都是十分鐘就能看懂,一天就能復現出結果。而對於之後的研究產生長遠影響的工作。另外,孫劍做研究的風格對我影響很大。問題導向,解決重要問題,做真正work的研究。這些方法論不僅在學術界非常有價值,而且在工業界研究更加重要。

回到論文本身,這篇論文解決的是深度網絡一般超過20~30層的時候,訓練和測試的loss不再下降,甚至隨着層數的增加,loss會逐漸增加,針對這個問題提出了一個非常行之有效的解決方案。這個方法之所以有效,有很多解釋,比如說有一種解釋是通過跨層(skip-layer)可以把loss反傳到中間的很多層,解決了梯度傳播的問題。另一種解釋認爲ResNet通過skip-layer,可以做到深度方面的多模型融合。


我的解釋稍微有點複雜。我認爲,沒有降採樣的情況下,當深度達到一定的程度的時候,卷積層的學習能力是逐漸減弱的。當網絡過深,增加的卷積層只能學習到噪音,並且造成有效信息損失,導致訓練和測試loss都增加的情況。Skip layer可以很好的自適應的調整每一層的學習目標,解決這個問題。

另外ResNet有很大的冗餘,把152層網絡中的後面幾層去掉也不會改變精度,可能這些層都被skip了。保持精度的情況下,去掉這些冗餘,做到更小更經濟的網絡,非常有研究價值。

產業落地:從學術界到工業界

Q:論文總體上大概有基礎理論研究的論文和提出具體解決辦法的論文兩類,對於論文的產業化,我們正確的態度是怎樣的,比如多久論文投入實用的週期是適合?以及怎樣發揮最大意義?

現在產業界跟學術界的研究基本是並行進行的,總體來說,產業界沒有落後於學術界,學術界也沒有落後於產業界,只是產業界和學術界的側重點不一樣。

現在深度學習的研究迭代速度是非常非常快的,而且快的驚人。在其他領域的話,學術研究主要是通過發表期刊文章來交流,期刊週期短的話可能一年,長的話可能要兩三年的時間。而在計算機領域,大家更多的是發表會議論文,會議論文的時間週期大概是半年的時間。在深度學習領域,大家第一時間把自己做出來的成果放在預印本(Arxiv),半年之後再把論文投稿到會議上去。

在商湯科技,很多研究員養成的習慣就是每天先到預印本(Arxiv)上去看最新論文,如果這個論文的思想有價值或者這個論文做出了一些非常突出的成果的話大家都會第一時間嘗試復現,做一些探索性的實驗。

我認爲,在深度學習這個特定的領域,新技術落地的週期幾乎爲零。

Q:CVPR 上這麼多主題演講(main conference),覺得認爲哪幾個版塊的內容最有用?

我覺得CVPR的很多版塊都非常有意思。要說哪個版塊最有用的話,從工業界實用的角度出發,當然是檢測識別的板塊最有用。

Q:參加本屆CVPR後有什麼心得體會?

最大的體會是華人圈做計算機視覺真的很厲害。去年參加ICCV的時候所有ImageNet的比賽第一名都被華人包攬了。這次CVPR的時候也看到了非常多的華人的優秀論文。凱明、少卿、翔宇、孫劍還拿了最佳論文獎。華人在計算機視覺領域的研究水平越來越高。這是非常振奮人心的事。稍微雞湯一下,我們中國錯過了工業革命,錯過了電氣革命,信息革命也只是跟隨狀態。但人工智能的革命,我們跟世界上的領先國家是並肩往前跑的。能身處這個時代浪潮之中,做一番偉大的事業,經常激動的夜不能寐。

小結:

本期硬創公開課上,曹旭東重點爲我們介紹了深度學習目前相對其它AI實現方法佔優的4個特點:精度好; 算法通用;特徵推廣性好;工程框架統一。這或許可以解釋爲深度學習現在在AI界大受歡迎的原因。

另外他指出計算機視覺裏的核心任務,包括檢測、識別、分割、特徵點定位、序列學習等五個大的任務,爲計算機視覺的具體應用勾畫了一個清晰的脈絡。

不過令人震驚的是,談到深度學習這個特定領域的研究迭代速度,談到論文投入實用的合理週期,他認爲在深度學習這個特定的領域落地的週期應該是零。雖然現在谷歌,Facebook等大公司正在引導論文從文字到實踐的產業化熱潮,但這樣的週期顯然是讓業內人士感到驚心動魄的一個速度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章