在了解機器學習與深度學習是什么以及二者的區別之前,有必要對作為兩者背景的人工智能做一個簡單介紹。人工智能、機器學習與深度學習三者之間關系的最簡便方法就是將它們視覺化為一組同心圓——首先是最大的部分人工智能——然后是后來興旺的機器學習——最后是促使當下人工智能大爆發的深度學習——在最里層。
人工智能——機器詮釋的人類智能
自從 1956 年幾個計算機科學家在達特茅斯會議上聚集并開辟了人工智能這一領域,人工智能就進入了我們的想象,并在實驗研究中進行著醞釀。在過去的幾十年里,人工智能以及輪番被譽為人類文明取得最美好未來的關鍵,或者是作為一個頭腦發燒的輕率概念被扔進了科技垃圾堆中。坦白說直到 2012 年,它就這樣在二者之間交雜。
回到 1956 年夏天的那場會議,人工智能先驅們的夢想是借由新興計算機構建具有人類智力特征的復雜機器。這就是所謂的「通用人工智能(General AI)」的概念——擁有人類的所有感覺(甚至可能更多)、所有理智,像人類一樣思考的神奇機器。
你已經在電影中無休止地看到過這些被我們當做朋友的機器,比如《星球大戰》中的 C-3PO 以及成為人類敵人的機器——終結者。通用人工智能機器向來有充足的理由出現在電影和科幻小說中;我們不能阻止,至少現在還不行。
我們能做什么?這就到了「狹義人工智能(Narrow AI)」的概念。指的是能夠將特殊任務處理得同人類一樣好,或者更好的技術。狹義人工智能的相關案例比如有 Pinterest 上的圖像分類、Facebook 中的人臉識別。
這些是狹義人工智能在實踐中的例子。這些技術展示了人類智能的一些方面。但是如何做到的呢?那個智能來自哪里?所以接下來看第二個同心圓,機器學習。
機器學習——實現人工智能的一種方式
機器學習最基礎的是運用算法來分析數據、從中學習、測定或預測現實世界某些事。所以不是手動編碼帶有特定指令設定的軟件程序來完成某個特殊任務,而是使用大量的數據和算法來「訓練」機器,賦予它學習如何執行任務的能力。
機器學習直接源自早期那幫人工智能群體,演化多年的算法包括了決策樹學習(decision tree learning)、歸納邏輯編程(inductive logic programming)。其他的也有聚類(clustering)、強化學習(reinforcement learning)和貝葉斯網絡(Bayesian networks)等。我們知道,這些早期機器學習方法都沒有實現通用人工智能的最終目標,甚至沒有實現狹義人工智能的一小部分目標。
事實證明,多年來機器學習的最佳應用領域之一是計算機視覺,盡管它仍然需要大量的手工編碼來完成工作。人們會去寫一些手寫分類器,像是邊緣檢測過濾器(edge detection filters)使得程序可以識別對象的啟止位置;形狀檢測(shape detection)以確定它是否有八條邊;一個用來識別單詞「S-T-O-P」的分類器。從這些手寫分類器中他們開發出能夠理解圖像的算法,「學習」判定它是否是一個停止標志。
這很好,但還不夠好。特別是有霧天氣標志不完全可見的情況下,或者被樹遮住了一部分。計算機視覺和圖像檢測直到目前都不能與人類相媲美,是因為它太過脆弱,太容易出錯了。是時間和正確的學習算法改變了這一切。
深度學習——一種實現機器學習的技術
源自最早進行機器學習那群人的另一種算法是人工神經網絡(Artificial Neural Networks),它已有幾十年的歷史。神經網絡的靈感來自于我們對大腦生物學的理解——所有神經元之間的相互連接。但是不像生物大腦中的任何神經元,可以在一定的物理距離內連接到任何其他神經元,這些人工神經網絡的層、連接和數據傳播方向是離散的。
比如你可以把一個圖像切成一堆碎片并輸入到神經網絡的第一層中。然后第一層的單個神經元們將數據傳遞給第二層。第二層神經元將數據傳給第三層,如此一直傳到最后一層并輸出最終結果。
每個神經元分配一個權重到它的輸入——評估所執行的任務的準確或不準確。然后最終的輸出由所有這些權重來確定。所以想想那個停止標志的例子。一個停止標志圖像的特征被切碎并由神經元來「檢查」——它的形狀、它的消防紅色彩、它的獨特字母、它的交通標志尺寸以及和它的運動或由此帶來的缺失。神經網絡的任務是判定它是否為一個停止標志。這提出了一個「概率向量」,它真是一個基于權重的高度受訓的猜測。在我們的例子中,系統可能有 86% 的把握認為圖像是一個停止標志,7% 的把握認為這是一個限速標志,5% 的把握認為這是一只被卡在樹上的風箏,等等——然后網絡架構告訴神經網絡結果的正確與否。
甚至這個例子都有些超前了,因為直到現在,神經網絡都被人工智能研究社區避開了。自從最早的人工智能起,他們一直在做這方面研究,而「智能」成果收效甚微。問題很簡單,即最基本的神經網絡屬于計算密集型,這并不是一個實用的方法。不過,由多倫多大學的 Geoffrey Hinton 帶領的異端研究小組一直在繼續相關研究工作,最終在超級計算機上運行并行算法證明了這個概念,但這是直到 GPU 被部署之后才兌現的諾言。
如果我們再回到停止標志的例子,當網絡正在進行調整或者「訓練」時,出現大量的錯誤答案,這個機會是非常好的。它需要的就是訓練。它需要看到成千上萬,甚至數以百萬計的圖像,直到神經元的輸入權重被精確調整,從而幾乎每一次都能得到正確答案——無論有霧沒霧,晴天還是雨天。在這一點上,神經網絡已經教會了自己停止標志看起來會是什么樣的;或者在 Facebook 例子中就是識別媽媽的臉;或者吳恩達 2012 年在谷歌所做的貓的圖片。
吳恩達的突破在于從根本上使用這些神經網絡 并將它們變得龐大,增加了層數和神經元的數量,然后通過系統運行大量的數據來訓練它。吳恩達使用了 1000 萬個 YouTube 視頻的圖像。他將「深度」運用在深度學習中,這就描述了這些神經網絡的所有層。
如今,在一些場景中通過深度學習訓練機器識別圖像,做得比人類好,從識別貓咪到確定血液中的癌癥指標和磁共振成像掃描中的腫瘤指標。谷歌的 AlphaGo 學會了游戲,并被訓練用于 Go 比賽。通過反復與自己對抗來調整自己的神經網絡。
感謝深度學習,讓人工智能有一個光明的未來。