(2014-05-28)Facebook上自動標誌人名的功能,背後有哪些複雜的故事?

(圖片取自網路)

(Brain.com2014-05-28)大家都知道臉書可以「認臉」。上傳一張團體照,臉書有一個功能讓你標記照片裡每個人的名字,好像給每人貼一張標籤。下次再上傳一張團體照,如果有人出現在之前的照片裡,臉書就會自動顯現他們的名字,不需再次標記。

如果別人的照片裡有你,把你的名字在他的照片裡標記,效果也一樣,凡是以後有你的照片,你的名字就會自動出現。只要標記一次,臉書就記住你的模樣,省了大家每次標記的麻煩。

聽起來很簡單,事實上卻相當複雜。不過,背後的邏輯只有一個,就是比對兩張照片認定是同一個人。如果兩張照片相同還好辦,但想想就知道前後貼上去的照片,不太會相同,拍攝角度、彩色亮麗、光線明暗、尺寸大小,可能完全不同,但臉書卻能認出是同一個人,至少辨識的程度很高。

照片加註標籤(Tag)的功能,鼓勵了很多人把照片存放在臉書,因為照片裡有姓名標籤,可以讓記憶保存下來,尤其是事隔多年再看更能回味。但辨認同一個人的兩張不同照片並不容易,由人來辨認也不是百分百,何況是電腦?所以張冠李戴、名字放錯了,並不稀奇,而臉書也稱照片上的姓名標籤僅是「建議」,錯了可以由當事人更改。

照片標籤在2011 年初推出,但很多人認為侵佔隱私,不久臉書把就這個功能收回,2013 年又再度開放,讓用戶可以自己關閉這一功能。儘管爭議,臉書持續發展照片的比對技術,在月前宣佈了突破性的發展,新的辨識軟體精確度高達 97.25%,接近人腦辨識的 97.53%。新技術還在實驗室,以後用在比對照片上,會比現在減少 27% 的錯誤。

臉書稱這個新軟體為DeepFace,用兩道手續處理完成。首先是把照片歸位,也就是調整到一般面向正前方的立體化臉形,然後用一個人工神經網路 (Artificial Neural Network) 做多層次的轉換運算,最後得出來代表照片的數據。如果兩張照片經這個程序所得出來的數據相似到一定的程度,就可以認定這兩張照片是同一個人。

神經網路原指動物的神經系統,特別是腦子的結構,我們的腦子有無數個神經細胞(Neuron),細胞之間以神經連接,構成一個超級複雜的網路,每遇到外來的刺激,經過神經在細胞之間層層傳送解碼,最後做出反應。

人工神經網路是電腦軟體,以點與線的連接,來模擬神經系統的細胞與神經,是人工智慧(Artificial Intelligence)的重要工具。每一點是一個轉換與加權的運算程序,每一條線是連接兩點的通路,當一個點接受到輸入信息,處理之後就傳到另外的點,處理後再傳下一個點。這樣重複下去,直到取得最終的結果。因為運算的重複,使得神經路有學習的潛能,適用解決複雜的問題,像是視覺與語音的辨識,因為這些問題沒有辦法用一般規則性的電腦程式解決。

那臉書的神經網路有什麼樣的結構?臉書說一共有九層,深度超過一般的人工神經網路,所以稱為「Deep」。每一層有多個點,負責不同的運算,一共用了 1 億 2000 萬個參數做運算的連接。

要訓練這個網路辨識人臉,臉書從資料庫取出 4000 張有代表性的人臉照片,再從中製作出 400 萬種「變臉」,也就是每張臉平均有一千個不同的臉譜,然後把這許多臉譜加進神經網路,讓它學習辨識照片。外界的評論認為,學習的資料夠多,可以大幅度提升辨識的能力。

DeepFace目前僅是一個研究計畫,臉書說對12億的用戶沒有影響,執行長Mark Zuckerberg對臉書進入人工智慧的領域非常高興,但不止於認臉。他上周對投資人說,臉書的目的是要了解世界,除了整理「臉」、更要整理「書」,要分析臉書內文字資料的意義,讓臉書從被動的接收器,轉換成主動的生活互動器。臉書的下一步進展,我們值得關注。


DeepFace 學術論文 DeepFace: Closing the Gap to Human-Level Performance in Face Verification,將在六月底 IEEE 電腦視覺與形體識別年會上發表。

※本文取材自2014年5月26日「那福忠週一論壇:『臉』書」。對本文有任何看法,歡迎eMail:frank.na@gmail.com給作者,分享您對本文的看法。