天天看點

視訊訪談百度IDL林元慶:百度大腦如何在人臉識别上戰勝人類「最強大腦」

視訊訪談百度IDL林元慶:百度大腦如何在人臉識别上戰勝人類「最強大腦」
點選檢視原視訊

2017 年 1 月 6 日,百度首席科學家吳恩達帶着小度機器人來到了《最強大腦》現場,與人類選手展開了對決,并在人臉識别比賽裡以 3:2 的比分赢得勝利。Master 事件引發大衆熱議人工智能的餘熱未退,小度機器人又在跨年齡人臉識别挑戰中戰勝了本屆最強大腦隊長王峰——擁有數個世界冠軍頭銜的「世界記憶大師」。與以往主要考驗空間搜尋能力的人機 PK 不同,此次比拼主要集中在識别領域,而識别過程中需要模糊推理的能力,百度深度學習實驗室(IDL)主任林元慶坦言,這場應戰也并不輕松。

對于此次比賽任務,百度 IDL 人臉團隊主要是使用了「度量學習」,即通過學習一個非線性投影函數把圖像空間投影到特征空間中。在這個特征空間裡,跨年齡的同一個人的兩張人臉的距離會比不同人的相似年齡的兩張人臉的距離要小。同時考慮到跨年齡人臉資料的稀缺性,百度大腦使用了一個用大規模人臉資料訓練好的模型作為「底座」,然後用跨年齡資料對它做更新。這樣不容易過拟合。然後再将這兩點結合起來做端到端的訓練,進而大幅度地提升了小度跨年齡人臉識别的識别率。

從這期節目開始,機器之心将通過訪談視訊「AI Talk」持續為大家解讀百度參加最強大腦比賽的多項技術原理,還原 IDL 籌備比賽的細節故事。

下面是機器之心對百度深度學習實驗室(IDL)主任林元慶獨家專訪完整版文字:

機器之心:請簡單介紹一下人臉識别。

林元慶:人臉識别簡單說就是給你一張人臉的照片,然後我希望能識别照片裡面是哪一個人。

人臉識别其實有兩種技術。

一種技術我們經常叫 1:1 的人臉比對,比如像銀行的應用場景,就是你給一個身份證資訊,然後再給一張人臉,通過比對希望知道這張人臉是不是身份證上面的那個人。系統會拿這個身份證的資訊給到公安的系統裡面取一張照片回來,然後跟你現在的照片比對看是不是同一個人。

還有一種更通用的 1:N 人臉識别,N 可以是幾千、幾萬或者幾十萬進行比對,這叫 1:N 的比對或者是 1:N 的人臉識别。

機器之心:機器是通過哪些特征進行人臉識别的?

林元慶:深度學習還沒有特别流行起來之前,一般會設計一些特征對人臉進行識别。現在用深度學習的方法其實是一層一層的去學不同的特征,底層會是非常低級别的特征,越往上會學到一些非常進階别的特征。像我們的系統應該是千萬到億的低級别特征,慢慢一層一層學上去,最後那一層其實隻有 128 個特征。

機器之心:在不同的應用場景中,機器學習算法如何決定人臉特征點的的數目?

林元慶:像我們現在做的方法,在不同的應用場景裡面其實特征數目是确定的,隻是可能會是不同的特征。特征數目的大小是由深度學習的架構決定的。一旦我們把神經網絡的架構确定下來,這個數目就是固定的。我們隻是根據不同的場景(不同的場景意思就是不同的訓練資料)訓練出來的特征可能是很不一樣的。是以在不同的場景裡面特征數目可能是一樣的,但具體特征會是很不一樣的。

機器之心:比賽中,小度機器人能将少年時期和中年時期的人臉識别出來,如果是将年齡擴大拉長,嬰兒和老人的照片是否可以識别和比對出來?

林元慶:跨年齡識别是非常難的。就我們現在的系統,年齡跨度在 20 到 30 歲的時候我們仍然能做到比較高的精度。當我們把這個跨度進一步增加到 50 歲或 60 歲的話,難度肯定也會進一步增加,精度會下降。我們還沒有很仔細地做過這麼大年齡跨度的實驗。這是我們下一步要做的事情。

