人工智能的發(fā)展曾經(jīng)經(jīng)歷過幾次起起伏伏,近來在深度學習技術的推動下又迎來了一波新的前所未有的高潮。近日,IBM 官網(wǎng)發(fā)表了一篇概述文章,對人工智能技術的發(fā)展過程進行了簡單梳理,同時還圖文并茂地介紹了感知器、聚類算法、基于規(guī)則的系統(tǒng)、機器學習、深度學習、神經(jīng)網(wǎng)絡等技術的概念和原理。
人類對如何創(chuàng)造智能機器的思考從來沒有中斷過。期間,人工智能的發(fā)展起起伏伏,有成功,也有失敗,以及其中暗藏的潛力。今天,有太多的新聞報道是關于機器學習算法的應用問題,從癌癥檢查預測到圖像理解、自然語言處理,人工智能正在賦能并改變著這個世界。
現(xiàn)代人工智能的歷史具備成為一部偉大戲劇的所有元素。在最開始的 1950 年代,人工智能的發(fā)展緊緊圍繞著思考機器和焦點人物比如艾倫·圖靈、馮·諾伊曼,迎來了其第一次春天。經(jīng)過數(shù)十年的繁榮與衰敗,以及難以置信的高期望,人工智能及其先驅(qū)們再次攜手來到一個新境界?,F(xiàn)在,人工智能正展現(xiàn)著其真正的潛力,深度學習、認知計算等新技術不斷涌現(xiàn),且不乏應用指向。
本文探討了人工智能及其子領域的一些重要方面。下面就先從人工智能發(fā)展的時間線開始,并逐個剖析其中的所有元素。
現(xiàn)代人工智能的時間線
1950 年代初期,人工智能聚焦在所謂的強人工智能,希望機器可以像人一樣完成任何智力任務。強人工智能的發(fā)展止步不前,導致了弱人工智能的出現(xiàn),即把人工智能技術應用于更窄領域的問題。1980 年代之前,人工智能的研究一直被這兩種范式分割著,兩營相對。但是,1980 年左右,機器學習開始成為主流,它的目的是讓計算機具備學習和構建模型的能力,從而它們可在特定領域做出預測等行為。
圖 1:現(xiàn)代人工智能發(fā)展的時間線
在人工智能和機器學習研究的基礎之上,深度學習在 2000 年左右應運而生。計算機科學家在多層神經(jīng)網(wǎng)絡之中使用了新的拓撲學和學習方法。最終,神經(jīng)網(wǎng)絡的進化成功解決了多個領域的棘手問題。
在過去的十年中,認知計算(Cognitive computing)也出現(xiàn)了,其目標是打造可以學習并與人類自然交互的系統(tǒng)。通過成功地擊敗 Jeopardy 游戲的世界級選手,IBM Watson 證明了認知計算的價值。
在本文中,我將逐一探索上述的所有領域,并對一些關鍵算法作出解釋。
基礎性人工智能
1950 年之前的研究提出了大腦是由電脈沖網(wǎng)絡組成的想法,正是脈沖之間的交互產(chǎn)生了人類思想與意識。艾倫·圖靈表明一切計算皆是數(shù)字,那么,打造一臺能夠模擬人腦的機器也就并非遙不可及。
上文說過,早期的研究很多是強人工智能,但是也提出了一些基本概念,被機器學習和深度學習沿用至今。
圖 2:1950 - 1980 年間人工智能方法的時間線
人工智能搜索引擎
人工智能中的很多問題可以通過強力搜索(brute-force search)得到解決。然而,考慮到中等問題的搜索空間,基本搜索很快就受影響。人工智能搜索的最早期例子之一是跳棋程序的開發(fā)。亞瑟·塞繆爾(Arthur Samuel)在 IBM 701 電子數(shù)據(jù)處理機器上打造了第一款跳棋程序,實現(xiàn)了對搜索樹(alpha-beta 剪枝)的優(yōu)化;這個程序也記錄并獎勵具體行動,允許應用學習每一個玩過的游戲(這是首個自我學習的程序)。為了提升程序的學習率,塞繆爾將其編程為自我游戲,以提升其游戲和學習的能力。
盡管你可以成功地把搜索應用到很多簡單問題上,但是當選擇的數(shù)量增加時,這一方法很快就會失效。以簡單的一字棋游戲為例,游戲一開始,有 9 步可能的走棋,每 1 個走棋有 8 個可能的相反走棋,依次類推。一字棋的完整走棋樹包含 362,880 個節(jié)點。如果你繼續(xù)將這一想法擴展到國際象棋或者圍棋,很快你就會發(fā)展搜索的劣勢。
感知器
感知器是單層神經(jīng)網(wǎng)絡的一個早期監(jiān)督學習算法。給定一個輸入特征向量,感知器可對輸入進行具體分類。通過使用訓練集,網(wǎng)絡的權重和偏差可為線性分類而更新。感知器的首次實現(xiàn)是 IBM 704,接著在自定義硬件上用于圖像識別。
圖 3:感知器與線性分類
作為一個線性分類器,感知器有能力解決線性分離問題。感知器局限性的典型實例是它無法學習專屬的 OR (XOR) 函數(shù)。多層感知器解決了這一問題,并為更復雜的算法、網(wǎng)絡拓撲學、深度學習奠定了基礎。
聚類算法
使用感知器的方法是有監(jiān)督的。用戶提供數(shù)據(jù)來訓練網(wǎng)絡,然后在新數(shù)據(jù)上對該網(wǎng)絡進行測試。聚類算法則是一種無監(jiān)督學習(unsupervised learning)方法。在這種模型中,算法會根據(jù)數(shù)據(jù)的一個或多個屬性將一組特征向量組織成聚類。
圖 4:在一個二維特征空間中的聚類
你可以使用少量代碼就能實現(xiàn)的最簡單的聚類算法是 k-均值(k-means)。其中,k 表示你為樣本分配的聚類的數(shù)量。你可以使用一個隨機特征向量來對一個聚類進行初始化,然后將其它樣本添加到其最近鄰的聚類(假定每個樣本都能表示一個特征向量,并且可以使用 Euclidean distance 來確定「距離」)。隨著你往一個聚類添加的樣本越來越多,其形心(centroid,即聚類的中心)就會重新計算。然后該算法會重新檢查一次樣本,以確保它們都在最近鄰的聚類中,最后直到?jīng)]有樣本需要改變所屬聚類。
盡管 k-均值聚類相對有效,但你必須事先確定 k 的大小。根據(jù)數(shù)據(jù)的不同,其它方法可能會更加有效,比如分層聚類(hierarchical clustering)或基于分布的聚類(distribution-based clustering)。
決策樹
決策樹和聚類很相近。決策樹是一種關于觀察(observation)的預測模型,可以得到一些結論。結論在決策樹上被表示成樹葉,而節(jié)點則是觀察分叉的決策點。決策樹來自決策樹學習算法,其中數(shù)據(jù)集會根據(jù)屬性值測試(attribute value tests)而被分成不同的子集,這個分割過程被稱為遞歸分區(qū)(recursive partitioning)。
考慮下圖中的示例。在這個數(shù)據(jù)集中,我可以基于三個因素觀察到某人是否有生產(chǎn)力。使用一個決策樹學習算法,我可以通過一個指標來識別屬性(其中一個例子是信息增益)。在這個例子中,心情(mood)是生產(chǎn)力的主要影響因素,所以我根據(jù) Good Mood 一項是 Yes 或 No 而對這個數(shù)據(jù)集進行了分割。但是,在 Yes 這邊,還需要我根據(jù)其它兩個屬性再次對該數(shù)據(jù)集進行切分。表中不同的顏色對應右側(cè)中不同顏色的葉節(jié)點。
圖 5:一個簡單的數(shù)據(jù)集及其得到的決策樹
決策樹的一個重要性質(zhì)在于它們的內(nèi)在的組織能力,這能讓你輕松地(圖形化地)解釋你分類一個項的方式。流行的決策樹學習算法包括 C4.5 以及分類與回歸樹(Classification and Regression Tree)。
基于規(guī)則的系統(tǒng)
最早的基于規(guī)則和推理的系統(tǒng)是 Dendral,于 1965 年被開發(fā)出來,但直到 1970 年代,所謂的專家系統(tǒng)(expert systems)才開始大行其道。基于規(guī)則的系統(tǒng)會同時存有所需的知識的規(guī)則,并會使用一個推理系統(tǒng)(reasoning system)來得出結論。
基于規(guī)則的系統(tǒng)通常由一個規(guī)則集合、一個知識庫、一個推理引擎(使用前向或反向規(guī)則鏈)和一個用戶接口組成。下圖中,我使用了知識「蘇格拉底是人」、規(guī)則「如果是人,就會死」以及一個交互「誰會死?」
圖 6:基于規(guī)則的系統(tǒng)
基于規(guī)則的系統(tǒng)已經(jīng)在語音識別、規(guī)劃和控制以及疾病識別等領域得到了應用。上世紀 90 年代人們開發(fā)的一個監(jiān)控和診斷大壩穩(wěn)定性的系統(tǒng) Kaleidos 至今仍在使用。
機器學習
機器學習是人工智能和計算機科學的一個子領域,也有統(tǒng)計學和數(shù)學優(yōu)化方面的根基。機器學習涵蓋了有監(jiān)督學習和無監(jiān)督學習領域的技術,可用于預測、分析和數(shù)據(jù)挖掘。機器學習不限于深度學習這一種。但在這一節(jié),我會介紹幾種使得深度學習變得如此高效的算法。
圖 7:機器學習方法的時間線
反向傳播
神經(jīng)網(wǎng)絡的強大力量源于其多層的結構。單層感知器的訓練是很直接的,但得到的網(wǎng)絡并不強大。那問題就來了:我們?nèi)绾斡柧毝鄬泳W(wǎng)絡呢?這就是反向傳播的用武之地。
反向傳播是一種用于訓練多層神經(jīng)網(wǎng)絡的算法。它的工作過程分為兩個階段。第一階段是將輸入傳播通過整個神經(jīng)網(wǎng)絡直到最后一層(稱為前饋)。第二階段,該算法會計算一個誤差,然后從最后一層到第一層反向傳播該誤差(調(diào)整權重)。
圖 8:反向傳播示意圖
在訓練過程中,該網(wǎng)絡的中間層會自己進行組織,將輸入空間的部分映射到輸出空間。反向傳播,使用監(jiān)督學習,可以識別出輸入到輸出映射的誤差,然后可以據(jù)此調(diào)整權重(使用一個學習率)來矯正這個誤差。反向傳播現(xiàn)在仍然是神經(jīng)網(wǎng)絡學習的一個重要方面。隨著計算資源越來越快、越來越便宜,它還將繼續(xù)在更大和更密集的網(wǎng)絡中得到應用。
卷積神經(jīng)網(wǎng)絡
卷積神經(jīng)網(wǎng)絡(CNN)是受動物視覺皮層啟發(fā)的多層神經(jīng)網(wǎng)絡。這種架構在包括圖像處理的很多應用中都有用。第一個 CNN 是由 Yann LeCun 創(chuàng)建的,當時 CNN 架構主要用于手寫字符識別任務,例如讀取郵政編碼。
LeNet CNN 由好幾層能夠分別實現(xiàn)特征提取和分類的神經(jīng)網(wǎng)絡組成。圖像被分為多個可以被接受的區(qū)域,這些子區(qū)域進入到一個能夠從輸入圖像提取特征的卷積層。下一步就是池化,這個過程降低了卷積層提取到的特征的維度(通過下采樣的方法),同時保留了最重要的信息(通常通過最大池化的方法)。然后這個算法又執(zhí)行另一次卷積和池化,池化之后便進入一個全連接的多層感知器。卷積神經(jīng)網(wǎng)絡的最終輸出是一組能夠識別圖像特征的節(jié)點(在這個例子中,每個被識別的數(shù)字都是一個節(jié)點)。使用者可以通過反向傳播的方法來訓練網(wǎng)絡。
圖 9.LeNet 卷積神經(jīng)網(wǎng)絡架構
對深層處理、卷積、池化以及全連接分類層的使用打開了神經(jīng)網(wǎng)絡的各種新型應用的大門。除了圖像處理之外,卷積神經(jīng)網(wǎng)絡已經(jīng)被成功地應用在了視頻識別以及自然語言處理等多種任務中。卷積神經(jīng)網(wǎng)絡也已經(jīng)在 GPU 上被有效地實現(xiàn),這極大地提升了卷積神經(jīng)網(wǎng)絡的性能。
長短期記憶(LSTM)
記得前面反向傳播中的討論嗎?網(wǎng)絡是前饋式的訓練的。在這種架構中,我們將輸入送到網(wǎng)絡并且通過隱藏層將它們向前傳播到輸出層。但是,還存在其他的拓撲結構。我在這里要研究的一個架構允許節(jié)點之間形成直接的回路。這些神經(jīng)網(wǎng)絡被稱為循環(huán)神經(jīng)網(wǎng)絡(RNN),它們可以向前面的層或者同一層的后續(xù)節(jié)點饋送內(nèi)容。這一特性使得這些網(wǎng)絡對時序數(shù)據(jù)而言是理想化的。
在 1997 年,一種叫做長短期記憶(LSTM)的特殊的循環(huán)網(wǎng)絡被發(fā)明了。LSTM 包含網(wǎng)絡中能夠長時間或者短時間記憶數(shù)值的記憶單元。
圖 10. 長短期記憶網(wǎng)絡和記憶單元
記憶單元包含了能夠控制信息流入或者流出該單元的一些門。輸入門(input gate)控制什么時候新的信息可以流入記憶單元。遺忘門(forget gate)控制一段信息在記憶單元中存留的時間。最后,輸出門(output gate)控制輸出何時使用記憶單元中包含的信息。記憶單元還包括控制每一個門的權重。訓練算法(通常是通過時間的反向傳播(backpropagation-through-time),反向傳播算法的一種變體)基于所得到的誤差來優(yōu)化這些權重。
LSTM 已經(jīng)被應用在語音識別、手寫識別、語音合成、圖像描述等各種任務中。下面我還會談到 LSTM。
深度學習
深度學習是一組相對新穎的方法集合,它們從根本上改變了機器學習。深度學習本身不是一種算法,但是它是一系列可以用無監(jiān)督學習實現(xiàn)深度網(wǎng)絡的算法。這些網(wǎng)絡是非常深層的,所以需要新的計算方法來構建它們,例如 GPU,除此之外還有計算機集群。
本文目前已經(jīng)介紹了兩種深度學習的算法:卷積神經(jīng)網(wǎng)絡和長短期記憶網(wǎng)絡。這些算法已經(jīng)被結合起來實現(xiàn)了一些令人驚訝的智能任務。如下圖所示,卷積神經(jīng)網(wǎng)絡和長短期記憶已經(jīng)被用來識別并用自然語言描述圖片或者視頻中的物體。
圖 11. 結合卷積神經(jīng)網(wǎng)絡和長短期記憶來進行圖像描述
深度學習算法也已經(jīng)被用在了人臉識別中,也能夠以 96% 的準確率來識別結核病,還被用在自動駕駛和其他復雜的問題中。
然而,盡管運用深度學習算法有著很多結果,但是仍然存在問題需要我們?nèi)ソ鉀Q。一個最近的將深度學習用于皮膚癌檢測的應用發(fā)現(xiàn),這個算法比經(jīng)過認證的皮膚科醫(yī)生具有更高的準確率。但是,醫(yī)生可以列舉出導致其診斷結果的因素,卻沒有辦法知道深度學習程序在分類的時候所用的因素。這被稱為深度學習的黑箱問題。
另一個被稱為 Deep Patient 的應用,在提供病人的病例時能夠成功地預測疾病。該應用被證明在疾病預測方面比醫(yī)生還做得好——即使是眾所周知的難以預測的精神分裂癥。所以,即便模型效果良好,也沒人能夠深入到這些大型神經(jīng)網(wǎng)絡去找到原因。
認知計算
人工智能和機器學習充滿了生物啟示的案例。盡管早期的人工智能專注于建立模仿人腦的機器這一宏偉目標,而現(xiàn)在,是認知計算正在朝著這個目標邁進。
認知計算建立在神經(jīng)網(wǎng)絡和深度學習之上,運用認知科學中的知識來構建能夠模擬人類思維過程的系統(tǒng)。然而,認知計算覆蓋了好多學科,例如機器學習、自然語言處理、視覺以及人機交互,而不僅僅是聚焦于某個單獨的技術。
認知學習的一個例子就是 IBM 的 Waston,它在 Jeopardy 上展示了當時最先進的問答交互。IBM 已經(jīng)將其擴展在了一系列的 web 服務上了。這些服務提供了用于一些列應用的編程接口來構建強大的虛擬代理,這些接口有:視覺識別、語音文本轉(zhuǎn)換(語音識別)、文本語音轉(zhuǎn)換(語音合成)、語言理解和翻譯、以及對話引擎。
繼續(xù)前進
本文僅僅涵蓋了關于人工智能歷史以及最新的神經(jīng)網(wǎng)絡和深度學習方法的一小部分。盡管人工智能和機器學習經(jīng)歷了很多起起伏伏,但是像深度學習和認知計算這樣的新方法已經(jīng)明顯地提升了這些學科的水平。雖然可能還無法實現(xiàn)一個具有意識的機器,但是今天確實有著能夠改善人類生活的人工智能系統(tǒng)。
-
人工智能
+關注
關注
1789文章
46667瀏覽量
237102 -
機器學習
+關注
關注
66文章
8353瀏覽量
132315
原文標題:IBM長文解讀人工智能、機器學習和認知計算
文章出處:【微信號:AItists,微信公眾號:人工智能學家】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論