官术网_书友最值得收藏!

1.3 機器學習:現代人工智能的靈魂

從半個多世紀的發展歷程可以看出,人工智能技術的進步走的是一條“反邏輯”的路。人類用一千多年的時間得到了可計算的邏輯,即數理邏輯。雖然絕大多數邏輯系統并不完備(可能存在不可證明真偽的命題),但在很多時候已經足以描述在數學和物理學上的很多知識(如概念、關系等)。這些知識是如此簡潔美好,如果可以被計算機掌握,則有望實現理解、決策等智能行為,這也是最初的人工智能研究者所持有的基本思路。然而,人們在研究過程中一步步發現,人為設計的知識以及基于這些知識的推理過程在實際應用中非常困難。這不僅因為對知識進行形式化本身就很煩瑣,即使完成了這一形式化,依然會有各種沖突和不確定性存在,使得推理很難完成。相反,從數據中學習得到的知識雖然可能是不精確、不全面的,但在很多時候更適合實際應用。因此,人工智能的研究者們不得不用數據學習逐漸取代人為設計。在這一過程中,我們失去了傳統數理邏輯的簡潔和清晰,越來越依賴從數據中得到統計規律,而這些規律天然具有模糊性和近似性。

這意味著當前人工智能技術與傳統AI在方法論上已經有很大的不同了。當代人工智能的本質是讓機器從數據中學習知識,而不再是對人類知識的復制,這一方法稱為“機器學習”。基于這樣的思路,人工智能已經不再是人的附庸,它將和人類在平等的起跑線上汲取和總結知識,因而可能創造出比人類更巧妙的方法、生成比人類更高效的決策、探索人類從未發現過的知識空間。數據越豐富,計算能力越強,這種學習方法帶來的效果越好,超越人的可能性越高。當前AI的很多成就很大程度是由龐大的數據資源和計算資源支撐的,典型的領域包括語音識別、圖像識別、自然語言處理、生物信息處理等。21世紀的AI是數據的AI,是機器學習的AI,“人工智能”里的“人工”更多的是設計學習原則,而非設計智能過程本身。基于此,本書將重點介紹基于機器學習的現代AI技術。關于傳統AI方法,讀者可參考朱福喜老師編著的《人工智能基礎教程》一書(3)

1.3.1 什么是機器學習

1959年,亞瑟·塞繆爾(Arthur Samule)發表了一篇名為Some Studies in Machine Learning Using the Game of Checkers的文章。該文章描述了一種會學習的西洋棋計算機程序,只需告訴該程序游戲規則和一些常用知識,經過8~10小時的學習后,即可學到足以戰勝程序作者的棋藝。這款西洋棋游戲是世界上第一個會自主學習的計算機程序,宣告了機器學習的誕生。

什么是機器學習?塞繆爾認為機器學習是“讓計算機擁有自主學習的能力,而無須對其進行事無巨細的編程”的方法(4)。尼爾斯·約翰·尼爾森(Nils J. Nilsson)則認為機器學習是“機器在結構、程序、數據等方面發生了基于外部信息的某種改變,而這種改變可以提高該機器在未來工作中的預期性能”(5)。上述這些定義本質上是一致的,即認為機器學習是通過接收外界信息(包括觀察樣例、外來監督、交互反饋等),獲得一系列知識、規則、方法和技能的過程。和傳統算法相比,機器學習的一個巨大優勢在于程序設計者不必定義具體的流程,只需告訴機器一些通用知識,定義一個足夠靈活的學習結構,機器即可通過觀察和體驗積累實際經驗,對所定義的學習結構進行調整、改進,從而獲得面向特定任務的處理能力。

1.3.2 機器學習發展史

圖1-5給出了機器學習發展歷史上的一些重要人物和標志性事件。總體來說,20世紀50年代以前是技術積累階段,研究者在統計學習和優化方法上提出了一系列模型和準則。1950年圖靈提出圖靈測試準則,開創了人工智能的廣闊領域。機器學習伴隨著人工智能的研究開始萌芽。1959年亞瑟·塞繆爾的劃時代論文將“機器學習”這一重要概念引入人工智能,并開始獨立解決實際問題。整個20世紀60年代,以符號邏輯為研究對象的符號學派(Symbolism)是人工智能研究的主流,人工神經網絡、概率模型、遺傳算法等更側重“學習”的方法開始萌芽。進入20世紀70年代,人工智能的冬天來臨,機器學習研究也走入困境,特別是在馬文·明斯基發表《感知器》一書后,被寄予厚望的人工神經網絡的研究幾乎停滯。

