千年以來,人類一直在思考如何構建智能機器。從那時起,人工智能 (ai) 經歷過高潮與低谷,既展現了成功的一面,也有許多潛力有待發掘。時至今日,采用機器學習算法來解決新問題屢屢見諸報端。從癌癥檢測與預測到圖片理解與匯總及自然語言學習,ai 為人類提供了諸多便利,也在改變著我們的世界。
現代 ai 的歷史涵蓋了一部“大戲”的全部要素。ai 第一次出現在歷史舞臺是在上世紀 50 年代,當時的 ai 專注于會思考的機器,也出現了一些有趣的人物,比如:艾倫·圖靈、馮紐曼·諾伊曼等。經過數十年的“浮浮沉沉”,人們對 ai 的期望幾乎降到了低谷,但不可否認的是,ai 一直都在無數先鋒者的推動下向前發展。時至今日,ai 已開始發揮它的真正潛力,專注于應用并交付了深度學習與認知計算等技術。
本文將帶您探索 ai 及其子領域的一些重要方面。首先我們來了解一下 ai 發展的時間表,然后深入了解各個要素。
現代 ai 的發展時間表
現代 ai 的歷史可以追溯到上世紀 50 年代,當時它主要專注于所謂的強人工智能 (ai),是指能夠廣泛地執行人類可執行的任何智能任務的 ai。由于強人工智能沒有太多進展,最終導致出現了弱人工智能,即運用 ai 技術來解決更小范圍內的問題。在上世紀 80 年代之前,ai 研究一直都分為強人工智能和弱人工智能兩個領域。不過,大約在 1980 年前后,機器學習開始成為 ai 研究的主導領域,其目的在于讓計算機具備學習并構建模型,進而執行預測等特定領域內活動的能力。
圖 1. 現代人工智能發展時間表
113 >
大約在 2000 年,在 ai 與機器學習研究成果的基礎上,開始出現深度學習。計算機科學家開始通過新的拓撲和學習方法在多個層上采用神經網絡。神經網絡的這種演變成功解決了多個領域的許多復雜問題。
在過去十年里,認知計算開始出現,該技術旨在構建可以學習且能夠與人類進行自然交互的系統。在電視競賽節目jeopardy!上,ibm watson™ 擊敗了世界級的對手,展示了認知計算的獨特能力。
在本文中,我將逐一為大家介紹這些領域,并解釋推動實現 ai 成功的一些重要算法。
基礎性 ai
1950 年之前的研究引入了一種概念,即:大腦是由一個電脈沖網絡構成的,該網絡能夠激發并以某種形式統籌安排思想和意識。艾倫·圖靈向我們展示了任何計算均可通過數字化的方式實施。之后,這種構建能夠模擬人類大腦的理念并未有太大發展。
較早期的研究主要專注于強人工智能,但在這一時期所引入的概念構成了當今所有機器學習與深度學習算法的基礎概念。
圖 2. 1980 年之前的人工智能方法時間表
169 >
ai 即搜索
ai 領域的許多問題都可以通過暴力搜索(比如深度或服務優先的搜索)的方法解決。不過,考慮到中等難度問題的搜索空間,基本搜索很快就會遭遇瓶頸。出現最早的 ai 即搜索示例之一是國際跳棋程序的開發。arthur samuel 在 ibm 701 電子數據處理機上構建了第一款此類程序,對被稱作“貝塔剪枝算法”的決策樹實施了優化。該程序還能夠記錄特定下法的獎勵,使得應用能夠從每次棋局中進行學習(該程序也因此成為首個能夠自學習的程序)。為了提升該程序的學習速度,samuel 對其進行了編程了,使其能夠自己完成對局,進而提升了該程序的對局和學習能力。
盡管您可以成功運用搜索解決許多簡單的問題,但隨著大量新選擇的出現,這種方法很快被淘汰。我們以簡單的井字棋為例,在棋局開始時,共有 9 種可能的下法。每一種下法對手都有 8 種應對下法,如此等等。井字棋的完整下法樹(未經過旋轉優化去除重復的情況下)共包含有 362,880 個節點。如果您將這種思維實驗延伸到國際象棋或圍棋領域,很快就會發現搜索的缺點。
感知機
感知機是一種用于單層神經網絡的早期監督式學習算法。在給定的輸入特征向量下,感知機算法能夠通過學習對屬于特定類別的輸入進行分類。網絡的權重和偏執可通過訓練集進行更新,進而實現線性分類。感知機首次是為 ibm 704實現的,之后是在用于圖像識別的定制硬件上實現的。
圖 3. 感知機與線性分類
562 231 >
作為一個線性分類器,感知機能夠解決線性可分割問題。感知機的一個關鍵局限性在于它無法學習專用的or(xor) 函數。多層感知機能夠解決這一問題,也為更復雜的算法、網絡拓撲和深度學習鋪平了道路。
集群算法
通過感知機,對該方法進行監督。用戶提供數據來訓練網絡,然后通過新數據來測試網絡。集群算法采用了一種不同的方法,即無監督式學習。在該模型中,算法會基于數據的一個或多個屬性將特征向量組織到一個特征向量集中。
圖 4. 二維特征空間中的集群
576 300 >
可以在少量代碼中實施的最簡單算法之一是 k 均值算法。在該算法中,k是指您可以向其中分配樣本的集群數量。您可以通過隨機特征向量對集群進行初始化,然后將所有其他樣本添加到最近的集群(假定每個樣本都代表一個功能向量,并采用歐氏距離來識別“距離”)。在樣本被添加到集群之后,集群的質心(即集群的中心)也會重新進行計算。之后,該算法會再次對樣本進行檢查,確保它們均位于最近的集群中;當任何樣本的成員關系都不再發生變化時,算法結束。
k 均值算法是一種比較高效的算法,不過您必須事先指定k值。因此,層級式集群或基于分布的集群等其他方法可能會更加高效,具體視所用的數據而定。
決策樹
決策樹與集群算法密切相關。決策樹是針對可得出結論的多個觀察結果而構建的一個預測模型。結論以決策樹上樹葉的形式呈現,而節點即為觀察結果發散所處的決策點。決策樹根據決策樹學習算法而構建,其中會根據屬性值集合將數據集拆分為多個子集(通過遞歸分區來實現)。
我們來看一下下圖中的示例。在該數據集中,我們可以根據三個因素來觀察某個人在何時的效率最高。借助決策樹算法,我們可以通過指標(比如信息增益)來識別屬性。在本示例中,情緒是影響效率的一個關鍵因素,因此,我們基于“情緒是否良好”這一指標的值(“是”或“否”)來拆分該數據集。值為“否”的情況很簡單:這表示效率較低。但如果是值為“是”的情況,就需要基于另外兩個屬性再次對數據集進行拆分。在圖中,我對數據集進行了顏色區分,以便讀者了解觀察結果分散到樹葉節點的位置。
圖 5. 簡單的數據集與生成的決策樹
265 300 >
439 231 >
決策樹的一個優勢在于其固有的組織性,這使您能夠輕松地(以圖形化的形式)解釋某個項目的分類情況。主流的決策樹學習算法包括 c4.5、分類與回歸樹。
基于規則的系統
dendral 是第一個基于規則和界面而構建的系統,該系統開發于 1965 年,不過,直到上世紀 70 年代,這種所謂的“專家系統”才實現了重大進展。基于規則的系統是指將知識與規則存儲在其中并使用推理系統得出結論的系統。
基于規則的系統一般由一個規則集、一個知識庫、一個界面引擎(使用正向或反向規則鏈條)和一個用戶界面構成。在下圖中,我使用了一個知識條目(“socrates 是人類”)、一條規則(“如果是人類,就會死亡”),以及針對會死亡的人類的一個交互。
圖 6. 基于規則的系統
540 300 >
在語音識別、規劃與控制及疾病識別等多個領域都曾運用過基于規則的系統。在上世紀 90 年代,開發出了一種用于監測和診斷大壩穩定性的系統,即 kaleidos;該系統到今天仍舊在使用。
機器學習
機器學習是 ai 和計算機科學的一個子領域,其根本在于統計與數學優化。機器學習涵蓋了監督式學習和非監督式學習的技術,可用于預測、分析和數據挖掘等領域。機器學習并不僅限于深度學習,在本節中,我將介紹該領域中幾種非常高效的算法。
圖 7. 機器學習方法時間表
178 >
反向傳播
神經網絡的真正價值在于其多層變體。單層感知機的訓練很直接,但據此構建的網絡并不強大。那么擺在我們面前的問題就是“如何訓練多層網絡?”這就是反向傳播算法所針對的領域。
反向傳播是一種用于訓練多層神經網絡的算法。該算法分為兩個階段。第一個階段是通過神經網絡將輸入傳播到最后一層(即前饋)。在第二個階段,算法會計算出錯誤,然后從最后一層到第一層反向傳播該錯誤(調整權重)。
圖 8. 反向傳播簡介
372 300 >
在訓練過程中,網絡的中間層會自己進行組織,將輸入空間的部分映射到輸出空間。通過監督式學習,反向傳播算法能夠識別輸入到輸出映射中的錯誤,然后相應地調整權重(通過學習率)來糾正該錯誤。在將來,反向傳播在神經網絡學習領域仍將會發揮著重要作用。隨著計算資源的速度越來越快、成本越來越低,反向傳播將會繼續被運用到更大、密度更高的網絡中。
卷積神經網絡
卷積神經網絡 (cnn) 是指受動物視覺皮層的啟發而構建的多層神經網絡。這種架構適用于圖像處理等各種應用。第一個 cnn 由 yann lecun 創建;當時,該架構以手寫字符識別為重點,比如郵政編碼讀取等。
lenet cnn 架構由若干層組成,這些層實現特征提取,然后進行分類。圖像被分為接收字段,接收字段饋入卷積層,然后卷積層從輸入圖像中提取特征。下一步是池,不僅減少了提取特征的維數(通過向下采樣),還保留了最重要的信息(通常通過最大池)。再就是執行另一個卷積和匯集步驟,將數據輸入到完全連接的多層感知機中。此種網絡的最后一個輸出層是一組節點,能夠標識圖像的特征(在本例中,每個標識的數字對應一個節點)。用戶可以通過反向傳播訓練網絡。
圖 9. lenet 卷積神經網絡架構
166 >
對于神經網絡的各種新應用來說,深層處理、卷積、池和完全連接分類層的運用可以說是一大突破口。除圖像處理外,cnn 還成功地運用于視頻識別和自然語言處理范疇內的各種任務中。再者,cnn 也在 gpu 中得以有效實施,使其性能得以大大提升。
長短期記憶
我們回想一下,在討論反向傳播時,接受訓練的網絡是前饋網絡。在此架構中,用戶將輸入信息饋送到網絡中,通過隱藏層將其向前傳播到輸出層。但是,也還有很多其他神經網絡拓撲。其中之一,也是我們研究的對象,支持通過節點之間的連接形成一個定向循環。這些網絡稱為遞歸神經網絡,可以向后反饋到前些層或其所在層中的后續節點。由于具備這樣的屬性,此等網絡成為了時間序列數據的理想選擇。
1997 年,創建了一種特殊的循環網絡,稱為長短期記憶 (lstm)。lstm 由內存單元組成,這些網絡內的內存單元可以在短時間或長時間內記住值。
圖 10. 長短期記憶網絡和內存單元
596 300 >
內存單元包含有多個用于控制信息如何從內存單元流入或流出的門。輸入門控制新信息何時流入內存。忘記門控制現有信息塊在內存中的維持時間。最后,輸出門控制單元中包含的信息何時用于內存單元的輸出。該單元還包含有控制每個門的權重。訓練算法往往通過時間反向傳播(反向傳播的一種變體),能夠根據產生的錯誤優化相應的權重。
lstm 已應用于語音識別、手寫識別、文本到語音合成、圖像字幕處理以及其他各種任務。不久,我就會重新訪問 lstm。
深度學習
深度學習是一種相對較新穎的方法集,正在從根本上改變著機器學習。從本質上來說,深度學習并非一種算法,而是通過非監督式學習實施深度網絡的一系列算法。鑒于這些網絡的深度,我們需要采用 gpu 等新的計算方法才能進行構建。
本文探討了現有的兩種深度學習算法:cnn 和 lstm。這些算法已相互結合,能夠完成一些令人驚訝的智能任務。如下圖所示,cnn 和 lstm 已用于識別圖片或視頻,然后用自然語言描述。
圖 11. 結合運用卷積神經網絡與長短期記憶網絡進行圖像描述
119 >
另外,深度學習算法還用于面部識別,識別肺結核的準確率高達 96%,還包括解決自動駕駛車輛和很多其他復雜的問題。
盡管深度學習算法的運用取得了一定的成效,但仍舊存在許多我們尚無法解決的問題。就近期深度學習在皮膚癌檢測方面的運用效果來看,這種算法的確比獲得經過認證的專業醫師更加準確。但專業醫師能夠列舉出他們作出診斷的依據,而深度學習程序在進行分類時所用的依據,我們卻無法識別。這便是深度學習的黑匣子問題。
再看另一個應用,deep patient,它能夠依據病患的病歷成功地預測疾病。經過驗證,該應用在疾病預測方面要遠遠優于醫師,甚至是對于普遍認為難以預測的精神分裂癥而言,該應用也能成功預測。因此,盡管深度學習模型的效果很好,但沒有人能夠深入到其中的廣泛神經網絡找到背后的原因所在。
認知計算
ai 和機器學習可以說是生物領域的新沃土。雖然早期 ai 以制造人腦模擬機器為遠大目標,但認知計算在這一方向上走的更遠。
認知計算是基于神經網絡和深度學習的計算,是運用認知科學的知識來構建模擬人類思維過程的系統。不過,認知計算并非僅僅專注于單個技術集,而是涵蓋了多個學科,包括機器學習、自然語言處理、視覺和人機交互等等。
認知計算的一例是 ibm watson,展示了有關jeopardy!的最新問答互動,但亮點在于 ibm 的web 服務。這些服務揭示了用于視覺識別、語音到文本和文本到語音功能的應用編程接口;語言理解和翻譯;以及用于構建強大虛擬代理的會話引擎。
未來展望
本文僅為人工智能的發展史拋磚引玉,淺顯介紹了最新的神經網絡和深度學習方法。盡管人工智能和機器學習有其起伏波折的發展過程,但像深度學習和認知計算這樣的新方法已經大大提高了這些領域的鉆研難度。可以說,一臺有意識的機器仍舊遙不可及,但我們已經看到了有助于改善人們生活的系統。
來源:csdn博客
以上是網絡信息轉載,信息真實性自行斟酌。