人工智能書籍

第一個是“人工智能的歷史”(History of Artificial Intelligence), 
    順着 AI 發展時間線娓娓道來,中間穿插無數牛人故事,且一波三折大氣磅礴,可謂"事實比想象更令人驚訝"。人工智能始於哲學思辨,中間經歷了一個沒有心理學(尤其是認知神經科學的)的幫助的階段,僅通過牛人對人類思維的外在表現的歸納、內省,以及數學工具進行探索,其間最令人激動的是 Herbert Simon (決策理論之父,諾獎,跨領域牛人)寫的一個自動證明機,證明了羅素的數學原理中的二十幾個定理,其中有一個定理比原書中的還要優雅,Simon 的程序用的是啓發式搜索,因爲公理系統中的證明可以簡化爲從條件到結論的樹狀搜索(但由於組合爆炸,所以必須使用啓發式剪枝)。後來 Simon 又寫了 GPS (General Problem Solver),據說能解決一些能良好形式化的問題,如漢諾塔。但說到底 Simon 的研究畢竟只觸及了人類思維的一個很小很小的方面 —— Formal Logic,甚至更狹義一點 Deductive Reasoning (即不包含 Inductive Reasoning , Transductive Reasoning (俗稱 analogic thinking)。還有諸多比如 Common Sense、Vision、尤其是最爲複雜的 Language 、Consciousness 都還謎團未解。還有一個比較有趣的就是有人認爲 AI 問題必須要以一個物理的 Body 爲支撐,一個能夠感受這個世界的物理規則的身體本身就是一個強大的信息來源,基於這個信息來源,人類能夠自身與時俱進地總結所謂的 Common-Sense Knowledge (這個就是所謂的 Emboddied  Mind 理論。 ),否則像一些老兄直接手動構建 Common-Sense Knowledge Base ,就很傻很天真了,須知人根據感知系統從自然界獲取知識是一個動態的自動更新的系統,而手動構建常識庫則無異於古老的 Expert System 的做法。當然,以上只總結了很小一部分個人覺得比較有趣或新穎的,每個人看到的有趣的地方不一樣,比如裏面相當詳細地介紹了神經網絡理論的興衰。所以建議你看自己一遍,別忘了裏面鏈接到其他地方的鏈接。 
 
 
第二個則是“人工智能”(Artificial Intelligence)。當然,還有機器學習等等。從這些條目出發能夠找到許多非常有用和靠譜的深入參考資料。 
 
   
然後是一些書籍 
 
書籍: 
 
1. 《Programming Collective Intelligence》,近年出的入門好書,培養興趣是最重要的一環,一上來看大部頭很容易被嚇走的:P 
 
2. Peter Norvig 的《AI, Modern Approach 2nd》(無爭議的領域經典)。 
 
3. 《The Elements of Statistical Learning》,數學性比較強,可以做參考了。 
 
4. 《Foundations of Statistical Natural Language Processing》,自然語言處理領域公認經典。 
 
5. 《Data Mining, Concepts and Techniques》,華裔科學家寫的書,相當深入淺出。 
 
6. 《Managing Gigabytes》,信息檢索好書。 
 
7. 《Information Theory:Inference and Learning Algorithms》,參考書吧,比較深。 
 
相關數學基礎(參考書,不適合拿來通讀): 
 
1. 線性代數:這個參考書就不列了,很多。 
 
2. 矩陣數學:《矩陣分析》,Roger Horn。矩陣分析領域無爭議的經典。 
 
3. 概率論與統計:《概率論及其應用》,威廉·費勒。也是極牛的書,可數學味道太重,不適合做機器學習的。於是討論組裏的 Du Lei 同學推薦了《All Of Statistics》並說到 
 
    機器學習這個方向,統計學也一樣非常重要。推薦All of statistics,這是CMU的一本很簡潔的教科書,注重概念,簡化計算,簡化與Machine Learning無關的概念和統計內容,可以說是很好的快速入門材料。 
 
4. 最優化方法:《Nonlinear Programming, 2nd》非線性規劃的參考書。《Convex Optimization》凸優化的參考書。此外還有一些書可以參考 wikipedia 上的最優化方法條目。要深入理解機器學習方法的技術細節很多時候(如SVM)需要最優化方法作爲鋪墊。 
 
推薦幾本書: 
 
《Machine Learning, Tom Michell》, 1997. 
老書,牛人。現在看來內容並不算深,很多章節有點到爲止的感覺,但是很適合新手(當然,不能"新"到連算法和概率都不知道)入門。比如決策樹部分就很精彩,並且這幾年沒有特別大的進展,所以並不過時。另外,這本書算是對97年前數十年機器學習工作的大綜述,參考文獻列表極有價值。國內有翻譯和影印版,不知道絕版否。 
 
《Modern Information Retrieval, Ricardo Baeza-Yates et al》. 1999 
老書,牛人。貌似第一本完整講述IR的書。可惜IR這些年進展迅猛,這本書略有些過時了。翻翻做參考還是不錯的。另外,Ricardo同學現在是Yahoo Research for Europe and Latin Ameria的頭頭。 
 
《Pattern Classification (2ed)》, Richard O. Duda, Peter E. Hart, David G. Stork 
大約也是01年左右的大塊頭,有影印版,彩色。沒讀完,但如果想深入學習ML和IR,前三章(介紹,貝葉斯學習,線性分類器)必修。 
 
還有些經典與我只有一面之緣,沒有資格評價。另外還有兩本小冊子,論文集性質的,倒是講到了了不少前沿和細節,諸如索引如何壓縮之類。可惜忘了名字,又被我壓在箱底,下次搬家前怕是難見天日了。 
 
(呵呵,想起來一本:《Mining the Web - Discovering Knowledge from Hypertext Data》 ) 
 
說一本名氣很大的書:《Data Mining: Practical Machine Learning Tools and Techniques》。Weka 的作者寫的。可惜內容一般。理論部分太單薄,而實踐部分也很脫離實際。DM的入門書已經不少,這一本應該可以不看了。如果要學習瞭解 Weka ,看文檔就好。第二版已經出了,沒讀過,不清楚。 
 
信息檢索方面,Du Lei 同學再次推薦: 
 
    信息檢索方面的書現在建議看Stanford的那本《Introduction to Information Retrieval》,這書剛剛正式出版,內容當然up to date。另外信息檢索第一大牛Croft老爺也正在寫教科書,應該很快就要面世了。據說是非常pratical的一本書。 
 
    對信息檢索有興趣的同學,強烈推薦翟成祥博士在北大的暑期學校課程,這裏有全slides和閱讀材料:http://net.pku.edu.cn/~course/cs410/schedule.html 
 
maximzhao 同學推薦了一本機器學習: 
 
    加一本書:Bishop, 《Pattern Recognition and Machine Learning》. 沒有影印的,但是網上能下到。經典中的經典。Pattern Classification 和這本書是兩本必讀之書。《Pattern Recognition and Machine Learning》是很新(07年),深入淺出,手不釋卷。 
 
  
 
最後,關於人工智能方面(特別地,決策與判斷),再推薦兩本有意思的書, 
 
一本是《Simple Heuristics that Makes Us Smart》 
 
另一本是《Bounded Rationality: The Adaptive Toolbox》 
 
不同於計算機學界所採用的統計機器學習方法,這兩本書更多地着眼於人類實際上所採用的認知方式,以下是我在討論組上寫的簡介: 
 
    這兩本都是德國ABC研究小組(一個由計算機科學家、認知科學家、神經科學家、經濟學家、數學家、統計學家等組成的跨學科研究團體)集體寫的,都是引起領域內廣泛關注的書,尤其是前一本,後一本則是對 Herbert Simon (決策科學之父,諾獎獲得者)提出的人類理性模型的擴充研究),可以說是把什麼是真正的人類智能這個問題提上了檯面。核心思想是,我們的大腦根本不能做大量的統計計算,使用fancy的數學手法去解釋和預測這個世界,而是通過簡單而魯棒的啓發法來面對不確定的世界(比如第一本書中提到的兩個後來非常著名的啓發法:再認啓發法(cognition heuristics)和選擇最佳(Take the Best)。當然,這兩本書並沒有排斥統計方法就是了,數據量大的時候統計優勢就出來了,而數據量小的時候統計方法就變得非常糟糕;人類簡單的啓發法則充分利用生態環境中的規律性(regularities),都做到計算複雜性小且魯棒。 
 
關於第二本書的簡介: 
 
    1. 誰是 Herbert Simon 
 
    2. 什麼是 Bounded Rationality 
 
    3. 這本書講啥的: 
 
    我一直覺得人類的決策與判斷是一個非常迷人的問題。這本書簡單地說可以看作是《決策與判斷》的更全面更理論的版本。系統且理論化地介紹人類決策與判斷過程中的各種啓發式方法(heuristics)及其利弊(爲什麼他們是最優化方法在信息不足情況下的快捷且魯棒的逼近,以及爲什麼在一些情況下會帶來糟糕的後果等,比如學過機器學習的都知道樸素貝葉斯方法在許多情況下往往並不比貝葉斯網絡效果差,而且還速度快;比如多項式插值的維數越高越容易overfit,而基於低階多項式的分段樣條插值卻被證明是一個非常魯棒的方案)。 
 
    在此提一個書中提到的例子,非常有意思:兩個團隊被派去設計一個能夠在場上接住拋過來的棒球的機器人。第一組做了詳細的數學分析,建立了一個相當複雜的拋物線近似模型(因爲還要考慮空氣阻力之類的原因,所以並非嚴格拋物線),用於計算球的落點,以便正確地接到球。顯然這個方案耗資巨大,而且實際運算也需要時間,大家都知道生物的神經網絡中生物電流傳輸只有百米每秒之內,所以 computational complexity 對於生物來說是個寶貴資源,所以這個方案雖然可行,但不夠好。第二組則採訪了真正的運動員,聽取他們總結自己到底是如何接球的感受,然後他們做了這樣一個機器人:這個機器人在球拋出的一開始一半路程啥也不做,等到比較近了纔開始跑動,並在跑動中一直保持眼睛於球之間的視角不變,後者就保證了機器人的跑動路線一定會和球的軌跡有交點;整個過程中這個機器人只做非常粗糙的軌跡估算。體會一下你接球的時候是不是眼睛一直都盯着球,然後根據視線角度來調整跑動方向?實際上人類就是這麼幹的,這就是 heuristics 的力量。 
 
    相對於偏向於心理學以及科普的《決策與判斷》來說,這本書的理論性更強,引用文獻也很多而經典,而且與人工智能和機器學習都有交叉,裏面也有不少數學內容,全書由十幾個章節構成,每個章節都是由不同的作者寫的,類似於 paper 一樣的,很嚴謹,也沒啥廢話,跟《Psychology of Problem Solving》類似。比較適合 geeks 閱讀哈。 
 
    另外,對理論的技術細節看不下去的也建議看看《決策與判斷》這類書(以及像《別做正常的傻瓜》這樣的傻瓜科普讀本),對自己在生活中做決策有莫大的好處。人類決策與判斷中使用了很多的 heuristics ,很不幸的是,其中許多都是在適應幾十萬年前的社會環境中建立起來的,並不適合於現代社會,所以瞭解這些思維中的缺點、盲點,對自己成爲一個良好的決策者有很大的好處,而且這本身也是一個非常有趣的領域。

 統計學習理論與支持向量機  
    統計學習理論(Statistical Learning Theory,SLT)是一種專門研究有限樣本情況下的統計理論[1,2]。該理論針對有限樣本統計問題建立了一套新的理論體系,在這種體系下的統計推理規則不僅考慮了對漸近性能的要求,而且追求在現有有限信息的條件下得到最優結果。V. Vapnik等人從20世紀70年代開始致力於此方面研究,到20世紀90年代中期,隨着其理論的不斷髮展和成熟,也由於神經網絡等方法在理論上缺乏實質性進展,統計學習理論開始受到越來越廣泛的重視。統計學習理論是建立在一套較堅實的理論基礎之上的,爲解決有限樣本學習問題提供了一個統一的框架。

    同時,在統計學習理論基礎上發展了一種新的通用預測方法——支持向量機(Support Vector Machines,SVM),已初步表現出很多優於已有方法的性能[3,4],它能將很多現有方法(比如多項式逼近、徑向基函數方法、多層感知器網絡)納入其中,有望幫助解決許多原來難以解決的問題(比如神經網絡結構選擇問題、局部極值問題等)。SLT和SVM正在成爲繼神經網絡研究之後新的研究熱點,並將推動數據挖掘與機器學習理論和技術的重大發展[5]。

參考文獻:

1.   V. Vapnik. The nature of statistical learning theory. Springer-Verlag, 1995.

2.   V. Vapnik. Statistical learning theory. John Wiley and Sons, Inc., 1998.

3.   B. E. Boser, I. Guyon, V. Vapnik. A training algorithm for optimal margin classifiers. In: D. Haussler, Editor, Proceedings of the Fifth Annual ACM Workshop of Computational Learning Theory, 144-152, ACM Press, 1992.

4.    C. Cortes, V. Vapnik. Support-vector networks. Machine Learning, 1995, 20, 273-297

5.    J. C. Burges. A tutorial on support vector machines for pattern recognition. Data Mining and Knowledge Discovery, 1998, 2(2), 121-167

http://www.support-vector-machines.org/SVM_soft.html

SHOGUN - is a new machine learning toolbox with focus on large scale kernel methods and especially on Support Vector Machines (SVM) with focus to bioinformatics. It provides a generic SVM object interfacing to several different SVM implementations. Each of the SVMs can be combined with a variety of the many kernels implemented. It can deal with weighted linear combination of a number of sub-kernels, each of which not necessarily working on the same domain, where an optimal sub-kernel weighting can be learned using Multiple Kernel Learning. Apart from SVM 2-class classification and regression problems, a number of linear methods like Linear Discriminant Analysis (LDA), Linear Programming Machine (LPM), (Kernel) Perceptrons and also algorithms to train hidden markov models are implemented. The input feature-objects can be dense, sparse or strings and of type int/short/double/char and can be converted into different feature types. Chains of preprocessors (e.g. substracting the mean) can be attached to each feature object allowing for on-the-fly pre-processing.

SHOGUN comes in different flavours, a stand-a-lone version and also with interfaces to Matlab(tm), R, Octave, Readline and Python. This is the R package.

發佈了6 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章