圖1-5 機器學習發展史上的若干重要人物和重要事件

注:坐標軸上方為人物,下方為對應人物的對應事件。

這一狀態一直持續到20世紀80年代。因為基于符號邏輯的人工智能方法無法提供足夠的學習空間,一些學者開始轉向統計學習方法,形成了兩個主要研究方向:一是基于概率模型的貝葉斯學派(Bayesianism);二是基于神經網絡模型的連接學派(Connectionism)。貝葉斯學派的代表人物包括JudeaPearl,S. L. Lauritzen,D. J. Spiegelhalter等,連接學派的代表人物包括John Hopfield,David Rumelhart,Geoffrey Hinton等。

這兩個學派在基本思路上有很大的差異,但都認為機器學習(包括人工智能)應該有更靈活的學習框架,而非在人為定義的符號系統中小修小改。整個20世紀80年代,機器學習的研究者們在人工智能領域的邊緣默默積累,貝葉斯學派提出了圖模型,連接學派發展出卷積神經網絡、遞歸神經網絡等新型網絡結構和高效的反向傳播(Back Propagation,BP)訓練算法。

進入20世紀90年代以后,以符號演算為基礎的傳統人工智能方法越來越表現出其局限性。第一,隨著任務越來越復雜,對知識的定義越來越困難,不僅知識數量越來越多,不同知識之間還經常出現矛盾;第二,知識系統越復雜,新知識的加入越困難,產生的結果越難以估計;第三,對一些沒有先驗知識的領域,推理系統無法工作;第四,人為創建的知識在面對實際問題時經常會產生偏差,甚至會帶來嚴重錯誤。相比之下,以統計方法為基礎的機器學習方法可以通過靈活的結構從數據中學習知識,可以方便處理數據中的噪聲和矛盾。基于此,以統計學習為特征的機器學習方法成為人工智能領域的主流方法。

進入21世紀以后,計算機的性能比以前有了大幅提高,這為以統計學習為特征的機器學習方法提供了更加廣闊的發展空間。今天,機器學習在信號處理、自然語言理解、圖像處理、生物與醫學等各方面取得了前所未有的成功。如今,當我們談論人工智能的時候,很多時候談論的是機器學習。另一方面,互聯網積累了大量人為編輯的數據(如維基百科),這些數據的出現一定程度上解決了傳統符號方法在知識積累上的瓶頸,使得以知識圖譜(Knowledge Graph)為代表的新一代符號方法取得了長足的進步。有意思的是,新生代的符號主義研究者們開始主動擁抱機器學習,利用機器學習方法對知識進行抽象與推理。新符號主義是機器學習領域中的重要力量。關于機器學習和人工智能的發展歷史,有興趣的讀者可參考最近出版的一些科普著作(6)

1.3.3 機器學習的基本框架

研究者對機器學習有各種各樣的表述。本書中,我們將從“知識”和“經驗”兩個概念來理解機器學習。所謂知識,是人類已經獲得的可形式化的某種理性表達(如英語語法和數學公式等),這些知識也被稱為先驗知識(Prior Knowledge,即已經掌握的知識)。所謂經驗,是指機器在運行環境中得到的反饋(比如,我們知道沸水是不能喝的,因為有過一次被燙傷的經歷,由此總結出了一條“不能喝沸水”的經驗)。經驗中包含大量有用的信息,只是掩蓋在復雜的表象之下,很難被直接利用。

