4
本文作者: 宗仁 | 2016-07-07 20:52 | 專題:雷峰網(wǎng)公開課 |
聯(lián)合編輯 宗仁 黃鑫雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
今年夏天,雷鋒網(wǎng)將在深圳舉辦一場盛況空前的“全球人工智能與機(jī)器人峰會”(簡稱CCF-GAIR)。大會現(xiàn)場,谷歌,DeepMind,Uber,微軟等巨頭的人工智能實驗室負(fù)責(zé)人將蒞臨深圳,向我們零距離展示國外人工智能震撼人心、撬動地球的核心所在。如果你不想錯過這個大會的盛世狂歡,請點擊文末購買我們的早鳥票。
本次CVPR 2016上,深度學(xué)習(xí)幾乎成了如今計算機(jī)視覺研究的標(biāo)配,人臉識別、圖像識別、視頻識別、行人檢測、大規(guī)模場景識別的相關(guān)論文里都用到了深度學(xué)習(xí)的方法,加上Google,F(xiàn)acebook這樣的大企業(yè)助力,很多人疑惑,為什么深度學(xué)習(xí)相比其它的AI實現(xiàn)方法,已然呈現(xiàn)出一副碾壓之態(tài)?
本期硬創(chuàng)公開課嘉賓我們邀請了商湯科技執(zhí)行研發(fā)總監(jiān)曹旭東,其剛從CVPR 2016現(xiàn)場趕回來,正好在這里為大家解釋一下為什么深度學(xué)習(xí)幾乎成了計算機(jī)視覺研究的標(biāo)配這個問題。以及為大家講解CV和深度學(xué)習(xí)的現(xiàn)狀和未來趨勢。
曹旭東,商湯科技執(zhí)行研發(fā)總監(jiān),深度學(xué)習(xí)專家。畢業(yè)于清華大學(xué)。前微軟亞洲研究院副研究員,負(fù)責(zé)研發(fā)的人臉?biāo)惴ㄔ糜谖④沊box、How-old等知名產(chǎn)品,現(xiàn)象級產(chǎn)品How Old.net有數(shù)億用戶。在CVPR/ICCV/ECCV等計算機(jī)視覺頂級會議發(fā)表論文十余篇,其中三篇CVPR論文和兩篇ICCV論文獲得口頭報告榮譽(yù)(接收率小5%)。
商湯科技曹旭東:為什么深度學(xué)習(xí)幾乎成了計算機(jī)視覺研究的標(biāo)配?| 硬創(chuàng)公開課
首先簡單介紹一下傳統(tǒng)物體檢測的方法和基于深度學(xué)習(xí)的物體檢測方法。
傳統(tǒng)方法使用滑動窗口的框架,把一張圖分解成幾百萬個不同位置不同尺度的子窗口,針對每一個窗口使用分類器判斷是否包含目標(biāo)物體。傳統(tǒng)方法針對不同的類別的物體,一般會設(shè)計不同的特征和分類算法,比如人臉檢測的經(jīng)典算法是Harr特征+Adaboosting分類器;行人檢測的經(jīng)典算法是HOG(histogram of gradients) + Support Vector Machine;一般性物體的檢測的話是HOG的特征加上DPM(deformable part model)的算法。
基于深度學(xué)習(xí)的物體檢測的經(jīng)典算法是RCNN系列: RCNN,fast RCNN (Ross Girshick),faster RCNN (少卿、凱明、孫劍、Ross)。這三個工作的核心思想是分別是:使用更好的CNN模型判斷候選區(qū)域的類別;復(fù)用預(yù)計算的sharing feature map加快模型訓(xùn)練和物體檢測的速度;進(jìn)一步使用sharing feature map大幅提高計算候選區(qū)域的速度。其實基于深度學(xué)習(xí)的物體檢測也可以看成對海量滑動窗口分類,只是用全卷積的方式。
RCNN系列算法還是將物體檢測分為兩個步驟?,F(xiàn)在還有一些工作是端到端(end-to-end)的物體檢測,比如說YOLO(You Only Look Once: Unified, Real-Time Object Detection)和SSD(SSD: Single Shot MultiBox Detector)這樣的算法。這兩個算法號稱和faster RCNN精度相似但速度更快。物體檢測正負(fù)樣本極端非均衡,two-stage cascade可以更好的應(yīng)對非均衡。端到端學(xué)習(xí)是否可以超越faster RCNN還需要更多研究實驗。
先回答深度學(xué)習(xí)為什么會成為現(xiàn)在計算機(jī)視覺標(biāo)配的方法。
首先,最重要的原因是深度學(xué)習(xí)可以做到傳統(tǒng)方法無法企及的精度,這是關(guān)鍵中的關(guān)鍵,如果說這個優(yōu)點是1的話,其它的優(yōu)點都是1后面的0。深度學(xué)習(xí)革命爆發(fā)在2011~2012年,11年的時候在語音識別領(lǐng)域有重大突破,12年的時候在圖像識別領(lǐng)域有重大突破。深度學(xué)習(xí)革命,使得計算機(jī)視覺在很多應(yīng)用領(lǐng)域達(dá)到了實用水平,催生了工業(yè)界的大量應(yīng)用。這也是為什么在11年前,機(jī)器視覺&人工智能的博士生都是找不到工作的,但是12年之后,尤其是現(xiàn)在,都變成了被眾多公司高薪爭奪的寶貝。
另外深度學(xué)習(xí)成為標(biāo)配,還有其它的優(yōu)點。
第一,深度學(xué)習(xí)算法的通用性很強(qiáng),剛才提到的檢測,在傳統(tǒng)算法里面,針對不同的物體需要定制化不同的算法。相比來看,基于深度學(xué)習(xí)的算法更加通用,比如faster RCNN在人臉、行人、一般物體檢測任務(wù)上都可以取得非常好的效果。
第二,深度學(xué)習(xí)獲得的特征(feature)有很強(qiáng)的遷移能力。所謂特征遷移能力,指的是在A任務(wù)上學(xué)習(xí)到一些特征,在B任務(wù)上使用也可以獲得非常好的效果。例如在ImageNet(物體為主)上學(xué)習(xí)到的特征在場景分類任務(wù)上也能取得非常好的效果。
第三, 工程開發(fā)、優(yōu)化、維護(hù)成本低。深度學(xué)習(xí)計算主要是卷積和矩陣乘,針對這種計算優(yōu)化,所有深度學(xué)習(xí)算法都可以提升性能。另外,通過組合現(xiàn)有的層(layer),我們可以實現(xiàn)大量復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)和一些算法,開發(fā)維護(hù)的成本低。想想同時開發(fā)、維護(hù)Boosting,Random Forest等算法是非常痛苦的一件事情。
再回答深度學(xué)習(xí)過于單一的問題。
深度學(xué)習(xí)過于單一的說法,我覺得是不準(zhǔn)確的。就好比說一個包容萬象的宇宙過于單一了。
簡單來說,機(jī)器學(xué)習(xí)就是學(xué)習(xí)輸入到輸出的一個映射,傳統(tǒng)方法使用淺層的簡單映射,現(xiàn)在深度學(xué)習(xí)是多層的復(fù)合映射。深度學(xué)習(xí)有很多的自由度,學(xué)習(xí)目標(biāo)和學(xué)習(xí)方法有很多種選擇,網(wǎng)絡(luò)結(jié)構(gòu)層與層之間有無數(shù)的可能連接方式,每一層映射的具體形式到底是卷積,還是全連接,還是其它的形式,并沒有限制,其實除了全連接和卷積之外,還可以用其它的映射形式,比如說去年ICCV上的一個工作:微軟研究院用Random Forest做為新的映射形式。
深度學(xué)習(xí)的技術(shù)框架是一棵樹形結(jié)構(gòu)。
訓(xùn)練平臺是樹根,如caffe、tensorflow等?,F(xiàn)在深度學(xué)習(xí)還處于實驗科學(xué)階段,實驗效率很大程度上決定著研發(fā)效率,好的訓(xùn)練平臺可以把實驗周期從一個月縮短到一天,對于深度學(xué)習(xí)研發(fā)非常重要。
模型是樹干。自06年提出深度學(xué)習(xí)概念,學(xué)術(shù)界花了六年時間才認(rèn)識到模型結(jié)構(gòu)的研究才是深度學(xué)習(xí)的重點。典型的成果有AlexNet、VGGNet、GoogleNet、ResNet等。學(xué)術(shù)界大家主要研究怎么把模型做的精度更好。在工業(yè)界我們還要考慮怎么把模型做得更快,更小。
在樹干上有幾個主干的枝丫,對應(yīng)著計算機(jī)視覺里的核心任務(wù),包括了檢測、識別、分割、特征點定位、序列學(xué)習(xí)等五個大的任務(wù),任何計算機(jī)視覺的具體的應(yīng)用都可以由這五個任務(wù)組合而成。以人臉識別為例,人臉識別要完成整個流程,要涉及到人臉的檢測、特征點定位,特征的提取&驗證。這就包含了檢測、特征點定位和識別三個部分。
我們在剛才提到的那五個重要的主干方向其實都投入了非常大的研究力量,一方面是保證我們在學(xué)術(shù)界的前沿有所突破,另一方面,針對我們一些重要應(yīng)用也開發(fā)出了一整套與學(xué)術(shù)界并行的方法,能夠做到十倍的加速和百倍模型的壓縮,同時保持很好的精度。這個問題中提到的四篇論文主要是我們在這五個計算機(jī)視覺的核心任務(wù)上取得的一些研究方向的成果。其實我們除了在研究方向成果之外在工業(yè)實用方面有更大、更多的成果,比如我們的人臉檢測在做到學(xué)術(shù)界最好結(jié)果的同時能做到300FPS的速度。人臉特征點的定位超過學(xué)術(shù)界最好結(jié)果的同時,做到3000FPS的速度。在學(xué)術(shù)界公開的論文中,我還沒有看到這樣的性能。
在深度學(xué)習(xí)領(lǐng)域有一個簡單但又非常通用的原理。在學(xué)習(xí)時,指導(dǎo)信息越豐富、越精細(xì),學(xué)習(xí)的效果一般來說也會越好。
舉個簡單的例子,在數(shù)據(jù)量充足的情況下,如果我對我圖像類別的標(biāo)注僅僅是動物、植物、場景的話,學(xué)習(xí)出來的模型和特征可能一般。但是如果把這些類別標(biāo)記細(xì)化,比如最開始有十類數(shù)據(jù),我們把它細(xì)化到一千類,例如把狗分成斑點狗、斗牛犬等,把貓分成波斯貓、大花貓等,通常來說可以學(xué)習(xí)到更好的模型和更加好的特征。
另一個例子是物體檢測,如果在bounding box的基礎(chǔ)上增加額外的監(jiān)督信息通長會得到更好的結(jié)果。比如標(biāo)注出人臉的眼睛、鼻子、嘴的位置,人臉的角度,種族性別男女等屬性,做成一個多任務(wù)學(xué)習(xí)的算法的話,通常來說能得到更好的效果。
兩個代表性工作可以參考:Joint cascade face detection and alignment,F(xiàn)acial landmark detection by deep multi-task learning。
有時候多個標(biāo)注/任務(wù)是并列關(guān)系,可以通過Multi-Task Learning的框架來學(xué)習(xí)。另外一些情況,多個任務(wù)是遞進(jìn)關(guān)系,前一個任務(wù)的結(jié)果可以幫助后一個任務(wù),例如將每一個人都獨立的檢測出來之后再分割每個人身體的Mask。合理利用這種遞進(jìn)關(guān)系,可以得到比并列關(guān)系更好的結(jié)果,這其實就是Instance segmentation的核心思想。因為同傳統(tǒng)語義分割不同的是,傳統(tǒng)語義分割只需要對物體類別進(jìn)行分類,不需要區(qū)分不同的個體。物體分割(Instance segmentation)是既需要區(qū)分類別,又需要區(qū)分同一物體的個體,所以深度學(xué)習(xí)的網(wǎng)絡(luò)需要學(xué)習(xí)到比之前語義分割任務(wù)更多的信息。這方面微軟亞洲研究院的戴繼峰做了非常開創(chuàng)性的工作。我們商湯科技石建萍高級研究員的工作也非常有創(chuàng)建性。通過多尺度局部區(qū)域融合的方法,端到端的實現(xiàn)了instance segmentation 物體類別與區(qū)分統(tǒng)一類別不同個體的信息。
做深度學(xué)習(xí)的人都是有一個終極的追求?,F(xiàn)在的深度學(xué)習(xí)模式其實比較傻。給定一個數(shù)據(jù),以及對應(yīng)的標(biāo)簽(label)。比如說給一張圖片,標(biāo)簽是一只貓,給另一幅圖片,標(biāo)簽是一只狗,然后把這些數(shù)據(jù)送到神經(jīng)網(wǎng)絡(luò)里去學(xué)習(xí),最終達(dá)到一個很好的識別效果。這樣的方法叫做監(jiān)督學(xué)習(xí),雖然非常有效,但是和人類學(xué)習(xí)的方法還是不一樣的。深度學(xué)習(xí)的研究者希望,機(jī)器可以更加聰明,可以像人一樣學(xué)習(xí)。
在監(jiān)督學(xué)習(xí)領(lǐng)域取得了重大成果之后,大家就把更多的精力投入到更接近人類學(xué)習(xí)方式的半監(jiān)督學(xué)習(xí)(semi-supervised)和無監(jiān)督學(xué)習(xí)(unsupervised)上。一方面,我們希望更加的深入的理解人類視覺的機(jī)理、甚至人的智能的機(jī)理。另一方面,監(jiān)督學(xué)習(xí)需要大量的數(shù)據(jù),如果能用半監(jiān)督或無監(jiān)督學(xué)習(xí)的方式繞過大數(shù)據(jù)標(biāo)注難題,達(dá)到相同精度,這對工業(yè)界非常有吸引力。
問題中提到的這些黑科技,都是朝著人類學(xué)習(xí)方式探索性工作,非常有意義。
其實朝著這個方向努力的工作還有很多。這些工作都使用沒有監(jiān)督信息的圖像或者視頻。這些數(shù)據(jù)雖然沒有標(biāo)簽,但數(shù)據(jù)內(nèi)部其實都是蘊含著一些結(jié)構(gòu)。比如視頻里物體的運動、行為存在特定規(guī)律;在一張圖片里,一個物體也是有特定的結(jié)構(gòu)的。利用這些視頻或圖像中特定的結(jié)構(gòu),我們可以把一個無監(jiān)督的問題轉(zhuǎn)化為一個有監(jiān)督問題,然后利用有監(jiān)督學(xué)習(xí)的方法來學(xué)習(xí)。
有兩個典型的工作。第一個工作把圖像劃分成2x2或者3x3的圖像區(qū)域,給定任意兩個區(qū)域預(yù)測他們之間的相對位置關(guān)系。這個工作利用到的物體、場景的固有結(jié)構(gòu)特點,例如天空在道路上方,雙腿在身體下方。另一個工作利用視頻數(shù)據(jù)學(xué)習(xí)物體邊緣,主要用到了視頻中物體的邊緣相對于背景有較大的運動這一個特點。
長期來看的話,探索人類學(xué)習(xí)過程的半監(jiān)督、非監(jiān)督、多感知輸入的學(xué)習(xí)方式是深度學(xué)習(xí)的另一個發(fā)展趨勢。
凱明、孫劍的兩篇best paper都是十分鐘就能看懂,一天就能復(fù)現(xiàn)出結(jié)果。而對于之后的研究產(chǎn)生長遠(yuǎn)影響的工作。另外,孫劍做研究的風(fēng)格對我影響很大。問題導(dǎo)向,解決重要問題,做真正work的研究。這些方法論不僅在學(xué)術(shù)界非常有價值,而且在工業(yè)界研究更加重要。
回到論文本身,這篇論文解決的是深度網(wǎng)絡(luò)一般超過20~30層的時候,訓(xùn)練和測試的loss不再下降,甚至隨著層數(shù)的增加,loss會逐漸增加,針對這個問題提出了一個非常行之有效的解決方案。這個方法之所以有效,有很多解釋,比如說有一種解釋是通過跨層(skip-layer)可以把loss反傳到中間的很多層,解決了梯度傳播的問題。另一種解釋認(rèn)為ResNet通過skip-layer,可以做到深度方面的多模型融合。
我的解釋稍微有點復(fù)雜。我認(rèn)為,沒有降采樣的情況下,當(dāng)深度達(dá)到一定的程度的時候,卷積層的學(xué)習(xí)能力是逐漸減弱的。當(dāng)網(wǎng)絡(luò)過深,增加的卷積層只能學(xué)習(xí)到噪音,并且造成有效信息損失,導(dǎo)致訓(xùn)練和測試loss都增加的情況。Skip layer可以很好的自適應(yīng)的調(diào)整每一層的學(xué)習(xí)目標(biāo),解決這個問題。
另外ResNet有很大的冗余,把152層網(wǎng)絡(luò)中的后面幾層去掉也不會改變精度,可能這些層都被skip了。保持精度的情況下,去掉這些冗余,做到更小更經(jīng)濟(jì)的網(wǎng)絡(luò),非常有研究價值。
現(xiàn)在產(chǎn)業(yè)界跟學(xué)術(shù)界的研究基本是并行進(jìn)行的,總體來說,產(chǎn)業(yè)界沒有落后于學(xué)術(shù)界,學(xué)術(shù)界也沒有落后于產(chǎn)業(yè)界,只是產(chǎn)業(yè)界和學(xué)術(shù)界的側(cè)重點不一樣。
現(xiàn)在深度學(xué)習(xí)的研究迭代速度是非常非??斓?,而且快的驚人。在其他領(lǐng)域的話,學(xué)術(shù)研究主要是通過發(fā)表期刊文章來交流,期刊周期短的話可能一年,長的話可能要兩三年的時間。而在計算機(jī)領(lǐng)域,大家更多的是發(fā)表會議論文,會議論文的時間周期大概是半年的時間。在深度學(xué)習(xí)領(lǐng)域,大家第一時間把自己做出來的成果放在預(yù)印本(Arxiv),半年之后再把論文投稿到會議上去。
在商湯科技,很多研究員養(yǎng)成的習(xí)慣就是每天先到預(yù)印本(Arxiv)上去看最新論文,如果這個論文的思想有價值或者這個論文做出了一些非常突出的成果的話大家都會第一時間嘗試復(fù)現(xiàn),做一些探索性的實驗。
我認(rèn)為,在深度學(xué)習(xí)這個特定的領(lǐng)域,新技術(shù)落地的周期幾乎為零。
我覺得CVPR的很多版塊都非常有意思。要說哪個版塊最有用的話,從工業(yè)界實用的角度出發(fā),當(dāng)然是檢測識別的板塊最有用。
最大的體會是華人圈做計算機(jī)視覺真的很厲害。去年參加ICCV的時候所有ImageNet的比賽第一名都被華人包攬了。這次CVPR的時候也看到了非常多的華人的優(yōu)秀論文。凱明、少卿、翔宇、孫劍還拿了最佳論文獎。華人在計算機(jī)視覺領(lǐng)域的研究水平越來越高。這是非常振奮人心的事。稍微雞湯一下,我們中國錯過了工業(yè)革命,錯過了電氣革命,信息革命也只是跟隨狀態(tài)。但人工智能的革命,我們跟世界上的領(lǐng)先國家是并肩往前跑的。能身處這個時代浪潮之中,做一番偉大的事業(yè),經(jīng)常激動的夜不能寐。
本期硬創(chuàng)公開課上,曹旭東重點為我們介紹了深度學(xué)習(xí)目前相對其它AI實現(xiàn)方法占優(yōu)的4個特點:精度好; 算法通用;特征推廣性好;工程框架統(tǒng)一。這或許可以解釋為深度學(xué)習(xí)現(xiàn)在在AI界大受歡迎的原因。
另外他指出計算機(jī)視覺里的核心任務(wù),包括檢測、識別、分割、特征點定位、序列學(xué)習(xí)等五個大的任務(wù),為計算機(jī)視覺的具體應(yīng)用勾畫了一個清晰的脈絡(luò)。
不過令人震驚的是,談到深度學(xué)習(xí)這個特定領(lǐng)域的研究迭代速度,談到論文投入實用的合理周期,他認(rèn)為在深度學(xué)習(xí)這個特定的領(lǐng)域落地的周期應(yīng)該是零。雖然現(xiàn)在谷歌,F(xiàn)acebook等大公司正在引導(dǎo)論文從文字到實踐的產(chǎn)業(yè)化熱潮,但這樣的周期顯然是讓業(yè)內(nèi)人士感到驚心動魄的一個速度。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。