天天看點

【幹貨】張長水:圖像識别與機器學習

導讀  6月6日清華人工智能論壇上,張钹院士針對當下浮躁的“人工智能熱”,告誡我們要冷靜地面對人工智能。王生進教授、張長水教授、鄭方教授、微軟芮勇、搜狗王小川分别發言。學界泰鬥與産業嘉賓精彩的演講,碰撞出一大批關于人工智能過去、現在、未來的真知灼見。

演講全文:

圖像識别是人工智能領域非常核心的一個課題。同時從研究的角度來看,機器學習也是人工智能下的一個研究方向。是以,這個題目會更容易引起大家的共鳴。

一、 什麼是圖像識别?

【幹貨】張長水:圖像識别與機器學習

圖像識别是什麼?

以這張圖像為例,第一個問題是:在這個圖像裡面有沒有街燈。在學術研究中,我們把這個問題叫作圖像檢測。

第二個問題就是把街燈的位置給找出來,這叫做定位。

第三個問題是物體的分類和識别,指出這是山,這是樹,這個是招牌,建築。我們可能還會對整張圖檔做一個場景的分類,是在什麼環境下拍照的。它可能是一個室外的圖像,關于城市的生活等等。基本上這些就是我們在圖像識别裡面涉及到的一些可能的研究問題。

二、 圖像識别有什麼應用?

做這些研究可以有哪些用途?比如無人駕駛汽車:如果汽車上有一個帶有攝像頭的輔助系統,能夠識别這個場景下所有的情況,包括車道線,交通辨別,障礙物等,這樣能夠讓我們駕駛汽車更友善、更輕松。

另外,一些相機在拍照的時候,在使用者摁下快門到一半的時候,相機就會去找到這個圖像的人臉在什麼地方。找到人臉以後把焦點對焦在臉上,使這個圖像能夠讓人更清楚一點。

還有,我們的計算機裡面往往會有成千上萬的照片,怎麼組織它們,進而使用者快速找到一張照片?如果有這樣的圖像識别系統,我可能會告訴計算機,我要找的照片裡有兩個人,這個照片是在頤和園照的。

三、圖像識别的困難在哪裡?

圖像識别有很多難點。第一個困難就是它的視點變化很多。當我們對同樣一個物體拍照的時候,因為視點不同,得到的圖像外觀是不一樣的。是以對同一個物體這樣看或者那樣看,看外觀非常不一樣。但是也許兩個不同的物體,外觀又可能會很相近。是以這是造成圖像識别的一個困難。

第二個難點就是尺度問題。物體在圖像中近大遠小,這給我們做圖像識别會帶來一定的難度。

【幹貨】張長水:圖像識别與機器學習

光影的變化一向是計算機視覺特别關心的一個問題,光影變化是圖像識别的第三個難點。同樣一個人在不同光影下看起來判若兩人。

第四個難點是背景複雜。在複雜背景下,找到某一個人帶着拐杖,找到一個戴帽子的人難度很大。

【幹貨】張長水:圖像識别與機器學習

第五個難點是遮擋。遮擋是計算機視覺特别關心的一個難點。比如說,這個圖檔裡熙熙攘攘的人中,我們知道這大概是一個女孩:她有棕色的頭發,穿着一個短袖衫。我們人的本領很強,這種情況下還能識别出男女。但是計算機現在還做不到這一點。

第六個難點是變形。非鋼體在運動的時候會産生變形。同樣一匹馬在不同的情況下的圖像表現會非常不一樣。

四、圖像識别的發展曆史

【幹貨】張長水:圖像識别與機器學習

圖像識别剛開始的時候是從單一的物體識别做起。上邊這張圖像展示的是傳統的幾何方法的結果。我們的客觀世界那麼複雜、那麼多樣,我們該怎麼做識别呢?

那就先從特别簡單的問題做起。這也是我們做科學研究的一般的方法:從簡單的問題着手。比如從做積木的識别入手。因為積木有很規範的幾種形狀。