機器之心:介紹一下跨年齡人臉識别使用的度量學習?

林元慶:我們這次去參加《最強大腦》的這套系統,使用的其實是基于深度學習的端到端的度量學習方法 (Metric Learning)。這個方法通過學習一個非線性映射函數(用深度神經網絡模型),把圖像空間投影到一個 128 維的特征空間中。深度學習要實作的是,對于同一個人的兩張照片,不管年齡差距有多大,它們映射到這 128 唯特征空間的兩個點(即兩個 128 維的向量)要離得很近;對于不同人的兩張照片,它們映射到這 128 唯特征空間的兩個點要離得足夠遠 – 即使他們年齡相近。當這個映射函數學習好之後,看兩張照片是否是同一個人變得簡單:把他們映射到這個 128 維的空間了,如果映射到的兩個點離得近,那這兩張照片就是同一個人,否則就是不同人。是以核心是如何訓練這個用深度神經網絡模組化的映射函數,即通過調整深度神經網絡的參數。我們用大規模人臉資料訓練出深度神經網絡模型,實作高識别率。

機器之心:百度通過非線性投影函數進行映射減少訓練損失,那麼這個非線性投影函數是如何得出來的,是通過訓練集得出來的嗎?

林元慶:定義度量學習的目标函數之後,我們是通過梯度下降法來進行訓練,慢慢把目标函數給降下來。梯度下降法是很通用的做法。這裡面很重要的是要定義度量學習的目标函數,然後要定義深度神經網絡的架構,最後通過訓練實作目标函數的逐漸優化。

機器之心:人臉識别業務的核心問題是人臉關鍵特征點的定位,錯誤的特征定位會導緻提取的人臉描述特征嚴重變形,進而導緻識别性能下降,百度是如何解決這個問題的?

林元慶:其實是兩個方面。一個方面是我們要想辦法去做出非常好的特征點定位的算法,然後要訓練非常好的模型。在一些極端的情況下,得到的特征點定位可能不準确,是以我們希望後面的識别子產品有一定的容錯能力。我們是在訓練的時候制造一些資料,在定位上人為地産生一些誤差,然後拿這些資料放在深度神經網絡裡面一起去參加訓練,這樣的話最後訓出來的模型對定位的誤差會有一定的容錯能力。

機器之心:百度大腦的這種能力的培養使用了多少的訓練樣本?訓練了多長時間?

林元慶:我們的訓練其實是分兩部分,最重要的一部分叫通用的人臉識别的能力,就是百度這幾年來一直在積累搭建的技術,到比賽為止我們大概用了 200 萬人的 2 億張照片進行人臉識别基礎模型訓練。

另一方面,為了這次比賽,我們也收集了一些跨年齡的資料,根據跨年齡這個場景再進一步優化模型,跨年齡資料大概在幾千張這個級别,并不算特别的多。

機器之心:角度、表情、光線、陰影化妝、和配飾等會在多大程度上影響人臉識别準确率?

林元慶:我們主要是針對人臉角度在 45 度之内的應用場景,是以我們的訓練模型基本上在 45 度之内識别的還是比較準确的。在這個範圍之内,角度影響不會特别大。但是在大于 45 度之後精度就會開始下降。如果是 90 度,特别是當我們沒辦法檢測到五官的時候,精度就會下降比較嚴重,比如說一邊眼睛看不到的情況下下降會比較嚴重。

化妝肯定會有影響,但如果隻是很局部的化妝其實還好。像美瞳隻是造成一個局部被改變,人臉整體基本上變化不是那麼大。這些其實我們的算法都能夠比較好的處理。整形整容就很難,屬于比較大的改變,識别難度就比較大。

機器之心:小度機器人是通過安裝的攝像頭直接觀察還是接入圖像信号?

林元慶:在錄制的現場,節目組會在選手前面的顯示屏上給出一路信号,同樣的信号也給到小度這邊。我們的系統得到的信号和選手肉眼可以看到的信号是一樣的。

機器之心:小度機器人分析處理是在本地完成還是在雲端?此次使用的計算資源情況如何?

林元慶:訓練都是在雲端。雲端我們有非常多、非常大的一個計算叢集來專門做剛才提到的 200 萬人的 2 億張照片的訓練。但真正訓練完之後,計算是在本地完成的,我們在本地隻用了一個 GPU。

