人工智能、機器學習與深度學習這幾個關鍵詞時常出現在媒體新聞中,并錯誤地被認為是等同的概念。
本文將介紹人工智能、機器學習以及深度學習的概念,并著重解析它們之間的關系。本文將從不同領域需要解決的問題入手,依次介紹這些領域的基本概念以及解決領域內問題的主要思路。
本文選自《TensorFlow:實戰Google深度學習框架》
從計算機發明之初,人們就希望它能夠幫助甚至代替人類完成重復性勞作。利用巨大的存儲空間和超高的運算速度,計算機已經可以非常輕易地完成一些對于人類非常困難,但對計算機相對簡單的問題。比如,統計一本書中不同單詞出現的次數,存儲一個圖書館中所有的藏書,或是計算非常復雜的數學公式,都可以輕松通過計算機解決。然而,一些人類通過直覺可以很快解決的問題,目前卻很難通過計算機解決。這些問題包括自然語言理解、圖像識別、語音識別,等等。而它們就是人工智能需要解決的問題。
計算機要像人類一樣完成更多智能的工作,需要掌握關于這個世界海量的知識。比如要實現汽車自動駕駛,計算機至少需要能夠判斷哪里是路,哪里是障礙物。這個對人類非常直觀的東西,但對計算機卻是相當困難的。路有水泥的、瀝青的,也有石子的甚至土路。這些不同材質鋪成的路在計算機看來差距非常大。如何讓計算機掌握這些人類看起來非常直觀的常識,對于人工智能的發展是一個巨大的挑戰。很多早期的人工智能系統只能成功應用于相對特定的環境(specific domain),在這些特定環境下,計算機需要了解的知識很容易被嚴格并且完整地定義。例如,IBM的深藍(Deep Blue)在1997年打敗了國際象棋冠軍卡斯帕羅夫。設計出下象棋軟件是人工智能史上的重大成就,但其主要挑戰不在于讓計算機掌握國際象棋中的規則。國際象棋是一個特定的環境,在這個環境中,計算機只需要了解每一個棋子規定的行動范圍和行動方法即可。雖然計算機早在1997年就可以擊敗國際象棋的世界冠軍,但是直到20年后的今天,讓計算機實現大部分成年人都可以完成的汽車駕駛卻仍然依舊十分困難。
為了使計算機更多地掌握開放環境(open domain)下的知識,研究人員進行了很多嘗試。其中一個影響力非常大的領域是知識圖庫(Ontology)。WordNet是在開放環境中建立的一個較大且有影響力的知識圖庫。WordNet是由普林斯頓大學(Princeton University)的George Armitage Miller教授和Christiane Fellbaum教授帶領開發的,它將155287個單詞整理為了117659個近義詞集(synsets)。基于這些近義詞集,WordNet進一步定義了近義詞集之間的關系。比如同義詞集“狗”屬于同義詞集“犬科動物”,他們之間存在種屬關系(hypernyms/hyponyms)。除了WordNet,也有不少研究人員嘗試將Wikipedia中的知識整理成知識圖庫。谷歌的知識圖庫就是基于Wikipedia創建的。
雖然使用知識圖庫可以讓計算機很好地掌握人工定義的知識,但建立知識圖庫一方面需要花費大量的人力物力,另一方面可以通過知識圖庫方式明確定義的知識有限,不是所有的知識都可以明確地定義成計算機可以理解的固定格式。很大一部分無法明確定義的知識,就是人類的經驗。比如我們需要判斷一封郵件是否為垃圾郵件,會綜合考慮郵件發出的地址、郵件的標題、郵件的內容以及郵件收件人的長度,等等。這是收到無數垃圾郵件騷擾之后總結出來的經驗。這個經驗很難以固定的方式表達出來,而且不同人對垃圾郵件的判斷也會不一樣。如何讓計算機可以跟人類一樣從歷史的經驗中獲取新的知識呢?這就是機器學習需要解決的問題。
卡內基梅隆大學(Carnegie Mellon University)的Tom Michael Mitchell教授在1997年出版的書籍Machine Learning中對機器學習進行過非常專業的定義,這個定義在學術界內被多次引用。在這本書中對機器學習的定義為“如果一個程序可以在任務T上,隨著經驗E的增加,效果P也可以隨之增加,則稱這個程序可以從經驗中學習”。通過垃圾郵件分類的問題來解釋機器學習的定義。在垃圾郵件分類問題中,“一個程序”指的是需要用到的機器學習算法,比如邏輯回歸算法;“任務T”是指區分垃圾郵件的任務;“經驗E”為已經區分過是否為垃圾郵件的歷史郵件,在監督式機器學習問題中,這也被稱之為訓練數據;“效果P”為機器學習算法在區分是否為垃圾郵件任務上的正確率。
在使用邏輯回歸算法解決垃圾郵件分類問題時,會先從每一封郵件中抽取對分類結果可能有影響的因素,比如說上文提到的發郵件的地址、郵件的標題及收件人的長度,等等。每一個因素被稱之為一個特征(feature)。邏輯回歸算法可以從訓練數據中計算出每個特征和預測結果的相關度。比如在垃圾郵件分類問題中,可能會發現如果一個郵件的收件人越多,那么郵件為垃圾郵件的概率也就越高。在對一封未知的郵件做判斷時,邏輯回歸算法會根據從這封郵件中抽取得到的每一個特征以及這些特征和垃圾郵件的相關度來判斷這封郵件是否為垃圾郵件。
在大部分情況下,在訓練數據達到一定數量之前,越多的訓練數據可以使邏輯回歸算法對未知郵件做出的判斷越精準。也就是說邏輯回歸算法可以根據訓練數據(經驗E)提高在垃圾郵件分類問題(任務T)上的正確率(效果P)。之所以說在大部分情況下,是因為邏輯回歸算法的效果除了依賴于訓練數據,也依賴于從數據中提取的特征。假設從郵件中抽取的特征只有郵件發送的時間,那么即使有再多的訓練數據,邏輯回歸算法也無法很好地利用。這是因為郵件發送的時間和郵件是否為垃圾郵件之間的關聯不大,而邏輯回歸算法無法從數據中習得更好的特征表達。這也是很多傳統機器學習算法的一個共同的問題。
類似從郵件中提取特征,如何數字化地表達現實世界中的實體,一直是計算機科學中一個非常重要問題。如果將圖書館中的圖書名稱儲存為結構化的數據,比如儲存在Excel表格中,那么可以非常容易地通過書名查詢一本書是否在圖書館中。如果圖書的書名都是存在非結構化的圖片中,那么要完成書名查找任務的難度將大大增加。類似的道理,如何從實體中提取特征,對于很多傳統機器學習算法的性能有巨大影響。我們看一個簡單的例子。
不同的數據表達對使用直線劃分不同顏色結點的難度影響
如果通過笛卡爾坐標系(cartesian coordinates)來表示數據,那么不同顏色的結點無法被一條直線劃分。如果將這些點映射到極角坐標系(polar coordinates),那么使用直線劃分就很容易了。同樣的數據使用不同的表達方式會極大地影響解決問題的難度。一旦解決了數據表達和特征提取,很多人工智能任務也就解決了90%。
然而,對許多機器學習問題來說,特征提取不是一件簡單的事情。在一些復雜問題上,要通過人工的方式設計有效的特征集合,需要很多的時間和精力,有時甚至需要整個領域數十年的研究投入。例如,假設想從很多照片中識別汽車。現在已知的是汽車有輪子,所以希望在圖片中抽取“圖片中是否出現了輪子”這個特征。但實際上,要從圖片的像素中描述一個輪子的模式是非常難的。雖然車輪的形狀很簡單,但在實際圖片中,車輪上可能會有來自車身的陰影、金屬車軸的反光,周圍物品也可能會部分遮擋車輪。實際圖片中各種不確定的因素讓我們很難直接抽取這樣的特征。
既然人工的方式無法很好地抽取實體中的特征,那么是否有自動的方式呢?答案是肯定的。深度學習解決的核心問題之一就是自動地將簡單的特征組合成更加復雜的特征,并使用這些組合特征解決問題。深度學習是機器學習的一個分支,它除了可以學習特征和任務之間的關聯以外,還能自動從簡單特征中提取更加復雜的特征。下圖展示了深度學習和傳統機器學習在流程上的差異。
傳統機器學習和深度學習流程對比
如圖所示,深度學習算法可以從數據中學習更加復雜的特征表達,使得最后一步權重學習變得更加簡單且有效。
深度學習在圖像分類問題上的算法流程樣例
在上圖中,展示了通過深度學習解決圖像分類問題的具體樣例。深度學習可以一層一層地將簡單特征逐步轉化成更加復雜的特征,從而使得不同類別的圖像更加可分。比如圖中展示了深度學習算法可以從圖像的像素特征中逐漸組合出線條、邊、角、簡單形狀、復雜形狀等更加有效的復雜特征。
早期的深度學習受到了神經科學的啟發,它們之間有非常密切的聯系。科學家們在神經科學上的發現使得我們相信深度學習可以勝任很多人工智能的任務。神經科學家發現,如果將小白鼠的視覺神經連接到聽覺中樞,一段時間之后小鼠可以習得使用聽覺中樞“看”世界。這說明雖然哺乳動物大腦分為了很多區域,但這些區域的學習機制卻是相似的。在這一假想得到驗證之前,機器學習的研究者們通常會為不同的任務設計不同的算法。而且直到今天,學術機構的機器學習領域也被分為了自然語言處理、計算機視覺和語音識別等不同的實驗室。因為深度學習的通用性,深度學習的研究者往往可以跨越多個研究方向甚至同時活躍于所有的研究方向。
雖然深度學習領域的研究人員相比其他機器學習領域更多地受到了大腦工作原理的啟發,而且媒體界也經常強調深度學習算法和大腦工作原理的相似性,但現代深度學習的發展并不拘泥于模擬人腦神經元和人腦的工作機理。模擬人類大腦也不再是深度學習研究的主導方向。我們不應該認為深度學習是在試圖模仿人類大腦。目前科學家對人類大腦學習機制的理解還不足以為當下的深度學習模型提供指導。
現代的深度學習已經超越了神經科學觀點,它可以更廣泛地適用于各種并不是由神經網絡啟發而來的機器學習框架。值得注意的是,有一個領域的研究者試圖從算法層理解大腦的工作機制,它不同于深度學習的領域,被稱為“計算神經學”(computational neuroscience)。深度學習領域主要關注如何搭建智能的計算機系統,解決人工智能中遇到的問題。計算神經學則主要關注如何建立更準確的模型來模擬人類大腦的工作。
總的來說,人工智能、機器學習和深度學習是非常相關的幾個領域。下圖總結了它們之間的關系。
人工智能、機器學習以及深度學習之間的關系圖
人工智能是一類非常廣泛的問題,機器學習是解決這類問題的一個重要手段。深度學習則是機器學習的一個分支。在很多人工智能問題上,深度學習的方法突破了傳統機器學習方法的瓶頸,推動了人工智能領域的發展。
部分內容參見:
Goodfellow I, Bengio Y, Courville A. Deep learning [M]. The MIT Press,2016.
Mitchell T M, Carbonell J G, Michalski R S. Machine Learning [M]. McGraw-Hill, 2003.
Tensorflow:實戰Google深度學習框架
配套代碼更新為TensorFlow1.0版 已同步推出繁體版在臺灣發行
作者:才云科技Caicloud 鄭澤宇、顧思宇
圖書鏈接:http://wqitem.jd.com/item/view?sku=12125572