1. 程式人生 > >一篇文章搞懂人工智慧、機器學習和深度學習之間的區別

一篇文章搞懂人工智慧、機器學習和深度學習之間的區別

概述

2015年11月9日,Google釋出人工智慧系統TensorFlow並宣佈開源。這兩年在不管在國內還是在國外,人工智慧、機器學習彷彿一夜之前傳遍大街小巷。機器學習作為人工智慧的一種型別,可以讓軟體根據大量的資料來對未來的情況進行闡述或預判。如今,領先的科技巨頭無不在機器學習下予以極大投入。Facebook、蘋果、微軟,甚至國內的百度,Google 自然也在其中。

去年早些時候 Google DeepMind 的 AlphaGo 專案在舉世矚目的圍棋比賽中一舉擊敗了韓國選手李世石,媒體就是使用了人工智慧、機器學習和深度學習這幾個術語,來解釋 DeepMind 獲勝的原因,並將它們混為一談。但是三者其實不是一回事。

區別與聯絡

本文藉助Michael Copeland的講解,讓我們撩開人工智慧、機器學習和深度學習的概念,深入理解它們的關係和區別。為了搞清三者關係,我們來看一張圖: 
這裡寫圖片描述

如圖所示:人工智慧最大,此概念也最先問世;然後是機器學習,出現的稍晚;最後才是深度學習。 
在之前的文章機器學習的發展歷程 一文中,我們詳細的介紹了機器學習的發展歷史。

從低潮到繁榮

自從 1956 年電腦科學家們在達特茅斯會議(Dartmouth Conferences)上確認人工智慧這個術語以來,人們就不乏關於人工智慧奇思妙想,研究人員也在不遺餘力地研究。在此後的幾十年間,人工智慧先是被捧為人類文明光明未來的鑰匙,後又被當作過於自大的異想天開而拋棄。

但是在過去幾年中,人工智慧出現了爆炸式的發展,尤其是 2015 年之後。大部分原因,要歸功於圖形處理器(GPU)的廣泛應用,使得並行處理更快、更便宜、更強大。另外,人工智慧的發展還得益於幾乎無限的儲存空間和海量資料的出現(大資料運動):影象、文字、交易資料、地圖資料,應有盡有。

下面我們從發展的歷程中來一一展開對人工智慧、機器學習和深度學習的深度學習。

人工智慧

這裡寫圖片描述

人工智慧先驅們在達特茅斯開會時,心中的夢想是希望通過當時新興的計算機,打造擁有相當於人類智慧的複雜機器。這就是我們所說的“通用人工智慧”(General AI)概念,擁有人類五感(甚至更多)、推理能力以及人類思維方式的神奇機器。在電影中我們已經看過無數這樣的機器人,對人類友好的 C-3PO,以及人類的敵人終結者。通用人工智慧機器至今只存在 於電影和科幻小說裡,理由很簡單:我們還實現不了,至少目前為止。

我們力所能及的,算是“弱人工智慧”(Narrow AI):執行特定任務的水平與人類相當,甚至超越人類的技術。現實中有很多弱人工智慧的例子。這些技術有人類智慧的一面。但是它們是如何做到的?智慧來自哪裡?這就涉及到下一個同心圓:機器學習。

機器學習

這裡寫圖片描述

機器學習是實現人工智慧的一種方法。機器學習的概念來自早期的人工智慧研究者,已經研究出的演算法包括決策樹學習、歸納邏輯程式設計、增強學習和貝葉斯網路等。簡單來說,機器學習就是使用演算法分析資料,從中學習並做出推斷或預測。與傳統的使用特定指令集手寫軟體不同,我們使用大量資料和演算法來“訓練”機器,由此帶來機器學習如何完成任務。

許多年來,計算機視覺一直是機器學習最佳的領用領域之一,儘管還需要大量的手動編碼才能完成任務。研究者會手動編寫一些分類器(classifier),如邊緣檢測篩選器,幫助程式辨別物體的邊界;圖形檢測分類器,判斷物體是否有八個面;以及識別“S-T-O-P”的分類器。在這些手動編寫的分類器的基礎上,他們再開發用於理解影象的演算法,並學習如何判斷是否有停止標誌。

但是由於計算機視覺和影象檢測技術的滯後,經常容易出錯。

深度學習

這裡寫圖片描述

深度學習是實現機器學習的一種技術。早期機器學習研究者中還開發了一種叫人工神經網路的演算法,但是發明之後數十年都默默無聞。神經網路是受人類大腦的啟發而來的:神經元之間的相互連線關係。但是,人類大腦中的神經元可以與特定範圍內的任意神經元連線,而人工神經網路中資料傳播要經歷不同的層,傳播方向也不同。

舉個例子,你可以將一張圖片切分為小塊,然後輸入到神經網路的第一層中。在第一層中做初步計算,然後神經元將資料傳至第二層。由第二層神經元執行任務,依次類推,直到最後一層,然後輸出最終的結果。

每個神經元都會給其輸入指定一個權重:相對於執行的任務該神經元的正確和錯誤程度。最終的輸出由這些權重共同決定。因此,我們再來看看上面提到的停止標誌示例。一張停止標誌影象的屬性,被一一細分,然後被神經元“檢查”:形狀、顏色、字元、標誌大小和是否運動。神經網路的任務是判斷這是否是一個停止標誌。它將給出一個“概率向量”(probability vector),這其實是基於權重做出的猜測結果。在本文的示例中,系統可能會有 86% 的把握認定影象是一個停止標誌,7% 的把握認為是一個限速標誌,等等。網路架構然後會告知神經網路其判斷是否正確。 
不過,問題在於即使是最基礎的神經網路也要耗費巨大的計算資源,因此當時不算是一個可行的方法。不過,以多倫多大學 Geoffrey Hinton 教授為首的一小批狂熱研究者們堅持採用這種方法,最終讓超級計算機能夠並行執行該演算法,並證明該演算法的作用。如果我們回到停止標誌那個例子,很有可能神經網路受訓練的影響,會經常給出錯誤的答案。這說明還需要不斷的訓練。它需要成千上萬張圖片,甚至數百萬張圖片來訓練,直到神經元輸入的權重調整到非常精確,幾乎每次都能夠給出正確答案。不過值得慶幸的是Facebook 利用神經網路記住了你母親的面孔;吳恩達 2012 年在谷歌實現了可以識別貓的神經網路。

如今,在某些情況下,通過深度學習訓練過的機器在影象識別上表現優於人類,這包括找貓、識別血液中的癌症跡象等。谷歌的 AlphaGo 學會了圍棋,併為比賽進行了大量的訓練:不斷的和自己比賽。

總結

人工智慧的根本在於智慧,而機器學習則是部署支援人工智慧的計算方法。簡單的將,人工智慧是科學,機器學習是讓機器變得更加智慧的演算法,機器學習在某種程度上成就了人工智慧。