上圖是識别出的簡單的刮胡刀。這些人造的非正常範的幾何體的組合,隻要識别出長方形、矩形、正方形、三角形等,就會把刮胡刀,工具檢測和識别得非常好。另外一種方法,是根據外觀識别。我不考慮要識别的物體的幾何結構,僅僅看它外觀長什麼樣。這裡列出的是做人臉檢測的例子。

【幹貨】張長水:圖像識别與機器學習

做人臉識别的研究曆史相對比較長。大概七幾年就開始有這樣的研究工作了。直到現在仍然有很多人臉識别的研究工作發表。

另外一個課題就是手寫數字識别。手寫數字看起來是很簡單的事,但是對手寫數字識别的研究引發出相當多的研究方法,給我們帶來很多的成果,是一個很有意思的課題。此外的課題還有汽車的檢測。我這裡隻是列了這幾個。其實同時期還有指紋識别、文字識别OCR等、等。當時有的研究工作已經發展到了産品化的程度,包括OCR和指紋識别。

在2000年之前的圖像識别曾經采用過幾何的方法、結構的方法、規則的方法,當然也用了一些比較簡單的模式識别的方法。

在80年代後期、90年代期間,機器學習領域發生了什麼?這個時期的機器學習有了一個飛速的發展,出現了一些了不起的研究成果,包括:支援向量機方法,AdaBoosting方法,計算學習理論等。成果出現。這些都使得機器學習和識别大大的往前走。在2002年後的一段時間裡,一個華人女科學家,叫李飛飛,開始用一個新的思路做圖像識别。

他們希望設計一個統一的架構做圖像識别,而不是就事論事地針對一種圖像識别任務設計一套專門的方法。他們希望這個統一的架構能識别成千上萬種物體。另外,希望機器學習領域的出色成果可以用在圖像識别上。她們還借鑒文本分析裡的方法-“詞袋”(bag of words)的方法用于圖像識别。

【幹貨】張長水:圖像識别與機器學習

什麼是“詞袋”方法?舉一個例子。比如要識别一張人臉,我們不考慮人臉結構那麼複雜,我們隻要看看裡面有沒有鼻子、眼睛、嘴巴、下巴。有了這些部件,隻要這些部件在一起,就說這是一張人臉。你可能會覺得這很簡單。

這個方法來源自對文本的研究。在自然語言處理裡面,有一個任務是對文本分類。文本分類中就采用了“詞袋”方法。

比如說有這樣一篇文章,我們想知道這篇文章是屬于哪個類别。它是在讨論軍事,還是在讨論科學。那麼我們怎麼做呢?一種辦法是按我們通常會想到的方法,就是把每一句話都讀懂,做解析,知道句子的文法結構,然後去了解句子的内容。但是,對句子做做文法分析很難,了解句子很難。我們往往做不好,是以就不采用這種方法。

實際上,我們可以用一個簡單的方法:我們隻要看這篇文章出現過哪些詞出現的頻率高。這篇文章中的高頻詞是:視覺、感覺、腦、神經,細胞,你會說這篇文章屬于神經科學類。還有一篇文章,其中的高頻詞是:中國、貿易、出口、進口、銀行、貨币等,你會知道這篇文章屬于經濟類。這個方法不用分析和解析句子和段落的文法結構,而隻要把這些高頻詞放到一塊,叫“bag of words”。

怎樣把這種方法用于圖像識别呢?在識别圖像的時候,我們也可以把圖像中的“高頻詞”放在一起來識别圖像。這裡的“詞”是什麼?直覺地說就是小的圖像塊。比如我們要識别一張人臉,這樣的圖像上就會有像皮膚一樣,或者像眼睛一樣的圖像塊。