實際上,我們希望我們的人臉識别技術能夠廣泛應用到各個領域,甚至是讓很多人在手機上就可以用到這一功能。是以,我們希望在訓練的時候用非常多的計算機,但是真正應用時的計算量不要太大。

機器之心:節目中,人類選手在介紹判斷方法時也提到選取一些人臉特征,是否意味着這方面機器和人類的識别原理類似,就像 CNN 從某種程度上來說是借鑒了人類的視覺原理一樣?

林元慶:從廣義上來說肯定都是通過特征來識别,但是差別在于提取的是什麼特征。深度學習系統其實是從海量的資料裡學一些共同特征,對共性的特征也更加敏感。但是人其實不僅僅會用共性的特征,還會用一些很特别的特征。舉個例子,假如說一個人的鼻子上有一顆痣,目前我們的這個系統是不會學出來的,因為它在我們資料庫裡的兩百萬人身上不常見,它就會把這個特征忽略掉,但人去識别的時候,他會把這顆痣變成一個非常重要的特征去跟蹤。

CNN 架構毫無疑問在相當程度上都是模仿人的視覺系統。和人的視覺系統類似,CNN 有很多層,然後一層層進行非線性映射,從非常低級别的特征一層層映射上去,最後生成一個非常進階别的有分辨能力的特征。

機器之心:作為機器學習和計算機視覺領域的專家,你認為一家公司在人臉識别技術方面足夠領先的标準是什麼?

林元慶:關鍵在于看技術能力的強大與否,具體還要看三個層次。第一個是算法層次,大家通常會選擇在一些通用和公開的測試集上進行測試,看這套算法究竟有多強。但這種方法也是有局限性的,公開測試集的樣本量可能比較小,是以你在這種測試集上的表現做得很好,并不代表你在實際問題上也能做得很好。是以,在百度内部,我們會搭建的一些規模很大的測試集。我們通常的做法是,在我們算法研發的過程中,我們會在這些大測試集上去測。如果要和别人比的話,我們會在公開的測試集上進行測試。

下一個層面是技術層面。其實技術不單單是算法,它需要的是算法加資料。前面我們提到的公開測試集,它等于假設說我們不需要去管資料了。而實際上非常重要的是算法要跟資料一起發展。人臉的資料就是這樣的例子。我們有兩百萬人的人臉,有的算法可能沒辦法在這上面應用,因為你需要非常長的時間去訓練。并且有些算法可能不能完全利用大資料裡面的一些特點。是以,算法和技術一定要一起發展的。

最後一個層面是應用層面。非常重要的是研發出一些技術,并在實際問題的解決上擁有較高的精度。這既是技術是否滿足實際應用的重要名額,更是檢驗人工智能技術最重要的一個名額。不同公司的技術有多好在于他們能解決多少實際的問題。特别是對于人工智能而言,被應用的廣度和深度就是衡量一項人工智能技術是否強大的一個重要名額。

是以總的來說就是算法、技術和應用三個層面。我們希望能夠研發出非常好的技術和算法來滿足更多實際場景應用的需要。人工智能領域裡的很多技術是需要不斷增長的資料去訓練,進而不斷提高模型精準度的。大應用是非常重要的一環。是以,即便你的公司搭建了一套非常好的基礎技術,但如果你背後沒有大的應用給你形成閉環的話,這個技術也很難往前發展。拿圖像識别來說,它需要算法加資料,然後再将這項技術應用。有了應用,使用者會給你送出更多資料,這又會幫你訓練出更好的模型。然後你就有了更好的技術。這是一個正循環,直到把技術發展到極緻。是以大應用是非常重要的。對人工智能來說,研發一項技術要短期做到極緻是不太可能的,一定是要有很好的應用場景能夠疊代起來,最後才能把技術做到極緻。

機器之心:接下來,百度會将人臉識别這項技術重點應用于哪些領域?

