【編者按】本文作者董飛,微信公眾號:董老師在矽谷
史丹福大學每年都會舉行一個比賽,邀請谷歌、微軟、百度等IT企業使用ImageNet——全球最大的圖像識別資料庫,測試他們的系統運行情況。每年一度的比賽也牽動著各大巨頭公司的心弦,過去幾年中,系統的圖像識別功能大大提高,出錯率僅為約5%(比人眼還低)。它的締造者就是史丹福大學的李飛飛教授,下一步就是圖像理解,她開啟了Visual Genome(視覺基因組)計劃,要把語義和圖像結合起來,推動人工智慧的進一步發展。原文來自TED講座。
背景李飛飛生於北京,16歲隨父母移居美國。 現為史丹福大學計算機系終身教授,人工智慧實驗室與視覺實驗室主任。主要研究方向為機器學習、計算機視覺、認知計算神經學,側重大數據分析為主,已在Nature、PNAS、Journal of Neuroscience、CVPR、ICCV、NIPS等頂級期刊與會議上發表了100餘篇學術論文。她於1999年以最高榮譽獲普林斯頓大學本科學位,並於2005年獲加州理工學院電子工程博士學位。曾獲2006年微軟學者新星獎以及谷歌研究獎、2009年NSF傑出青年獎、2011年美國斯隆學者獎、2012年雅虎實驗室學者獎以及2014年IBM學者獎。她還是TED 2015大會演講嘉賓。
她是世界上頂尖的計算機視覺專家之一。她參與建立了兩個被AI研究者廣泛使用來教機器分類物體的資料庫:Caltech 101和ImageNet。
她想要打造出一種看得見東西、幫助我們改善生活的機器。過去15年中,李飛飛一直在教計算機看東西。從一個博士生成長為史丹福大學計算機視覺實驗室主任,李飛飛不遺餘力地朝著困難重重的目標邁進。她希望創造出一種電子眼,能讓機器人和機器看懂世界,更重要的是,能夠了解自己所處的環境。
在一場被觀看了120多萬次的TED演講(如下方視頻)中她說:「我總在想著裡奧和他將生活的未來世界。」在她心中最理想的未來中,機器可以看見世界,但目的並不是為了效率最大化,而是為了共情。
以下是李飛飛TED演講:如何教計算機理解圖片
下面就來自她這次TED演講稿
這是一個三歲小孩在講述她從一系列照片裡看到的東西。
對這個世界, 她也許還有很多要學的東西, 但在一個重要的任務上, 她已經是專家了: 去理解她所看到的東西。我們的社會已經在科技上取得了前所未有的進步。 我們把人送上月球, 我們製造出可以與我們對話的手機, 或者訂製一個音樂電臺, 播放的全是我們喜歡的音樂。 然而,哪怕是我們最先進的機器和電腦也會在這個問題上犯難。 所以今天我在這裡, 向大家做個進度匯報: 關於我們在計算機視覺方面最新的研究進展。 這是計算機科學領域最前沿的、 具有革命性潛力的科技。
是的,我們現在已經有了具備自動駕駛功能的原型車, 但是如果沒有敏銳的視覺, 它們就不能真正區分出地上擺著的是一個壓扁的紙袋, 可以被輕易壓過, 還是一塊相同體積的石頭, 應該避開。我們已經造出了超高清的相機, 但我們仍然無法把這些畫面傳遞給盲人。 我們的無人機可以飛躍廣闊的土地, 卻沒有足夠的視覺技術去幫我們追蹤熱帶雨林的變化。 安全攝像頭到處都是, 但當有孩子在泳池裡溺水時它們無法向我們報警。 照片和視頻,已經成為全人類生活裡不可缺少的部分。 它們以極快的速度被創造出來, 以至於沒有任何人,或者團體, 能夠完全瀏覽這些內容, 而你我正參與其中的這場TED, 也為之添磚加瓦。
直到現在,我們最先進的軟體也依然為之犯難: 該怎麼理解和處理這些數量龐大的內容? 所以換句話說, 在作為集體的這個社會裡, 我們依然非常茫然,因為我們最智能的機器依然有視覺上的缺陷。
」為什麼這麼困難?「你也許會問。 照相機可以像這樣獲得照片: 它把採集到的光線轉換成二維數字矩陣來存儲 ——也就是「像素」, 但這些仍然是死板的數字。 它們自身並不攜帶任何意義。 就像」聽到「和「聽」完全不同, 」拍照「和」看「也完全不同。 通過「看」, 我們實際上是「理解」了這個畫面。
事實上,大自然經過了5億4千萬年的努力才完成了這個工作, 而這努力中更多的部分是用在進化我們的大腦內用於視覺處理的器官, 而不是眼睛本身。
所以"視覺」從眼睛採集信息開始, 但大腦才是它真正呈現意義的地方。
15年來, 從我進入加州理工學院攻讀Ph.D到後來領導史丹福大學的視覺實驗室, 我一直在和我的導師、 合作者和學生們一起教計算機如何去「看」。 我們的研究領域叫做 "計算機視覺與機器學習"。 這是AI(人工智慧)領域的一個分支。
最終,我們希望能教會機器像我們一樣看見事物: 識別物品、辨別不同的人、 推斷物體的立體形狀、 理解事物的關聯、 人的情緒、動作和意圖。 像你我一樣,只凝視一個畫面一眼就能理清整個故事中的人物、地點、事件。
實現這一目標的第一步是教計算機看到「對象」(物品), 這是建造視覺世界的基石。 在這個最簡單的任務裡, 想像一下這個教學過程: 給計算機看一些特定物品的訓練圖片, 比如說貓, 並讓它從這些訓練圖片中, 學習建立出一個模型來。 這有多難呢?
不管怎麼說,一隻貓只是一些形狀和顏色拼湊起來的圖案罷了, 比如這個就是我們最初設計的抽象模型。 我們用數學的語言, 告訴計算機這種算法: 「貓」有著圓臉、胖身子、 兩個尖尖的耳朵,還有一條長尾巴, 這算法看上去挺好的。
但如果遇到這樣的貓呢? 它整個蜷縮起來了。 現在你不得不加入一些別的形狀和視角來描述這個物品模型。
但如果貓是藏起來的呢? 再看看這些傻貓呢? 你現在知道了吧。 即使那些事物簡單到只是一隻家養的寵物, 都可以呈現出無限種變化的外觀模型, 而這還只是「一個」對象的模型。
大概在8年前, 一個非常簡單、有衝擊力的觀察改變了我的想法。 沒有人教過嬰兒怎麼「看」, 尤其是在他們還很小的時候。 他們是從真實世界的經驗和例子中學到這個的。 如果你把孩子的眼睛都看作是生物照相機, 那他們每200毫秒就拍一張照。 ——這是眼球轉動一次的平均時間。 所以到3歲大的時候,一個孩子已經看過了上億張的真實世界照片。 這種「訓練照片」的數量是非常大的。
所以,與其孤立地關注於算法的優化、再優化, 我的關注點放在了給算法提供像那樣的訓練數據——那些嬰兒們從經驗中獲得的質量和數量都極其驚人的訓練照片。
一旦我們知道了這個, 我們就明白自己需要收集的數據集, 必須比我們曾有過的任何資料庫都豐富——可能要豐富數千倍。 因此,通過與普林斯頓大學的Kai Li教授合作, 我們在2007年發起了ImageNet(圖片網絡)計劃。 幸運的是,我們不必在自己腦子裡裝上一臺照相機,然後等它拍很多年。 我們運用了網際網路, 這個由人類創造的最大的圖片寶庫。
我們下載了接近10億張圖片並利用眾包技術(利用網際網路分配工作、發現創意或解決技術問題),像亞馬遜(Amazon)土耳其機器人(Mechanical Turk)這樣的平臺來幫我們標記這些圖片。 在高峰期時,ImageNet是「亞馬遜土耳其機器人」這個平臺上最大的僱主之一。
來自世界上167個國家的接近5萬個工作者,在一起工作幫我們篩選、排序、標記了接近10億張備選照片。 這就是我們為這個計劃投入的精力, 去捕捉一個嬰兒可能在他早期發育階段獲取的」一小部分「圖像。他們幫忙給數百萬張貓、飛機和人的隨機圖像貼標籤。
現在回頭看,用大數據來訓練計算機算法的做法或許顯而易見。但是在2007年,這並不顯然。在這段旅途中,我很長一段時間都非常孤獨,有些同事友情建議我做些對獲得終身教職更有用的事。我們在研究經費方面也一直碰到麻煩,我可能需要重開我的乾洗店來為ImageNet籌資。
我們仍然在繼續著。 在2009年,ImageNet項目誕生了—— 一個含有1500萬張照片的資料庫, 涵蓋了22000種物品。 這些物品是根據日常英語單詞進行分類組織的。 無論是在質量上還是數量上, 這都是一個規模空前的資料庫。
舉個例子,在"貓"這個對象中, 我們有超過62000隻貓長相各異,姿勢五花八門, 而且涵蓋了各種品種的家貓和野貓。
我們對ImageNet收集到的圖片感到異常興奮, 而且我們希望整個研究界能從中受益, 所以以一種和TED一樣的方式, 我們公開了整個資料庫, 免費提供給全世界的研究團體。
那麼現在,我們有了用來培育計算機大腦的資料庫, 我們可以回到」算法「本身上來了。 因為ImageNet的橫空出世,它提供的信息財富完美地適用於一些特定類別的機器學習算法。
「卷積神經網絡」, 最早由Kunihiko Fukushima,Geoff Hinton, 和Yann LeCun在上世紀七八十年代開創。
就像大腦是由上十億的緊密聯結的神經元組成, 神經網絡裡最基礎的運算單元也是一個「神經元式」的節點。 每個節點從其它節點處獲取輸入信息, 然後把自己的輸出信息再交給另外的節點。
此外,這些成千上萬、甚至上百萬的節點都被按等級分布於不同層次, 就像大腦一樣。
在一個我們用來訓練「對象識別模型」的典型神經網絡裡, 有著2400萬個節點,1億4千萬個參數, 和150億個聯結。 這是一個龐大的模型。 藉助ImageNet提供的巨大規模數據支持, 通過大量最先進的CPU和GPU, 來訓練這些堆積如山的模型, 「卷積神經網絡」 以難以想像的方式蓬勃發展起來。 它成為了一個成功體系, 在對象識別領域, 產生了激動人心的新成果。
神經網絡用於解讀圖片,包括一些分層排列的人工神經元,神經元數量從幾十到幾百、幾千,甚至上百萬不等。每層神經元負責識別圖像的不同成分,有的識別像素,有的識別顏色差異,還有的識別形狀。到頂層時——如今的神經網絡可以容納多達30層——計算機就能對圖像識別出個大概了。
上面幾張圖是計算機在告訴我們: 照片裡有一隻貓、 還有貓所在的位置。 當然不止有貓了, 這是計算機算法在告訴我們照片裡有一個男孩,和一個泰迪熊; 一隻狗,一個人,和背景裡的小風箏; 或者是一張拍攝於鬧市的照片比如人、滑板、欄杆、燈柱等等。
有時候,如果計算機不是很確定它看到的是什麼, 我們還教它用足夠聰明的方式給出一個「安全」的答案,而不是「言多必失「——就像人類面對這類問題時一樣。
但在其他時候,我們的計算機算法厲害到可以告訴我們關於對象的更確切的信息, 比如汽車的品牌、型號、年份。
我們在上百萬張谷歌街景照片中應用了這一算法, 那些照片涵蓋了上百個美國城市。 我們從中發現一些有趣的事: 首先,它證實了我們的一些常識: 汽車的價格,與家庭收入呈現出明顯的正相關。 但令人驚奇的是,汽車價格與犯罪率也呈現出明顯的正相關性, 以上結論是基於城市、或投票的郵編區域進行分析的結果。
那麼等一下,這就是全部成果了嗎? 計算機是不是已經達到, 或者甚至超過了人類的能力? ——還沒有那麼快。 目前為止,我們還只是教會了計算機去看對象。 這就像是一個小寶寶學會說出幾個名詞。 這是一項難以置信的成就, 但這還只是第一步。 很快,我們就會到達發展歷程的另一個裡程碑: 這個小孩會開始用「句子」進行交流。 所以不止是說這張圖裡有隻「貓」, 你在開頭已經聽到小妹妹告訴我們「這隻貓是坐在床上的」。
為了教計算機看懂圖片並生成句子, 「大數據」和「機器學習算法」的結合需要更進一步。 現在,計算機需要從圖片和人類創造的自然語言句子中同時進行學習。
就像我們的大腦, 把視覺現象和語言融合在一起, 我們開發了一個模型, 可以把一部分視覺信息,像視覺片段與語句中的文字、短語聯繫起來。
大約4個月前, 我們最終把所有技術結合在了一起, 創造了第一個「計算機視覺模型」, 它在看到圖片的第一時間,就有能力生成類似人類語言的句子。 現在,我準備給你們看看計算機看到圖片時會說些什麼——還是那些在演講開頭給小女孩看的圖片。
計算機: 「一個男人站在一頭大象旁邊。」
計算機還是會犯很多錯誤的。比如: 「一隻貓躺在床上的毯子上。」當然——如果它看過太多種的貓, 它就會覺得什麼東西都長得像貓……
計算機: 「一個小男孩拿著一根棒球棍。」 或者…如果它從沒見過牙刷, 它就分不清牙刷和棒球棍的區別。
計算機: 「建築旁的街道上有一個男人騎馬經過。」 我們還沒教它Art101(美國大學藝術基礎課)
計算機: 「一隻斑馬站在一片草原上。」 它還沒學會像你我一樣欣賞大自然裡的絕美景色。
所以,這是一條漫長的道路。 將一個孩子從出生培養到3歲是很辛苦的。 而真正的挑戰是從3歲到13歲的過程中, 而且遠遠不止於此。 讓我再給你們看看這張關於小男孩和蛋糕的圖。 目前為止, 我們已經教會計算機「看」對象, 或者甚至基於圖片, 告訴我們一個簡單的故事。計算機: 」一個人坐在放蛋糕的桌子旁。「
而坐在桌子旁邊的人,這個年幼的男孩就是李飛飛的兒子,裡奧。
但圖片裡還有更多信息 ——遠不止一個人和一個蛋糕。 計算機無法理解的是: 這是一個特殊的義大利蛋糕, 它只在復活節限時供應。 而這個男孩穿著的是他最喜歡的T恤衫, 那是他父親去雪梨旅行時帶給他的禮物。 另外,你和我都能清楚地看出, 這個小孩有多高興,以及這一刻在想什麼。
電腦或許能用簡單的語言來描述它所「看見」的圖片,但它卻無法描述照片背後的故事。
後邊這一段話也鼓舞人心,這個世界的另一端有一部分人在孜孜不倦為視覺領域的進步不斷努力。
在我探索視覺智能的道路上, 我不斷地想到Leo和他未來將要生活的那個世界。 當機器可以「看到」的時候, 醫生和護士會獲得一雙額外的、 不知疲倦的眼睛, 幫他們診斷病情、照顧病人。 汽車可以在道路上行駛得更智能、更安全。 機器人,而不只是人類, 會幫我們救助災區被困和受傷的人員。 我們會發現新的物種、更好的材料, 還可以在機器的幫助下探索從未見到過的前沿地帶。
一點一點地, 我們正在賦予機器以視力。 首先,我們教它們去「看」。 然後,它們反過來也幫助我們, 讓我們看得更清楚。 這是第一次,人類的眼睛不再獨自地思考和探索我們的世界。 我們將不止是「使用」機器的智力, 我們還要以一種從未想像過的方式, 與它們「合作」。
我所追求的是: 賦予計算機視覺智能, 並為Leo和這個世界, 創造出更美好的未來。
也許這就是科學家的理想和情懷吧。
雷鋒網特約稿件,未經授權禁止轉載。詳情見轉載須知。