tips:
1)數據驅動訓練端到端的訓練禁炒,減少人工干預绕辖,少做人為假設脓诡,機器自己學習最優(yōu)參數无午。
2)對齊和檢測識別合二為一,共享底層特征祝谚。
采訪內容轉載自:http://www.sohu.com/a/197222568_465975指厌,以下為采訪實錄:
人臉識別領域的「激蕩 20 年」
我從 97 年做本科畢業(yè)設計的時候就開始做人臉識別,概括下來踊跟,這 20 年里人臉識別領域經歷了幾次小起伏和一次大起伏踩验。
如果從歷史的角度看,94 年到 97 年其實是一個人臉識別的小高潮商玫。美國的國家標準與技術研究院(NIST)在 1994-1995 年的時候舉辦了一個競賽箕憾,叫 FERET(Face Recognition Technology),并且建了一個包含一千一百多人拳昌,數千張照片的人臉數據庫袭异。雖然現在看來這個數據庫規(guī)模很小,但是在當時已經是很大的數據了炬藤。當時有一些美國的知名高校御铃,比如 CMU、UMD沈矿、哥大上真,在 94、95 年參加競賽羹膳,取得了一些進步睡互,然后在 97 年的時候發(fā)表了一些文章。其中有一篇發(fā)表在 PAMI 上面的,叫做 Fisherface [1]就珠,可能現在還是自 91 年的 Eigenface [2] 以來寇壳,整個人臉識別領域引用最高的文章之一。Fisher 代表的是費舍爾線性判別分析(Fisher Discriminative Analysis)算法妻怎,對輸入圖像 X 用 W 做線性變換 Y = WX壳炎,將其降維映射到另一個空間得到向量 Y,而問題的核心在于如何找到合適的 W逼侦。97 年 Fisherface 這篇文章采用了線性判別分析方法冕广,簡單來說就是找一個空間,在這個空間里同一個人的照片盡可能聚集在一起偿洁,不同人的照片盡可能遠離撒汉。這就是就是費舍爾判別準則:把同一個人的照片間距離稱為類內距離,不同人的稱為類間距離涕滋,判別函數試圖讓類內距離盡可能小睬辐,類間距離盡可能大。而 Fisherface 就基于這樣一個準則去尋找 W宾肺,做線性變換溯饵。這個工作的影響非常深遠,一直到 2010 年前后锨用,很多人臉識別方法都還是在以這個準則為目標來尋求所謂最優(yōu)的變換丰刊。
90 年代的小高峰過去之后,2002 年到 2004 年還有一些非常重要的工作增拥,在對圖像進行線性變換前先對它做特征提取啄巧。其中影響力最大的是 Gabor 小波變換 [3] 和 LBP(Local Binary Patterns)[4]。其中掌栅,Gabor 小波其實是一個加窗的傅里葉變換秩仆。我們把原圖用 Gabor 濾波器函數進行處理,處理后維度可能比原圖更高猾封,例如澄耍,用了 40 個 Gabor 小波濾波器的話,維度會變成原圖的 40 倍晌缘,我們在此基礎上再去求 W齐莲,一方面 W 可以把特征維度降低,另一方面還是通過 W 實現類似 Fisher 的目標磷箕。
Gabor 小波變換是很早就有的方法选酗,但是這個工作的意義體現在和后來的深度學習有密切的關系。Gabor 小波濾波器的參數搀捷,或者說權重星掰,是通過 Gabor 小波人為定義出來的。深度學習的底層其實也是一些濾波器嫩舟,它和傳統(tǒng)方法的不同就是參數不是人為定出來而是通過數據學習出來的氢烘。而二者的聯(lián)系在于,通過學習得來的底層濾波器非常像 Gabor 小波濾波器或者高斯導數濾波器家厌。尤其是在一個不是特別深的卷積神經網絡里播玖,前面幾層,尤其是第一層的濾波器會非常像人為定義出來的濾波器饭于。這并不是一個偶然現象蜀踏,其中是存在必然聯(lián)系的,我們可以認為二者都是在試圖提取一些特定朝向的邊緣特征掰吕。除了與深度學習的聯(lián)系之外果覆,這個工作在性能上也較 Fisherface 有了大幅度的提高。
后來大家普遍覺得殖熟,尋求一個把不同人分得很開的低維空間這樣一個非常復雜的目標可能不是一個簡單的線性變換能夠解決的局待。畢竟我們要把圖像從非常高維的空間映射到非常低維的空間,同時又希望獲得好的判別能力菱属。所以大家想方設法地去找一些非線性的變換钳榨。我們實驗室在 2007 年發(fā)過一篇 ICCV 的工作 [5],是在 Gabor 小波濾波器的基礎上做分段線性來逼近一個可能非常復雜的非線性函數纽门。這個工作后來也申請了專利薛耻,并授權給合作伙伴銀晨做了大量的應用。這些應用包括國家出入境管理局的基于數億護照照片的人臉識別系統(tǒng)赏陵,以及全國十余個省的省廳級大庫人員比對系統(tǒng)饼齿。這也是人臉識別的在國內第一波成功應用,解決的是一個人有多個戶口或護照的「多重身份問題」蝙搔,這些系統(tǒng)最多在一個省內就識別出數以萬計的有多重身份的人候醒,其中不乏洗白了身份的在逃人員。
除了分段線性外杂瘸,另一種常見方法是用 Kernel 技巧做非線性的特征提取倒淫。此外,2000 年《科學》雜志上的兩篇文章败玉,Isomap [6] 和 LLE [7]敌土,引領了流形學習這個領域的進展。因此 2000 年前后运翼,特別是 03返干、04 年的時候,國內和國際上很多人開始做流形學習血淌。流形學習試圖找一個非線性的變換矩欠,得到一個好的空間财剖,能夠把類內聚集,類間分開這個目標實現得更好癌淮,本質上也是想解決非線性問題躺坟。
2009 年有一個稍顯曇花一現的方法是稀疏表示。它本質上還是一個線性模型乳蓄,只不過沒有添加 L2 正則項咪橙,而是添加了 L1 或者 L0 的。我們傾向于認為它在信號處理等底層視覺處理上是有用的虚倒,但在人臉這樣高層任務的處理上美侦,不解決特征提取這個最根本問題。
2012 年左右魂奥,ImageNet 的巨大成功直接把深度學習帶到了人臉識別領域菠剩。從 2013 年開始,人臉識別的所有技術非常迅速地切換到了深度學習上耻煤。深度學習的核心就是特征學習赠叼,換句話說,就是不再人為定義 Y = WX 形式的特征违霞,而是交給數據去學習一個通過神經網絡實現的 Y=f(X) 形式的變換嘴办。
深度學習有幾個非常重要的特征:第一是非線性,并且和 Kernel 方法相比买鸽,是一個顯式的非線性涧郊。Kernel 方法是通過在原始空間中進行 Kernel 函數計算逼近目標空間中的兩個輸入的點積,但由于 Kernel 函數的種類非常有限眼五,所以不一定能找到適合特定問題的 Kernel 函數妆艘。第二是逐層抽象,這非常符合過去研究者一直期望找到的特征提取方式:從底層的邊緣看幼、角批旺、點這樣的基礎特征,到圓诵姜、橢圓這樣的稍微復雜的模式汽煮,再到眼睛、鼻子棚唆、嘴這樣的部件暇赤,到臉型、是否帶眼鏡等屬性宵凌,最后是性別鞋囊、身份、表情等高級屬性瞎惫。這樣的特征提取方式非常符合人在認知方面的需求溜腐。第三是技術上解決了多層特征提取問題译株,原來人為設計濾波器的時候做不了很多層。比如在一層 Gabor 小波濾波器的基礎上再做一層 Gabor 小波濾波器的話挺益,我們已經不知道是什么意思了歉糜。LBP、SIFT [8]矩肩、HOG 等方法嘗試在濾波器的基礎上做直方圖的表達现恼,然而再往上抽象肃续,就又遇到瓶頸了黍檩。
我認為深度學習給人臉識別領域帶來了一次跨越式的發(fā)展。舉個例子始锚,在 12 年甚至 13 年的時候刽酱,研究者還普遍認為,基于二代身份證的人證比對是一個不可能完成的任務瞧捌。它的難度太大了:身份證的照片可能是多年以前差別很大的舊照棵里,大小又只有 102×126,而且被從 30k 左右強制壓縮到了 1k姐呐,損失了非常多信息殿怜。但是現在我們已經可以做到,在人配合地去看鏡頭的時候曙砂,做到 0.01% 的誤識率(false accept rate)的情況下头谜,有 98% 以上的識別率(Recognition rate)。也就是說一萬個人冒充你鸠澈,只有一個人能成功的條件下柱告,自己本人被正確識別的概率在 98% 以上。在 13 年之前笑陈,萬分之一精度可能只有 20% 不到的召回率际度。
圖像識別「問題解決」目標尚遠
如今,雖然 ImageNet 競賽已經結束了涵妥,但是圖像識別問題還遠遠沒有解決乖菱。如果我們寄希望于用深度學習解決圖像識別問題,就意味著我們要收集所有待識別物體的大量有標注數據蓬网。這件事情需要多少人力块请、物力、時間是不可知的拳缠,我們甚至無法定義這個世界上有多少需要識別的物體種類墩新。ImageNet 中有一千類,然而日常生活中需要識別的物體至少在萬類規(guī)模窟坐,大千世界里出現過的物體可能有百萬類甚至更多海渊。另外绵疲,實際應用中的大量需求是難以想象的,例如對車輛安檢需求臣疑,可能需要拍車底部的照片盔憨。這樣的問題是否只能通過采集大量數據來解決,還要打一個大大的問號讯沈,而且對于做科學技術的人來說郁岩,這個過程非常痛苦,不是一個「優(yōu)雅」的解決辦法缺狠。
我們期望有一個像人一樣解決問題的辦法问慎。以讓小區(qū)里的巡邏機器人學會檢測狗屎為例:
在前深度學習時代,這個過程大概分三步:第一步挤茄,花幾個月時間收集和標注幾百或上千張圖如叼;第二步,觀察并人為設計形狀穷劈、顏色笼恰、紋理等特征;第三步歇终,嘗試各種分類器做測試社证,如果測試結果不好,返回第二步不斷地迭代评凝。人臉檢測就是這樣進行的追葡,從上世紀八十年代開始做,大量研究者花了大概二十年時間肥哎,才得到了一個基本可用的模型辽俗,能較好地解決人臉檢測的問題。而后在監(jiān)控場景下做行人和車輛的檢測篡诽,前后也花了大概十年的時間崖飘。就算基于這些經驗,做出好用的狗屎檢測器杈女,至少還是需要一年左右的時間朱浴。
在深度學習時代,開發(fā)一個狗屎檢測器的流程被大大縮短了达椰。盡管深度學習需要收集大量的數據并進行標注(用矩形把圖中的狗屎位置框出來)翰蠢,但由于眾包平臺的繁榮,收集一萬張左右的數據可能只需要兩星期啰劲。接下來梁沧,我們只需要挑幾個已經被證明有效的深度學習模型進行優(yōu)化訓練就可以了,訓練優(yōu)化大概需要一個星期蝇裤,就算換幾個模型再試試看廷支。這樣完成整個過程只需要一兩個月而已频鉴。而在后深度學習時代,我們期待先花幾分鐘時間恋拍,在網上隨便收集幾張狗屎照片垛孔,交給機器去完成余下所有的模型選擇與優(yōu)化工作,或許最終只需要一施敢、兩星期解決這個問題周荐。
總之,我們認為僵娃,圖像識別概作,或是說計算機視覺問題,應該有不依靠大數據的悯许、更優(yōu)雅的解決方案仆嗦。我們的團隊現在也作了一些這方面的嘗試辉阶。例如以大量數據學習出來的人臉識別的模型為基礎先壕,使用少量數據精調,來完成表情識別谆甜、年齡估計等任務垃僚,這樣得到的技術甚至贏得了國際競賽的冠軍或亞軍。此外规辱,在數據有限的情況下谆棺,我們還嘗試了在深度學習過程中融入人類專家知識,以減少對數據量的需求罕袋。我們的一種策略是把神經網絡中需要大量數據進行優(yōu)化的低層連接權重改淑,替換成人為定義的特征,例如傳統(tǒng)的 Gabor 特征浴讯,從而減少對大數據的需求朵夏,也獲得了不錯的結果。
深度學習的端到端思想對人臉識別的影響
前深度學習時代的人臉識別的標準流程里榆纽,第一步是人臉檢測仰猖,其結果就是在圖片中的臉部區(qū)域打一個矩形框。第二步是尋找眼睛奈籽、鼻子饥侵、嘴等特征點,目的是把臉對齊衣屏,也就是把眼鼻嘴放在近乎相同的位置躏升,好像所有的臉都能「串成一串」一樣,且只保留臉的中心區(qū)域狼忱,甚至連頭發(fā)不要膨疏。第三步是光照的預處理盗温,通過高斯平滑、直方圖均衡化等來進行亮度調節(jié)成肘、偏光糾正等卖局。第四步是做Y= f(X)的變換。第五步双霍,是計算兩張照片得到的Y的相似程度砚偶,如果超過特定的閾值,就認定是同一個人洒闸。
深度學習的到來對整個流程有一個巨大的沖擊染坯。
一開始,研究者用深度學習完成人臉檢測丘逸、特征點定位单鹿、預處理、特征提取和識別等每個獨立的步驟深纲。而后首先被砍掉的是預處理仲锄,我們發(fā)現這個步驟是完全不必要的。理論上來解釋湃鹊,深度學習學出來的底層濾波器本身就可以完成光照的預處理儒喊,而且這個預處理是以「識別更準確」為目標進行的,而不是像原來的預處理一樣币呵,以「讓人看得更清楚」為目標怀愧。人的知識和機器的知識其實是有沖突的,人類覺得好的知識不一定對機器識別有利余赢。
而最近的一些工作芯义,包括我們在今年ICCV上的一個工作[9],就是把第二步特征點定位砍掉妻柒。因為神經網絡也可以進行對齊變換扛拨,所以我們的工作通過空間變換(spatial transform),將圖片自動按需進行矯正蛤奢。并且我有一個猜測:傳統(tǒng)的刻意把非正面照片轉成正面照片的做法鬼癣,也未必是有利于識別的。因為一個觀察結果是啤贩,同一個人的兩張正面照相似度可能小于一張正面待秃、一張稍微轉向的照片的相似度。最終痹屹,我們希望進行以識別為目標的對齊(recognition oriented alignment)章郁。
在未來,或許檢測和識別也可能合二為一。現在的檢測是對一個通用的人臉的檢測暖庄,未來或許可以實現檢測和識別全部端到端完成:只有特定的某個人臉出現聊替,才會觸發(fā)檢測框出現。
第五步的相似度(或距離測度)的計算方法存在一定的爭議培廓。我認為特征提取的過程已經通過損失函數暗含了距離測度的計算惹悄,所以深度特征提取與深度測度學習有一定的等價性。但也有不少學者在研究特征之間距離測度的學習肩钠,乃至于省略掉特征提取泣港,直接學習輸入兩張人臉圖片時的距離測度。
總體來說价匠,深度學習的引入體現了端到端当纱、數據驅動的思想:盡可能少地對流程進行干預、盡可能少地做人為假設踩窖。
當然坡氯,這一切的前提是大數據,否則還是需要人的知識嵌入洋腮。從進化的角度箫柳,人腦在出生時就是一個歷代祖先大數據學習的結果。而人的個體的后天發(fā)育是通過觀察得到的小數據和教育給予的知識對大腦進行適應性修改的過程徐矩。將現在的人工智能與人類進行對比滞时,就能發(fā)現人工智能是屓保科智能而非全科智能滤灯,而且專科智能還太依賴大數據曼玩。我們可以認為深度學習其實只是歸納法的勝利鳞骤,而人的學習還有很大一部分是基于演繹推理。因此黍判,我認為在未來豫尽,會出現知識與數據聯(lián)合驅動的方法,但這面臨著一個非常大的挑戰(zhàn)顷帖,即機器知識和人類知識在表示上的鴻溝的彌合美旧。人的知識表達在書本上,機器的知識蘊含在神經網絡里贬墩,現在二者沒有辦法對應榴嗅,更不能互相轉化。這是未來非常值得去研究的一件事情陶舞。