閱讀973 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

概述

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 學會了圍棋,並為比賽進行了大量的訓練:不斷的和自己比賽。

總結

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

最後更新:2017-04-09 22:00:02

  上一篇:go HBase flush&split&compact
  下一篇:go Spring Boot數據訪問書目錄