機器學習不能做什麼?

AI前線發表於2018-03-21

機器學習不能做什麼?

作者 | Aaron Edell
譯者 | Liu Zhiyong
編輯 | Cai Fangfang
AI 前線導讀:人工智慧是人類未來發展的主要推動力之一,我們必須掌握它。但不幸的是關於機器學習的認識,公眾是存在一些誤區的。實際上,機器學習並非萬能的,Machine Box 的聯合創始人、CEO 的 Aaron Edell 寫了一篇文章:What machine learning isn’t,給公眾傳遞了採用機器學習要與正確的預期結合起來才能獲得成功的理念。

更多幹貨內容請關注微信公眾號“AI 前線”,(ID:ai-front)

採用人工智慧最大的挑戰是對其期望過高。把機器學習和正確的預期結合起來,會比誤以為人工智慧能為你做什麼帶來更好的結果。

我熱愛機器學習,我在工作中利用它已有三年多了,並見證它在很多不同的領域中,為企業節省了時間和金錢。但是如果最終結果與你最初的設想南轅北轍,那麼事情將可能很快變槽。

譯註:關於機器學習為企業節省時間和金錢,可參閱作者 Aaron Edell 的另一篇文章:6 ways people are making money with machine learning。闡述了利用機器學習來賺錢的幾個思路。

機器學習有許多很好的使用案例,你可以查閱 Aaron Edell 撰寫的文章 How I use machine learning to save time、Make a massive, searchable online clothing store quickly with machine learning,這兩篇文章介紹了更多的機器學習的使用案例。

我們要先搞明白,機器學習並不能預測股市是有原因的。因為最先進的技術之所以有限制不是因為沒有足夠多的機器學習用例而是人們必須開闊視野,給予正確的指令。

讓我們來看一些例子。

人臉檢測

最先進的人臉檢測(Face Detection)技術正確率約為 99%。人臉檢測是一個非常先進的機器學習的例子,但是有幾件事情要知道。首先,99% 這個資料是來自於驗證集。如果有一種機器學習演算法提到準確率時,你要記得這個數字是來自於訓練過程中的步驟,其中 20% 的訓練資料會被分離出來用於驗證模型。而這種資料通常是隨機選擇的,但它總是與其他訓練資料相似。一旦你將訓練好的模型應用到現實世界中,它接收到的是與訓練模型完全不同的影像。因此,在實踐中,資料集的準確率可能不到 99%。

有時模型可能會將一些東西認成一張臉,但它並不是(假正類,false positive),或者完全錯過一張臉(假負類,false negative)。在不同的準確率水平和不同反比效能水平表現上可以組合出很多模型。你必須知曉什麼樣的效能和準確率的水平是可以接受的。如果你要檢測成千上萬的人臉,獲得 10~50 個假負類或正類(positives),也好過花十倍的時間和成本去做一個更精確的演算法,但只是降低了誤報率的一半。而一個人可以很快地糾正假負類或正類的小子集。

譯註:如果一個例項是正類並且也被預測成正類,即為真正類(True positive), 如果例項是負類被預測成正類,稱之為假正類(False positive)。相應地,如果例項是負類被預測成負類,稱之為真負類(True negative), 正類被預測成負類則為假負類(false negative)。我們常犯兩類錯誤:第一類,是虛假的肯定,當原型並不存在時它認為原型是真的;第二類,是虛假的否定,當原型存在時它卻認為原型是虛假的。

因此,作為一家企業,當你遇到這一問題時,你對資料中得到多少假正類和負類的預測,以及如何處理這些問題,都需要弄清楚。事實是,你確實會遇到這些問題,因為有時候機器就是檢測不到人臉,我們也不知道為什麼會這樣。我們已經習慣了人類大腦的識別模式,以至於忘記了計算機是以完全不同的方式來執行的。

譯註:關於人臉識別的更多資訊可參閱 Wikipedia 的詞條 Face perception。

這裡有一些實用的方法來提高準確率,比如提前清理資料集之後再進行現實中的人臉識別,還包括確保每一張人臉都容易看到(而不是某個角度),不被任何東西遮掩,或者以很奇怪的長寬比例呈現。此外,解析度太高的話,會引入更多的噪聲,可能會導致人臉檢測演算法失效。

光學字元識別(OCR)

OCR 在文件識別上做得非常好。像邊緣檢測和計算機視覺這樣的技術已經很成熟,利用這些技術可以很好地識別掃描文件中的文字。

OCR 糾結的地方在於,有些影像依然無法被識別成文字,這也是人類利用自身的 reCAPTCHA 技術作為識別文字方法的原因。人類的這種識別技術非常精密,無論字母出現在哪兒,無論這些字母是多麼模糊、多麼七扭八歪、色彩多麼斑斕,人類都能輕鬆辨識。而計算機技術還在努力趕超。

譯註:Carnegie Mellon University(CMU) 設計了一個名叫 reCAPTCHA 的強大系統,讓他們的電腦去向人類求助。具體做法是:將 OCR 軟體無法識別的文字掃描圖傳給世界各大網站,用以替換原來的驗證碼圖片;那些網站的使用者在正確識別出這些文字之後,其答案便會被傳回 CMU。根據 Science 的介紹,reCAPTCHA 是利用 CAPTCHA 的原理(CAPTCHA 的中文全稱是全自動區分計算機和人類的圖靈測試),藉助於人類大腦對難以識別的字元的辨別能力,進行對古舊書籍中難以被 OCR 識別的字元進行辨別的技術。也就是說,reCAPTCHA 不僅可以反 spam,而且同時還可以幫助進行古籍的數字化工作(可以稱為人工 OCR)。