“知識”和“經驗”是機器學習系統的兩個基本信息來源,基于其中任何一種信息源都可以構造一個有效的智能系統。但是,基于單一信息源的系統存在明顯缺陷:純粹基于知識的系統封閉而不思進取;純粹基于經驗的系統博聞而不求甚解。一種很自然的想法是將兩者結合起來。這類似一個新生兒,從誕生的那一刻起父母通過遺傳給他一個合理的神經結構(可以認為是一個基于知識的“設計”),可以進行呼吸、哭鬧等基本動作,但更高級的能力(如語言、推理等)則需要通過后天學習,從經驗中進行總結。因此,人類本身就是一個既有先驗知識,也有后天學習的綜合系統。我們認為這種先驗知識和后天經驗學習相結合的能力獲取方式是現代機器學習乃至人工智能的基本特征之一,而如何平衡這兩者的關系產生了風格迥異的學習方法。圖1-6給出基于知識—經驗的機器學習框架。下面從學習目標、學習結構、訓練數據、學習方法四個方面展開討論。

圖1-6 基于知識—經驗的機器學習基礎框架

注:首先確定學習目標,之后基于先驗知識設計學習結構。參考該學習目標和學習結構,選擇合適的學習方法,利用數據對學習結構進行修正,使之能更好地完成目標任務。

學習目標:機器學習任務的目標是多種多樣的。從應用角度看,學習目標可分為感知(Perception)、推理(Induction)、生成(Generation)等。其中,感知包括聽聲、看畫等;推理包括尋找原因,作出決策等;生成包括生成語音、圖片、文字等。從任務性質看,學習目標可分為預測(Prediction)和描述(Description)兩類,前者是指給定一部分數據(如昨天的股市指數)對另一部分數據進行預測(如今天的股市指數),后者是指對數據的內在規律進行發現和刻畫(如股市指數在一段時間內的變化規律)。

學習結構:學習結構又稱模型,定義了用以表達系統知識的具體形式。函數(Function)是一種常見的模型,該模型將知識表達為由某一輸入到某一輸出的映射,學習時通過改變函數參數來吸收從數據中得到的新知識;網絡(Network)是另一種常見的模型,該模型將知識表達為圖或網絡中節點的屬性以及節點之間的聯系,學習時通過改變這些屬性和聯系來吸收從數據中得到的新知識。

訓練數據:數據是經驗的累積,利用數據對系統進行學習可以更新先驗知識、提高系統實用性。數據的質量、數量和對實際場景的覆蓋程度都會直接影響學習的結果,因此數據積累是機器學習研究的基礎,“數據是最寶貴的財富”已經成為機器學習從業者的共識。

在收集和整理數據時,通常會關注數據是否準確、是否完整,不同數據間的相關性如何。另外,我們一般不會直接使用原始數據,而是通過一系列預處理過程對數據進行清洗過濾,并將數據中最顯著的部分提取出來(稱為特征提取)進行學習。

學習方法:學習方法是學習過程的具體實現,即通常所說的算法。機器學習算法可分為有監督學習(Supervised Learning)、無監督學習(Unsupervised Learning)、半監督學習(Semi-Supervised Learning)和強化學習(Reinforcement Learning)四種。其中,監督學習需要人為對數據進行標注(如給貓的圖片標上“貓”,給影評標上正面或負面評價等);無監督學習不需要標注;半監督學習需要部分標注;而強化學習只需要間接標注(見第5章)。需要特別注意的是,算法的選擇是由學習結構、學習目標及數據特性等幾方面因素共同決定的,不存在一種普適算法在所有任務中全面勝出。

總之,我們認為機器學習是一種將人類先驗知識和后天經驗相結合,以提高計算機處理某種特定任務能力的計算框架。這一框架包括學習目標、學習結構、訓練數據和學習算法四個部分。基于這一框架,我們依賴先驗知識設計合理的學習結構,設計相應的學習算法,從經驗數據中得到知識并對現有學習結構進行更新,使得既定的學習目標得到優化。

主站蜘蛛池模板: 巫溪县| 连南| 宁强县| 洱源县| 余庆县| 潢川县| 襄汾县| 承德县| 常宁市| 莫力| 如皋市| 元阳县| 宜春市| 车致| 耒阳市| 巫山县| 天水市| 马边| 安庆市| 宁河县| 横山县| 托克托县| 大理市| 外汇| 金门县| 安阳县| 井研县| 凭祥市| 蒙城县| 轮台县| 红原县| 铅山县| 张家港市| 精河县| 富源县| 江门市| 深泽县| 开远市| 平度市| 博湖县| 丁青县|