林元慶:我們這次決定去參加人機 PK,最重要的出發點就是希望看看百度通過這幾年的研發積累,我們的人工智能水準跟最頂尖的人類相比處于哪一個水準上。節目組跟我們定的「圖檔識别」和「聲音識别」兩個方向,我們也非常喜歡。其實之前有很多次人機 PK 的比賽,最早的「深藍」,後來的 Watson 在《危險邊緣》節目上的比賽,還有最近的 AlphaGo,這些更多是在比這一步棋我該怎麼走、下一步該怎麼走,或是去尋找答案,和這次 PK 有較大差別。這次應該是人類曆史上第一次在圖像和聲音的識别能力上跟人進行高水準 PK。

之是以我們會對這兩個技術特别感興趣,是因為這兩個技術有非常多應用,實用性很強。人臉識别的應用領域中很重要的一個場景是網際網路金融的身份認證。百度有一個金融事業部,他們的主營業務就是網際網路金融,已經用到我們的人臉識别技術。我們認為要做好網際網路金融,身份認證是第一件你必須做的非常好的事情,你一定要知道在計算機或手機前面的那個人到底是誰,身份認證甚至可以說是網際網路金融的第一步。我們也希望以後這項技術不單單用在百度,也可以用到更多的金融公司裡面。

另一個很重要的應用是人臉識别可以用在門禁系統中,百度大廈現在就使用了人臉閘機。是去年在網際網路大會時,我們在烏鎮落地了一個人臉識别的閘機,之前景區使用的是指紋認證系統,在烏鎮參觀遊玩的遊客會需要多次進入,需要身份認證。如果每一次要進出的時間過長,非常影響使用者的體驗,甚至要排很長的隊。在這樣的場景下,人臉識别系統跟指紋系統相比,有相當大的優勢,烏鎮現在用這種 1:N 的認證,遊客走到附近就被識别出來,馬上可以通暢進出。為什麼這些原來沒有,其實也是因為最近百度在人臉識别上有非常好的技術突破,今年我們真正實作了高精度 1:N 的人臉識别,我們現在外面公布的是能做到 99% 以上的精度,這應該在國内是首創。

機器之心:首期節目之後,我們還有哪些收獲?

林元慶:我們希望百度的人臉識别以後能有更多的人來用起來。之前更多的是應用在網際網路上,比如打開百度的圖檔搜尋,搜「劉德華」會出來很多劉德華的照片,裡面就使用了人臉識别,因為照片庫裡既會有劉德華也會有梁朝偉,系統需要通過人臉識别知道哪一張照片是劉德華哪一張是梁朝偉。這背後其實是我們做了全網的明星人臉的索引,這是之前我們人臉識别一個非常重要的用處,但後面我們希望能讓人臉識别用在更廣的地方,給大家的生活帶來更多便利。

機器之心:細粒度視覺分類(FGVC/Fine-Grained Visual Categorization)是今年 CVPR 的熱門研究方向,可否分享一下 IDL 在人臉細粒度識别的研究方面有何進展?

林元慶:細粒度圖像識别其實跟通常我們說的圖像識别有不太一樣的地方,比如我們普通的識别可能隻需要知道這是一隻狗、一隻貓、一個桌子,但細粒度圖像識别,就要明确這一隻貓是哪一個品種、這個桌子是哪個廠家哪個型号的。

舉個例子,百度有一個非常瘋狂的項目是菜品識别,我們希望能實作這樣的場景:你在餐館裡拍一張菜品照片就能識别它是哪一個餐館的哪一道菜,你能想象其中的難度會非常大。這裡面用到的很多技術跟普通的圖檔識别也有很大差別。更多方面的資訊需要通過算法去估計。比如,對于鳥類識别,可能得粗略的知道這是鳥的頭部,這是鳥的尾巴,鳥頭部是長這個樣子,等等。從學術上來講,我們稱之為注意力模型。現在百度在這方面做了很多研發工作。

我們最近在 CVPR 送出了一篇文章,我們充分利用位置資訊自動地去學習物體位置資訊和位置上的特征資訊,最後得到非常高的識别精度。在幾個公開的測試集上,我們的表現應該都是業界最好的。同時,我們也把這項技術用到百度的産品裡。在去年的烏鎮網際網路大會上,我們結合百度糯米在景區裡的 18 家餐館應用了菜品識别的功能,實作了我之前描述的場景。烏鎮隻是一個起點,我們現在其實早期能覆寫大概 4000 家國内餐館,然後希望能一步一步地覆寫到國内上大部分的餐館。