這並不是說 OCR 是不可能的事兒,事實上,它有很多很好的用例,但設定正確的預期十分重要。讓我們以足球比賽舉例。

機器學習不能做什麼?

如果我用 OCR 來抓取這個凍結幀,我可能會得到以下資料:

[0] PREMIER LEAGUE [1] TOT 2 [2] M [3] U [4] 0 [5] 36:2 [6] 4 [7] SPORTS [8] NEW 0 BUR 0 [9] HALFTIME [10] LIVE [11] NBCSN

如果沒有上下文的話,你就不會知道哪些是得分、球衣號碼、標識、時間或者球隊名稱(當然前提是如果它抓取了所有這些資訊)。在處理視訊的過程中,會因為出現大量的假正類和負類而變得越來越混亂。

這個時候不要將通用的 OCR 應用到各種各樣的問題上,而應該考慮具體用哪種,並將注意力集中在該用例上。如果它正追蹤球員,那麼一個目標跟蹤系統可能更為合適;而如果是跟蹤時間或者分數的話,那就讓模型固定在一個區域上來跟蹤。

視訊

處理視訊是很費事的。人們通常以為視覺(人臉、影像、物體、OCR 等)與視訊中的影像機器處理起來是一樣的,但情況並非總是如此。數字視訊是一個把編碼器和壓縮率、長寬比混裝在一起的世界。

機器學習不能做什麼?

當處理視訊時,必須使用較低的解析度,否則將會耗費大量資源,並可能要等待數年才能完成。但如果視訊率較低或視訊壓縮比較高的話,大多數時候你是以部分幀結尾的。你可以在 Wikipedia 搜尋 Group of pictures 詞條來閱讀更多關於影像群組(Group Of Pictures,GOP)結構的資訊,以及它的工作原理,但問題在於,視訊檔案未必是連續的靜止影像。因此,將人臉識別和影像識別的框架拉出來去識別視訊,與同樣識別一系列靜態照片相比,二者還是有很大區別的。

譯註:影像群組就是一組以 MPEG 編碼的影片或視訊串流內部的連續影像。每一個以 MPEG 編碼的影片或視訊串流都由連續的影像群組組成。

你可以通過暫停任何 YouTube 視訊來自行測試。要注意人們的面部表情有時會顯得很奇怪,有時變得模糊或變得不像本人。下面是 Rick Santorum 的影片的凍結幀的例子。

機器學習不能做什麼?

從人臉識別的角度來看這些人臉:

機器學習不能做什麼?

這是一個人臉識別系統所看到的:

你能告訴我左邊那個人就是 Rick Santorum 嗎?如果你不知道,那電腦也可能辨認不出來。

作為一個人,觀看視訊並識別人物非常容易。但是如果你把每一幀都拉出來看,你就會開始注意到資料的質量並不總是像你想的那麼好。

這是否意味著你不應該在視訊上利用機器學習呢?當然不是。機器學習是自動分類和標記資產的好方法。使用技巧是在結果上設定合理的預期。用一個把地球上所有名人都採集一遍的模型過這個視訊會得到很多的假正類(即錯誤識別某人),相比之下如果這個模型只採集過美國的政客,再過這個視訊結果就會很好多。但是,即使你無法以這種方式來管理已訓練的模型,你仍然可以通過把資料看成一個整體來獲得價值。如果 Rick Santorum 在視訊中是獨立出現的,那麼在大多數情況下,模型能夠正確地識別出這個人。你可以看到他在那個時間點會出現,然後對他在視訊中真實出現了和可能出現的位置做一些可能性的假設。這點對每個用例並不都是適用的,但如果你準備進行一些嘗試,嘗試不同的工作流和模型(並思考正在解決的問題),那麼你就將會獲得成功。

如何通過機器學習獲得成功

正如我剛才所說,機器學習是驚人的。它可以在很短的時間內完成非同尋常的事情。我公司的一名客戶利用它識別期刊中數百萬文章中的虛假研究文章,另一個客戶使用人臉識別來驗證參加考試的人員,還有一個客戶使用我們的裸體檢測來標記使用者提交的內容中不適宜人們閱讀的部分。

譯註:作者的公司是 Machine Box,該公司將最先進的機器學習功能置於 Docker 容器中,因此開發人員可以很快地將自然語言處理、面部檢測、物件識別等功能輕鬆納入自己的應用程式中。另外,上述識別虛假研究文章可參閱作者的另一篇文章:Stopping fake research papers from getting published using machine learning。

我們還有一位客戶使用內容推薦引擎,通過向客戶展示他們更有可能購買的東西來增加其電子商務網站的收入。這是一個很好的用例,因為假正類和負類並不會影響收入的增長,甚至有時還會起到幫助作用,因為他們通過展示平時客戶不會關注的事物相當於讓客戶看到了新的品類。

人們使用自然語言處理(Natural Language Processing,NLP)來處理文字以改善搜尋的表現,選出更有可能激起你購買慾望的照片;在農場檢測動植物的病害,機器學習越來越多地應用到我們的生活中。

如果你知道自己的預期,機器學習可以為你帶來無限的商機。


更多幹貨內容,可關注AI前線,ID:ai-front,後臺回覆「AI」、「TF」、「大資料」可獲得《AI前線》系列PDF迷你書和技能圖譜。


相關文章