而相對來說,如果識别自行車,就會出現和車有關的圖像塊,如:車座、車梁。這些圖像塊就是“詞”。這樣就可以采用“詞袋”方法。實際上,圖像中的詞不是我們說的這麼直覺,而是下方這樣的圖像小塊。它是很底層的圖像塊,非常小,3*3,5*5或者7*7大小的圖像塊。這樣小的圖像塊不表達很抽象的語義。

【幹貨】張長水:圖像識别與機器學習

這種方法提出後,有很多有意思的相關的論文發表。但是這種方法還有缺陷。我們看這樣的幾個數字,在圖像識别領域有一個物體識别比賽,這個比賽就是給你一些圖像,讓你去設計和訓練你的算法。比賽的時候就是提供一些新的圖像,要求算法告訴哪張圖檔是什麼類别。

如果預測前5個類别中有标準答案,就算預測正确。否則計算錯誤。這個比賽在2010年的第一名的成績是72%,到2011年第一名的成績是74%。我們知道,全世界那麼多優秀的團隊,有那麼好的資源去做這個事,每年的進步大概就是1%-2%的樣子。

 在2000年之後這些年,機器學習在做什麼事?機器學習仍然是做基礎研究,出現了很多優秀成果。其中,2006年Hinton在Science上發表了一篇文章介紹他們的深度學習方法。有人建議Hinton用他們的方法試一試這個物體識别問題。結果在2012年的比賽中,他們獲得了第一名,成績是85%的識别率。後來大家發現這個方法原來那麼好,是以大家一擁而上,紛紛用這種方法解決各自關心的問題。為什麼人工智能現在這麼熱?主要就是因為這個原因。

張長水教授的實驗室也用這個方法做了交通辨別的識别,這是基金委的一個項目。花了很大的力氣,成果很好,基本上可以到實用的程度。

五、 面臨的困難和今後要研究的問題

看起來圖像識别已經很好了,很多人很樂觀,很多人熱血沸騰。其實圖像識别還沒有做得那麼好。有什麼樣的困難?我們舉幾個例子。

比如說我們在做圖像識别的時候,通常我們要标注資料,就是要标注這是鳥、這是貓。然後用這些圖像去做訓練。标注資料其實是很頭疼的事,很花時間很花錢。李飛飛的項目組收集的第一個資料集有101類物體。

這個圖像庫做得很好,後來一些算法可以在這個資料庫上達到99%多的識别率。人們說,這些圖像品質太好了,種類也太少。後來她們又做了這個資料庫,這個資料庫有256種物體,圖像也沒有對齊得那麼好。盡管這樣,這個資料庫開始太小。

【幹貨】張長水:圖像識别與機器學習
【幹貨】張長水:圖像識别與機器學習

在2009年李飛飛她們釋出了新的資料庫ImageNet,大概有幾千萬張圖像資料。

标資料是件頭疼的事。例如這個資料庫就要對每個物體用一個方框框起來,并給出一個類别标号。這是一些典型的圖像,給每個物體都要框起來,都要标好這是什麼物體。

【幹貨】張長水:圖像識别與機器學習

還有一個圖像資料庫叫LabelMe。上圖是其中一張圖像,标得非常細,房屋的外形、輪廓、窗戶、汽車、所有草地、馬路都标得很清楚。大概有十萬多張圖檔,标得非常好的圖像大概一萬張。張教授有一次對MIT的一個學生說,你們這個資料庫做得真了不起,花了那麼大功夫。他說這是另一個學生做的。其實不是那個學生标的圖像,大部分圖像都是他媽媽标的,他媽媽退休在家,每天給他标資料,做媽媽的多麼了不起。

【幹貨】張長水:圖像識别與機器學習

還有一個華人科學家,也很了不起,叫朱松純。他說我們應該把圖像标得更細。例如這張圖檔,其中的椅子可以标得非常細,座椅、椅背、腿的輪廓都标得很準确。他們還标了各種各樣的椅子。他們雇了幾十個美工,一天到晚标資料,幹了幾年,但是資料庫才幾十萬張圖檔。是以标資料是一個非常花錢的事。