機器之心:菜品識别這個應用,實作大規模推廣所面臨的挑戰是什麼?

林元慶:從難度上講,基本上有兩個方面。一個是資料,我們需要收集足夠多的資料來訓練模型,這就需要跟百度糯米等産品端配合才能去各個餐館裡收集資料,而全國餐館數量是百萬級别的,我們要訓練的模型的類别會是幾千萬或上億類别。二是技術方面。這裡,我們的技術跟普通普通識别的差别在于我們要能夠處理千萬個類别,還要處理非常小的類間差別和非常大的類内差別。比如,麻婆豆腐長得都很像,不同餐館的麻婆豆腐隻有非常細微差别,然而從不同角度,用不同光線拍的即使同一個餐館的麻婆豆腐也會很不一樣。是以,對于識别來說,這就是很難的問題。通常大家也會把人臉識别當成一個非常特殊的細粒度圖像識别的例子,我們不單單要識别照片裡有人臉,還要識别出是哪個人的人臉。

機器之心:要實作李彥宏所說的「讓百度大腦像人類大腦」這個目标,接下來人工智能是不是也應該從人腦和神經科學中獲得更多線索和靈感?

林元慶:在最強大腦比賽現場,對于一個識别對象,我們的系統隻看到的一張或者是幾張這個人的照片,然後去做比對。從一定程度上來說,我們用的是遷移學習(transfer learning),這在一定程度上跟人很類似。平常看了很多的人,人慢慢學會了辯臉的能力,機器也一樣,在這個能力上有很強的通用性。從更長遠來看,在推理方面,人比機器要強很多,機器還需要從人腦機理等各個方面再去學習,設計出更好的算法,希望機器能夠跟人一樣思考推理。

機器之心:通過《最強大腦》這類面向大衆的節目,百度希望傳遞關于人工智能的哪些理念?

林元慶:我們參與這次活動很重要的一個目的是希望能讓大衆能深切感覺到人工智能能做什麼。我們配合節目播出的同時也會把我們辯臉技術做成 App 開放出來,大家可以上傳照片直接去體驗一下。我們希望通過節目讓大衆深刻體驗到人工智能技術,這對人工智能技術的推廣有非常好的作用。像 AlphaGo,他們做得非常棒的一個事情就是一下子讓很多人都知道人工智能,之前可能還隻是停留在行業内。這其實非常重要,因為後面的人工智能能夠做得非常好,需要大衆的這種接受度,他們覺得這些技術真的很有價值、願意使用這些技術才是整個行業發展至關重要的一步。

機器之心:這次在節目的現場比拼中,百度大腦擊敗了頂級選手,您認為這有什麼樣的意義?

林元慶:我其實不太同意用「擊敗」這個詞。這次我們和最強大腦選手比賽,在人臉識别這個特定任務上,我們證明了通過海量資料、深度學習算法,機器學習系統能夠學到非常強的人臉識别的能力。目前這方面我們做的水準還不錯,但人類除此之外還有非常多的能力。另一方面,其實也等于說驗證了我們在這條路上探出了非常有效的研發路徑,後面我們可以把類似的經驗應用到更多更廣的範圍。人工智能在很多方面仍然并不強于人類,從研發角度來講,我們希望我們的技術能越來越強大,能做的事情越來越多。

機器之心:在機器越來越智能的今天,我們應該如何對待人類與機器之間的關系?

林元慶:其實,機器在一些能力上超過人是很正常的,比如我們之前也發明了汽車,汽車肯定跑得比人快。但人工智想要整體全面地超越人類還有非常長的路要走,現在還隻是做了一些非常小的事情,離智能機器的威脅還非常遠。對這個行業裡面的研究人員來說,我們還有很多的事情要做,這條路還很長。

視訊訪談百度IDL林元慶:百度大腦如何在人臉識别上戰勝人類「最強大腦」
「AI Talk」 是機器之心最新出品的視訊訪談欄目,旨在邀請國内外人工智能頂級專家分享對技術和行業的觀點,為大家呈現更為直覺、豐富的内容。

©本文由機器之心原創,轉載請聯系本公衆号獲得授權。

繼續閱讀