前言
本書的Python代碼旨在演示第二版《計算agent的基礎》人工智能中的一些算法,其中包含并解釋了所有代碼。我們遵循了以下原則:
目錄
作者介紹
David Poole,加拿大不列顛哥倫比亞大學計算機科學教授,計算智能實驗室主任。2014-2015年,他是牛津大學Leverhulme Trust客座教授。他還是加拿大人工智能學會(CAIAC)2013年終身成就獎獲得者,是國際人工智能促進協會(AAAI)和加拿大人工智能學會(CAIAC)Fellow。
Alan Mackworth,加拿大不列顛哥倫比亞大學計算機科學教授。他的研究興趣是基于約束的人工智能及其應用,被稱為約束滿足、機器人足球、混合系統和基于約束的Agent等研究領域的先驅。他是國際人工智能聯合會議(IJCAI)公司的總裁和理事,以及IJCAI執行委員會主席;同時還擔任許多編委會和程序委員會委員。他是加拿大計算機智能研究會(CSCSI)主席,還擔任國際人工智能促進協會(AAAI)主席。榮獲的獎勵包括:ITAC/NSERC杰出學術獎.Killam研究獎,《人工智能》雜志經典論文獎,CSCSI杰出服務獎,AAAI杰出服務獎,CAIAC終身成就獎等。他是AAAI和CAIAC的Fellow,加拿大前沿科學研究院和加拿大皇家學院院士。
這本受歡迎的教科書的第一版,當代人工智能,提供了一個學生友好的人工智能介紹。這一版完全修訂和擴大更新,人工智能: 介紹機器學習,第二版,保留相同的可訪問性和解決問題的方法,同時提供新的材料和方法。
該書分為五個部分,重點介紹了人工智能中最有用的技術。書的第一部分涵蓋了基于邏輯的方法,而第二部分著重于基于概率的方法。第三部分是涌現智能的特點,探討了基于群體智能的進化計算和方法。接下來的最新部分將提供神經網絡和深度學習的詳細概述。書的最后一部分著重于自然語言的理解。
適合本科生和剛畢業的研究生,本課程測試教材為學生和其他讀者提供關鍵的人工智能方法和算法,以解決具有挑戰性的問題,涉及系統的智能行為在專門領域,如醫療和軟件診斷,金融決策,語音和文本識別,遺傳分析等。
強化學習是現在人工智能領域里面最活躍的研究領域之一,它是一種用于學習的計算方法,其中會有一個代理在與復雜的不確定環境交互時試圖最大化其所收到的獎勵。現在,如果你是一個強化學習的初學者,由 Richard Sutton 和 Andrew Barto 合著的《Reinforcement Learning : An Introduction》可能就是你的最佳選擇。這本書提供了關于強化學習的簡單明了的關鍵思想和算法的解釋。他們討論了該領域的知識基礎的歷史延伸到了最新的發展的應用。
本書全文共分三部分,17章內容
第一部分:列表(Tabular)解決法,第一章描述了強化學習問題具體案例的解決方案,第二章描述了貫穿全書的一般問題制定——有限馬爾科夫決策過程,其主要思想包括貝爾曼方程(Bellman equation)和價值函數,第三、四、五章介紹了解決有限馬爾科夫決策問題的三類基本方法:動態編程,蒙特卡洛方法、時序差分學習。三者各有其優缺點,第六、七章介紹了上述三類方法如何結合在一起進而達到最佳效果。第六章中介紹了可使用適合度軌跡(eligibility traces)把蒙特卡洛方法和時序差分學習的優勢整合起來。第七章中表明時序差分學習可與模型學習和規劃方法(比如動態編程)結合起來,獲得一個解決列表強化學習問題的完整而統一的方案。
第二部分:近似求解法,從某種程度上講只需要將強化學習方法和已有的泛化方法結合起來。泛化方法通常稱為函數逼近,從理論上看,在這些領域中研究過的任何方法都可以用作強化學習算法中的函數逼近器,雖然實際上有些方法比起其它更加適用于強化學習。在強化學習中使用函數逼近涉及一些在傳統的監督學習中不常出現的新問題,比如非穩定性(nonstationarity)、引導(bootstrapping)和目標延遲(delayed targets)。這部分的五章中先后介紹這些以及其它問題。首先集中討論在線(on-policy)訓練,而在第九章中的預測案例其策略是給定的,只有其價值函數是近似的,在第十章中的控制案例中最優策略的一個近似已經找到。第十一章討論函數逼近的離線(off-policy)學習的困難。第十二章將介紹和分析適合度軌跡(eligibility traces)的算法機制,它能在多個案例中顯著優化多步強化學習方法的計算特性。這一部分的最后一章將探索一種不同的控制、策略梯度的方法,它能直接逼近最優策略且完全不需要設定近似值函數(雖然如果使用了一個逼近價值函數,效率會高得多)。
第三部分:深層次研究,這部分把眼光放到第一、二部分中介紹標準的強化學習思想之外,簡單地概述它們和心理學以及神經科學的關系,討論一個強化學習應用的采樣過程,和一些未來的強化學習研究的活躍前沿。
Perkovic對使用Python編程的介紹:作為應用程序開發的重點,第二版不僅僅是對編程的介紹。這是一本包羅萬象的計算機科學入門書,采用了“在正確的時間使用正確的工具”的教學方法,并側重于應用程序開發。該方法是實踐和問題導向的,與實踐問題和解決方案出現在整個文本。文本是命令式的,但并不回避在適當的時候盡早討論對象。關于用戶定義類和面向對象編程的討論將在后面的課文中出現,當學生有更多的背景知識和概念時,可以激發他們的學習動機。章節包括問題解決技術和經典算法的介紹,問題解決和編程以及將核心技能應用于應用程序開發的方法。本版本還包括在更廣泛的領域中提供的示例和實踐問題。另一章的案例研究是獨家威利E-Text,為學生提供實際應用的概念和工具,涵蓋在章節中。
強化一詞來源于實驗心理學中對動物學習的研究,它指的是某一事件的發生,與某一反應之間有恰當的關系,而這一事件往往會增加該反應在相同情況下再次發生的可能性。雖然心理學家沒有使用“強化學習”這個術語,但它已經被人工智能和工程領域的理論家廣泛采用,用來指代基于這一強化原理的學習任務和算法。最簡單的強化學習方法使用的是一個常識,即如果一個行為之后出現了一個令人滿意的狀態,或者一個狀態的改善,那么產生該行為的傾向就會得到加強。強化學習的概念在工程領域已經存在了幾十年(如Mendel和McClaren 1970),在人工智能領域也已經存在了幾十年(Minsky 1954, 1961;撒母耳1959;圖靈1950)。然而,直到最近,強化學習方法的發展和應用才在這些領域占據了大量的研究人員。激發這種興趣的是兩個基本的挑戰:1) 設計能夠在復雜動態環境中在不確定性下運行的自主機器人代理,2) 為非常大規模的動態決策問題找到有用的近似解。
Python是世界上最流行的編程語言之一,人們從不同的背景成為Python程序員。有些人受過正規的計算機科學教育。其他人則將Python學習作為一種愛好。還有一些人在專業環境中使用Python,但他們的主要工作不是做軟件開發人員。這本中級書中的問題將幫助經驗豐富的程序員在學習語言的某些高級功能的同時,從他們的CS教育中重新了解自己的想法。自學成才的程序員將通過學習所選語言(例如Python)中的經典問題來加速CS教育。本書涵蓋了各種各樣的問題解決技術,以至于每個人都有真正的收獲。
這本書不是對Python的介紹。相反,這本書假設您已經是一名中級或高級的Python程序員。盡管這本書需要Python3.7,但我們并不認為它能夠精通最新版本的Python的每一個方面。事實上,這本書的內容是建立在這樣一個假設上的:它將作為學習材料,幫助讀者達到這樣的掌握。另一方面,這本書不適合完全不熟悉Python的讀者。
目錄:
介紹
小問題
斐波那契序列
簡單的壓縮
牢不可破的加密
計算圓周率
漢諾塔
實際應用
練習
搜索問題
DNA搜索
迷宮求解
傳教士和野人問題
實際應用
練習
約束滿足問題
構建約束-滿足問題框架
澳大利亞的地圖著色問題
八皇后問題
單詞搜索
SEND+MORE=MONEY
電路板布局
實際應用
練習
圖論問題
地圖作為圖
構建圖框架
最短路徑查找
最小化網絡建設成本
求加權圖中的最短路徑
實際應用
練習
遺傳算法
生物背景
一種通用遺傳算法
一個天真的測試
SEND+MORE=MONEY revisited
優化列表壓縮
遺傳算法的挑戰
實際應用
練習
k-means聚類
預備工作
k-means聚類算法
按年齡和經度對州長進行聚類
按長度聚集邁克爾·杰克遜的專輯
K-means聚類的問題和擴展
實際應用
練習
相當簡單的神經網絡
生物學基礎?
人工神經網絡
預備工作
構建網絡
分類問題
加速神經網絡
神經網絡問題和擴展
實際應用
練習
對抗搜索
基本棋盤游戲組件
井字游戲
四子棋
除了α-β剪枝之外的極大極小改進
實際應用
練習
其他問題
背包問題
旅行推銷員問題
電話號碼助記符
練習
附錄A 詞匯表
附錄B 更多資源
附錄C 類型提示簡介
課程名稱: Introduction to Articial Intelligence
課程簡介:
本課程主要講述了人工智能相關知識,包括基本理論、練習和項目。
課程部分大綱:
講師介紹:
Gilles Louppe是比利時列日大學人工智能和深度學習的副教授。他曾是紐約大學物理系和數據科學中心的博士后助理,與歐洲核子研究中心的阿特拉斯實驗關系密切。他的研究處于機器學習、人工智能和物理科學的交叉點上,他目前的研究興趣包括使用和設計新的機器學習算法,以新的和變革性的方式處理來自基礎科學的數據驅動的問題。
前言: 目標:本課程旨在讓學生對人工智能的基本概念和實踐有一個堅實的(通常是有點理論性的)基礎。這門課程在第一學期主要涉及符號化的人工智能,有時也被稱為優秀的老式人工智能(GofAI),并在第二學期提供統計方法的基礎。事實上,一個完整的基于機器學習的AI應該有專業課程,并且需要比我們在這門課程中更多的數學基礎。
課程內容:
目標: 使學生對人工智能領域的基本概念和實踐有一個堅實的基礎。該課程將基于Russell/Norvig的書《人工智能》:現代方法[RN09]
Artificial Intelligence I(第一部分): 介紹人工智能作為一個研究領域,討論作為人工智能統一概念范式的理性代理,并涵蓋問題解決、搜索、約束傳播、邏輯、知識表示和規劃。
Artificial Intelligence II(第二部分): 更傾向于讓學生接觸基于統計的人工智能的基礎知識:我們從不確定性下的推理開始,用貝葉斯網絡建立基礎,并將其擴展到理性決策理論。在此基礎上,我們介紹了機器學習的基礎知識。
這是Peter Norvig(1992)寫的《人工智能編程范式:通用Lisp中的案例研究》一書的開放源代碼存儲庫。