是以做機器學習的人就在考慮,能不能不用那麼費心去标資料而把圖像識别做得更好一點。比如這張圖檔,隻要你就是告訴我,你這張圖檔有機車,你不用說車在哪兒我也能把車檢測和識别出來。

現在還有很多問題沒解決。比如說我們現在的技術隻是對圖像做了一些解析,可以識别出這張圖中這個部分鳥、這是樹,但是沒有對這個圖檔做更深入的了解。例如:這個算法并不知道這些物體之間的關系是什麼。而對于我們了解一張圖檔來說,了解物體之間的關系非常重要。

在這個方面給大家介紹一下我們做的一個工作,叫image caption。這件事好幾個機關都在做,微軟、百度、Google都在做。給大家看的這些結果是實驗室在做的工作。Image caption這是一個什麼樣的工作呢?就是你給我一張圖檔,你不需要告訴我這兒有一隻狗,它叼的是一個什麼樣的東西。

你隻需要告訴我一隻狗在叼着一個飛碟就夠了。我們現在就利用這八萬多張圖檔和對應的自然語言的句子來設計一個模型,并且訓練這個模型,使得當你給我一張新的圖檔的時候,這個算法能生成一個自然語言的句子來描述它。比如這是針對對這張圖檔生成的句子:火車站旁邊的軌道上停了一輛火車。再比如這個圖像:一群斑馬彼此很緊密地站在一起。還有這張圖檔:一隻狗嘴裡叼着飛碟。不僅如此,在做這個時候,還得到了另外一些有意思的結果。這個算法裡有一個視覺的注意模型。

這個模型可以自動找到關心的圖像塊。在對這張圖像生成的句子A brown cow is standing in the grass時,我們看到brown,cow, grass都對應着正确的圖像塊。大家注意,我們在訓練資料裡面并沒有告訴算法哪一塊是牛,哪一塊是草地。這說明,這個算法學習到了這些概念。

既然是這樣,除此以外,其他的概念是不是也能找對?我們就把其他的一些詞所對應的圖像塊找出來,看一看。比如說這一排是消火栓這個詞對應的圖像塊。這是黑貓這個概念。結果都找對了。比較有意思的是,除了名詞以外,程式還找到了動詞對應的概念。比如說fill with(把…填滿),你會發現圖檔全是容器裡面盛東西。

這個結果很有意思,非常像小孩在成長過程中學習。我們會教一個一歲多的孩子,告訴他“這是一張桌子”,“這是一個雷射筆”。我們不會,也無法說:“一張”是量詞,“桌子”是關鍵詞。但是孩子慢慢就能學會這些概念。我們的算法也是這樣。

【幹貨】張長水:圖像識别與機器學習

上面列舉了我們取得的成果。但是,面前還有很多很多的問題沒有解決。比如,我們現在看深度網絡很有效,但是它為什麼有效?我們還不太明白。除此之外還有其他的模型嗎?比如說有一些工程上的問題,那麼多資料你能算嗎?機器跑得動嗎?做機器學習的人非常關心這些問題。

另外,比如說這裡有一束花。現在算法可以識别出這是一束花。但是它還不能說出哪裡是葉子,哪裡是花蕊,哪裡是花瓣。我們看起來已經取得了那麼多的成果,從某種意義上來說我們也可以把它們做成産品,讓他為我們服務,但同時我們看到還有更多的問題沒有解決得很好,這就需要我們繼續努力。

本文基本上是在講圖像。但是我們看到背後用的很多方法都是機器學習的方法。是以是機器學習人的努力,計算機視覺科學家的努力,大家共同的努力,取得了現在的成果。我們可以用這些成果轉化成産品,使我們的生活可以更智能化一點。

原文釋出時間為:2017-03-18

本文來自雲栖社群合作夥伴“資料派THU”,了解相關資訊可以關注“資料派THU”微信公衆号