AI熱門應用案例集:學會工程化思維
來自專欄混沌大學
這是一份關於AI熱門應用的案例集,包含了難點、竅門以及最新的研發方向,非常珍貴而又接地氣,值得你反覆研讀和收藏。
? 機器學習未來的發展路徑和前景就是從模塊出發,構建一個複雜系統。
——邢波
邢波,師從機器學習泰斗級學術大咖 Michael Jordan ,卡耐基梅隆大學機器學習和醫療中心主任,2017年機器學習學術水平排名世界第一。
同時,他還是生物化學與計算機科學的雙料博士,創立了通用機器學習平台Petuum,並獲得了軟銀投資。
授課老師|邢波卡耐基梅隆大學計算機科學學院教授
通用機器學習平台 Petuum 創始人
翻跟頭、倒著飛、倒著轉圈……
想像一下,一個直升飛機駕駛員,他敢這麼飛嗎?
事實上,如今,最好的直升機駕駛員其實是計算機,依靠的就是機器學習。
那麼,怎樣寫一個程序,讓直升機這麼飛?
我很好的朋友,加州伯克利大學的同學吳恩達博士,他的畢業論文就是用增強學習的演算法,寫出了飛行的程序。
他在模擬機上,不斷隨機模擬各種各樣飛行的可能性、環境的可能性,用一個增強學習的程序,對模擬出來的環境和動作進行適應,然後不斷評估、修正,並最終部署在真正的飛機上,實現神奇的特技動作。
其實,這個增強學習的演算法,就是一個典型的機器學習的應用:有學習能力,可以根據大量的場景數據,不斷修正方程里的參數,最後達到一個穩定的狀態。
所以,從本質上講,機器學習是傳統編程的第二曲線,它是一個寫動作的程序,而不是描述動作本身的程序。它是在學習一個方程,而這個方程的X和Y是一個函數、變數,並不是一個確定的值。
?Tips:
回看整個科學史,機器學習變革意義重大
牛頓定律,怎麼發現的?靠的是「人肉智能」:開普勒和第谷積攢了很多行星運行的圖表、數據,然後伽利略和牛頓分析以後,發現規律;
同樣的道理,元素周期表是如何發現的?
16世紀、17世紀的時候,出現了對分子光譜的描述,某幾個物理學家根據這些數據分析發現,氫族、氧族、硫族等都會有同樣的光譜分布,從而發現了規律。
而現在,機器學習的出現,讓數據分析變得非常高效,從而出現了非常多有價值的應用,計算引擎成了無名英雄。比如:
自動駕駛汽車可以實現自我導航;通過遺傳信號可以推斷人類祖先的長相……
機器學習這麼厲害,我在哪裡能買到呢?很不幸,機器學習現在更像一套秘籍,買不到。
接下來,我用一些具體的例子,再詳細分享一下它的難點、竅門。
案例集一:自然語言處理
人讀書,會有兩個基本動作,能讀懂,還能講出來,同理,自然語言處理也包含兩大類工作:理解自然語言和生成自然語言。
理解自然語言
理解是怎麼回事?背誦下來,是不是理解了呢?
因此,需要把理解劃分為不同的具體任務,一旦具體以後,機器就可以找到切入點。
由淺入深,包括以下內容:
- 文本分類
從分好類、有標註的訓練數據出發,採用不同演算法,訓練一個分類器。
舉個例子,分析一個文章,假如「白宮」出現多次,就可以判斷,文章是講政治的。防垃圾郵件的軟體,用的就是這個原理。
- 文本檢索
這是Google等搜索引擎里的常用功能:通過關鍵字輸入,輸出根據相關度排序的結果,再高級點,還有個性化匹配。
舉個例子,搜索蘋果,結果可能是水果,或是手機。
如果搜索引擎對你一無所知,兩個結果都可能靠譜。如果你是一位果農或者一位高科技白領,那麼就能猜出你想要搜的東西。
也就是說,要實現個性化匹配,需要考慮你的生活習慣、行為特徵、以及搜索場景。
- 語音識別
將聲音信號轉化為文本信號的技術,涉及隱馬爾科夫鏈、遞歸神經網路等機器學習模型,智能音箱、Siri等,都屬於這類的應用。
?難點
在嘈雜,或是前後關聯破碎的場景下,機器很難識別清晰,但是人可以,因為有常識、背景知識,比如人在信號很差的電話環境里,連蒙帶猜,也能理解對方的話。
因此,人和機器要有一些互補。
- 知識問答
幾年前,IBM沃森在知識問答遊戲Jeopardy里戰勝了人,很轟動。
其實這個系統並不難,因為知識競賽里的對話很簡單,比如——
誰是美國的第一任總統?——喬治·華盛頓
所以,這個系統是一個純工程,它跟人類智能不一樣。
舉個例子,比如問這樣一個問題:中國不在大河邊上的第二大城市是什麼?
小學生很容易就能回答,但你去Google或者百度,卻找不到答案。為什麼?
不是知識庫里沒有內容,而是它聽不懂你問的是什麼,於是它就懵了!
所以,在這裡面,有一些關鍵問題需要大家特別重視:
?竅門
機器理解人的語言,相當有限,所以,如何提出更好的問題,非常關鍵。
大家天天在講的問題,到底有沒有價值?到底能不能體現出工程的進步、應用或者市場的需要?
- 標準測試
什麼是高級的理解?標準測試,比如,大學的入學考試,托福、GRE等
為什麼人工智慧不去做這種測試?因為比較難,比如:
①得真正看懂測試的問題;
②訓練的時候,不能人為輸入規則,而是直接把教科書交給機器學習,讓它自己把規則、定理、原理、作業題都完全看懂;③最後自訓練,吃透了以後去考試;④演算法要能夠給學生解答這個答案的意思。
? 竅門:
教育里最難的一點就是出題庫,然後訓練學生做題。如果有一個人工智慧系統,既能出題,也可以跟學生一起做題,甚至還可以給他解釋,就會有很多價值。
在這樣的做題程序中,深度學習的方法已經被淘汰,其他的機器學習手段得分也不高。下一步,再怎麼往上走?還不知道。
換句話說,既能回答問題,又能提問題,這是人工智慧最弱的方面,也是一個未知的空間。
我們現在正在做這樣的嘗試,讓機器自動的問一些問題,從而達到自訓練或者訓練用戶的目的。
自然語言生成
這是人機界面中,主動來自機器的動作,是一個很好玩的題目,我重點介紹兩個領域的應用:
- 機器翻譯
人在做翻譯的時候,通常先聽完好幾句話,理解後,再用另外一種語言說出來,但是,機器翻譯的主要手段是對齊,把兩個語句做一一對應,很機械。
- 機器對話
在對話系統中,也會有機器味。那麼,什麼才是有人味的對話呢?
一方面是對感情的把握,和對對方感情的理解;另一方面是對相關常識的引用和理解。
這在目前對話系統里,十分困難,因為沒有一個很好的數學模型,對這些任務做清晰的定義。
小結:
新研究方向
大數據即使再大,還是體現不出人類語言中不言而喻的內容,該怎麼辦?
目前,比較新的研究方向是把生成模型和人的背景知識,進行數學層面上嚴格和自洽的融合,把深度學習的技術和人類邏輯學的知識,結合在統一的數學模型里。
這樣就可以把人的感情因素融入生成模型,從而讓對話看上去更有人味。
案例集二:計算機視覺
計算機視覺是現在相當火爆的方向,大致可以分成兩大類問題:圖像感知與視覺推理。
圖像感知
它包含的是一些比較原始和低級的任務,比如:
- 圖像分割:
把不同的色塊,從背景裡面識別出來。
比如一個花花綠綠的人,機器看到的只是幾塊顏色。
- 語義分割:
把不同的色塊重新整合起來,構成有完整單元含義的目標。
比如,人和車,會被分割在比較自洽的邊界內部,然後做標註。行人檢測、安防里的刷臉等,用的就是這個道理。
- 應用案例:
醫療圖像識別
比如對X光、CT等做一個自動的診斷,實現精準醫療。
目前,在實踐中,最大的困難不是對標準圖片的識別,而是在自然工作環境下,對於自然圖片內容的判斷和理解。
比如,醫療影像中的噪音,誤差,還有設備之間不同的標準,會造成很多演算法的失靈,但這些問題很少被提及。
最近的一個有名的例子是,IBM沃森的癌症治療軟體,在美國最好的癌症研究所部署後,就遭遇了比較不幸的失敗。所以,人工智慧在醫療領域的應用,還是應該謹慎些。
智能監控
現在,很多場合都安裝了攝像頭,但應用時,卻總是在「事後諸葛亮」的場景:發生案件後,調集警察,人力檢查攝像頭,發現線索,抓到犯人。
這不是最理想的情況,最好是案件發生的時候,就能夠找出情況,短時間,就能收集大量信息。
比如,從幾小時長度的航空展覽錄像中,自動剪輯出飛機的起飛、動作、降落等畫面;將幾小時的行車記錄儀數據,自動抽取出幾分鐘不一樣的片段,這都是機器學習比較擅長的。
視覺推理
同語言推理相似,視覺也可以進行推理。
舉個例子,圖中有人和帆板,那我們不單單能做標註,還可以猜想物體之間的關係,如這個人喜歡帆板,準備去海邊運動。
人感覺這樣的理解很簡單,但對機器來說,非常複雜。
比如將物體識別出來,需要一套演算法;然後把物體分類,又得需要一套演算法;識別物體間的關係,又是一套演算法……
但人類並不是用30個不同的大腦來發揮作用,我們就是一個人,一雙眼睛就可以很清晰做理解。
? 竅門
所以,人工智慧跟人的思路其實不太一樣,它是一個高度模塊化,然後邊界也很局限的工作,需要嚴格的定義任務,分開來單獨做訓練和調試。
小結:新研究方向
計算機視覺2.0,模型結構自主學習
所謂視覺推理2.0指的是,一方面依靠圖片內容,另一方面依靠從大數據以及背景環境裡面,獲得的先驗知識。
當這些先驗知識,進入圖像識別的機制里後,機器對圖像理解的水平就會提高很多,就不是一個很愚蠢的圖像標註了。
實際上,圖像標註是很假的功能,為什麼需要機器去告訴人類,這個圖裡哪個是貓?哪個是狗?哪個是車?
人對這些東西都可以無視,但如果能夠把圖裡面的內容和話外的內容搞清楚,更接近人的需求,這樣的功能才會產生真正的價值。
比如這個圖裡,有一個女孩兒,穿著牛仔褲,拿著飛碟,後面在一個建築物里,還站著一些人,最後推斷,這可能是一個學校。
這是目前研究和研發很重要的方向,但很可惜,在公司或者媒體報道里,你很少見到類似的工作。
最後的最後,你需要深刻理解的未來AI發展路徑
從模塊出發,構建複雜系統
未來的AI應用大概會是這樣的一個場景:
它會融合不同領域裡面的很多基礎知識或者先驗知識,把不同的學習內容和演算法整合起來。
對於實際的開發和生產環境,我們其實不是在談某一個演算法或是某一套數據,而是一個相當綜合的體系。
現在,很多公司都面臨著這樣一個瓶頸:如果用封閉式的黑匣子來打造一個系統,它的延展能力很弱。一旦面對新任務,就會面臨著開發周期的困境,或者進行部署的困境。
該怎麼辦?
我的建議是,機器學習未來路徑和前景應該是:從模塊出發,構建一個複雜系統。
這個複雜系統的方向不能是手工作坊的方法,從造一個小船變成造一個大船,而是要轉變到更加工程化和科學化的方向——
模塊化和標準化。
同一個演算法應該有標準的實現途徑,同一個數據應該有單一的供應源進行處理方法。
只有這樣做,你的AI研發,才能更穩健,更靠譜。
本文根據邢波在混沌大學研習社的課程整理而成,內容有刪減。關注知乎機構號「混沌大學」,私信關鍵詞「邢波」,即可聽取完整課程。
推薦閱讀:
※掌握正確的戀愛思維,讓你輕鬆戀愛
※說說宗教對人的思維的作用
※452|《原則》(3)如何正確的失敗:默許失敗的2大制約思維