機器學習經典書目彙總

ccwwff發表於2016-02-17

from: http://wenku.baidu.com/view/3873d18fba1aa8114531d92f
 
本文總結了機器學習的經典書籍,包括數學基礎和演算法理論的書籍。
 
入門書單
 
《數學之美》
 
作者吳軍大家都很熟悉。以極為通俗的語言講述了數學在機器學習和自然語言處理等領域的應用。
 
《Programming Collective Intelligence》(《集體智慧程式設計》)
 
作者Toby Segaran也是《BeautifulData : The Stories Behind Elegant Data Solutions》(《資料之美:解密優雅資料解決方案背後的故事》)的作者。這本書最大的優勢就是裡面沒有理論推導和複雜的數學公式,是很不錯的入門書。目前中文版已經脫銷,對於有志於這個領域的人來說,英文的pdf是個不錯的選擇,因為後面有很多經典書的翻譯都較差,只能看英文版,不如從這個入手。還有,這本書適合於快速看完,因為據評論,看完一些經典的帶有數學推導的書後會發現這本書什麼都沒講,只是舉了很多例子而已。
 
《Algorithms of the Intelligent Web》(《智慧web演算法》)
 
作者Haralambos Marmanis、Dmitry Babenko。這本書中的公式比《集體智慧程式設計》要略多一點,裡面的例子多是網際網路上的應用,看名字就知道。不足的地方在於裡面的配套程式碼是BeanShell而不是python或其他。總起來說,這本書還是適合初學者,與上一本一樣需要快速讀完,如果讀完上一本的話,這一本可以不必細看程式碼,瞭解演算法主要思想就行了。
 
《統計學習方法》
 
作者李航,是國內機器學習領域的幾個大家之一,曾在MSRA任高階研究員,現在華為諾亞方舟實驗室。書中寫了十個演算法,每個演算法的介紹都很乾脆,直接上公式,是徹頭徹尾的“乾貨書”。每章末尾的參考文獻也方便了想深入理解演算法的童鞋直接查到經典論文;本書可以與上面兩本書互為輔助閱讀。
 
《Machine Learning》(《機器學習》)
 
作者Tom Mitchell是CMU的大師,有機器學習和半監督學習的網路課程視訊。這本書是領域內翻譯的較好的書籍,講述的演算法也比《統計學習方法》的範圍要大很多。據評論這本書主要在於啟發,講述公式為什麼成立而不是推導;不足的地方在於出版年限較早,時效性不如PRML。但有些基礎的經典還是不會過時的,所以這本書現在幾乎是機器學習的必讀書目。
 
《Mining of Massive Datasets》(《大資料》)
 
作者Anand Rajaraman[3]、Jeffrey David Ullman,Anand是Stanford的PhD。這本書介紹了很多演算法,也介紹了這些演算法在資料規模比較大的時候的變形。但是限於篇幅,每種演算法都沒有展開講的感覺,如果想深入瞭解需要查其他的資料,不過這樣的話對演算法進行了解也足夠了。還有一點不足的地方就是本書原文和翻譯都有許多錯誤,勘誤表比較長,讀者要用心了。
 
《Data Mining: Practical Machine Learning Tools and Techniques》(《資料探勘:實用機器學習技術》)
 
作者Ian H. Witten 、Eibe Frank是weka的作者、紐西蘭懷卡託大學教授。他們的《ManagingGigabytes》[4]也是資訊檢索方面的經典書籍。這本書最大的特點是對weka的使用進行了介紹,但是其理論部分太單薄,作為入門書籍還可,但是,經典的入門書籍如《集體智慧程式設計》、《智慧web演算法》已經很經典,學習的話不宜讀太多的入門書籍,建議只看一些上述兩本書沒講到的演算法。
 
《機器學習及其應用》
 
周志華、楊強主編。來源於“機器學習及其應用研討會”的文集。該研討會由復旦大學智慧資訊處理實驗室發起,目前已舉辦了十屆,國內的大牛如李航、項亮、王海峰、劉鐵巖、餘凱等都曾在該會議上做過講座。這本書講了很多機器學習前沿的具體的應用,需要有基礎的才能看懂。如果想了解機器學習研究趨勢的可以瀏覽一下這本書。關注領域內的學術會議是發現研究趨勢的方法嘛。
 
《Managing Gigabytes》(深入搜尋引擎)
 
資訊檢索不錯的書。

《Modern Information Retrieval》
 
Ricardo Baeza-Yates et al. 1999。貌似第一本完整講述IR的書。可惜IR這些年進展迅猛,這本書略有些過時了。翻翻做參考還是不錯的。另外,Ricardo同學現在是Yahoo Research for Europe and Latin Ameria的頭頭。 

《推薦系統實踐》
 
項亮,不錯的入門讀物深入
 
《Pattern Classification》(《模式分類》第二版)
 
作者Richard O. Duda[5]、Peter E. Hart、David。模式識別的奠基之作,但對最近呈主導地位的較好的方法SVM、Boosting方法沒有介紹,被評“掛一漏萬之嫌”。
 
《Pattern Recognition And Machine Learning》
 
作者Christopher M. Bishop[6];簡稱PRML,側重於概率模型,是貝葉斯方法的扛鼎之作,據評“具有強烈的工程氣息,可以配合stanford大學 Andrew
Ng 教授的Machine Learning 視訊教程一起來學,效果翻倍。”
 
《The Elements of Statistical Learning : Data Mining, Inference, andPrediction》,(《統計學習基礎:資料探勘、推理與預測》第二版)
 
作者RobertTibshirani、Trevor Hastie、Jerome Friedman。“這本書的作者是Boosting方法最活躍的幾個研究人員,發明的Gradient Boosting提出了理解Boosting方法的新角度,極大擴充套件了Boosting方法的應用範圍。這本書對當前最為流行的方法有比較全面深入的介紹,對工程人員參考價值也許要更大一點。另一方面,它不僅總結了已經成熟了的一些技術,而且對尚在發展中的一些議題也有簡明扼要的論述。讓讀者充分體會到機器學習是一個仍然非常活躍的研究領域,應該會讓學術研究人員也有常讀常新的感受。”[7] 

《Data Mining:Concepts andTechniques》(《資料探勘:概念與技術》第三版)
 
作者(美)Jiawei Han[8]、(加)Micheline Kamber、(加)Jian Pei,其中第一作者是華裔。本書毫無疑問是資料探勘方面的的經典之作,不過翻譯版總是被噴,沒辦法,大部分翻譯過來的書籍都被噴,想要不吃別人嚼過的東西,就好好學習英文吧。
 
《AI, Modern Approach 2nd》
 
Peter Norvig,無爭議的領域經典。
 
《Foundations of Statistical Natural Language Processing》
 
自然語言處理領域公認經典。
 
《Information Theory:Inference and Learning Algorithms》
 
《Statistical Learning Theory》
 
Vapnik的大作,統計學界的權威,本書將理論上升到了哲學層面,他的另一本書《The Nature ofStatistical Learning Theory》也是統計學習研究不可多得的好書,但是這兩本書都比較深入,適合有一定基礎的讀者。
 
數學基礎
 
《矩陣分析》
 
Roger Horn。矩陣分析領域無爭議的經典
 
《概率論及其應用》
 
威廉·費勒。極牛的書,可數學味道太重,不適合做機器學習的
 
《All Of Statistics》
 
機器學習這個方向,統計學也一樣非常重要。推薦All of statistics,這是CMU的一本很簡潔的教科書,注重概念,簡化計算,簡化與Machine Learning無關的概念和統計內容,可以說是很好的快速入門材料。
 
《Nonlinear Programming, 2nd》
最優化方法,非線性規劃的參考書。
 
《Convex Optimization》
 
Boyd的經典書籍,被引用次數超過14000次,面向實際應用,並且有配套程式碼,是一本不可多得的好書。
 
《Numerical Optimization》
 
第二版,Nocedal著,非常適合非數值專業的學生和工程師參考,演算法流程清晰詳細,原理清楚。
 
《Introduction to Mathematical Statistics》
 
第六版,Hogg著,本書介紹了概率統計的基本概念以及各種分佈,以及ML,Bayesian方法等內容。
 
《An Introduction to Probabilistic Graphical Models》
 
Jordan著,本書介紹了條件獨立、分解、混合、條件混合等圖模型中的基本概念,對隱變數(潛在變數)也做了詳細介紹,相信大家在隱馬爾科夫鏈和用Gaussian混合模型來實現EM演算法時遇到過這個概念。
 
《Probabilistic Graphical Models-Principles and Techniques》
 
Koller著,一本很厚很全面的書,理論性很強,可以作為參考書使用。
 
具體數學
 
經典
 
大家的補充
 
線性代數(Linear Algebra):
我想國內的大學生都會學過這門課程,但是,未必每一位老師都能貫徹它的精要。這門學科對於Learning是必備的基礎,對它的透徹掌握是必不可少的。我在科大一年級的時候就學習了這門課,後來到了香港後,又重新把線性代數讀了一遍,所讀的是
 
Introduction to Linear Algebra (3rd Ed.) by Gilbert Strang. 
這本書是MIT的線性代數課使用的教材,也是被很多其它大學選用的經典教材。它的難度適中,講解清晰,重要的是對許多核心的概念討論得比較透徹。我個人覺得,學習線性代數,最重要的不是去熟練矩陣運算和解方程的方法——這些在實際工作中MATLAB可以代勞,關鍵的是要深入理解幾個基礎而又重要的概念:子空間(Subspace),正交(Orthogonality)
,特徵值和特徵向量(Eigenvalues and eigenvectors),和線性變換(Linear transform)。從我的角度看來,一本線代教科書的質量,就在於它能否給這些根本概念以足夠的重視,能否把它們的聯絡講清楚。Strang的這本書在這方面是做得很好的。而且,這本書有個得天獨厚的優勢。書的作者長期在MIT講授線性代數課(18.06),課程的video在MIT的Open courseware網站上有提供。有時間的朋友可以一邊看著名師授課的錄影,一邊對照課本學習或者複習。
 http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/CourseHome/index.htm6 

概率和統計(Probability and Statistics):
概率論和統計的入門教科書很多,我目前也沒有特別的推薦。我在這裡想介紹的是一本關於多元統計的基礎教科書:
Applied Multivariate Statistical Analysis (5th Ed.) by Richard A. Johnson and Dean W. Wichern  這本書是我在剛接觸向量統計的時候用於學習的,我在香港時做研究的基礎就是從此打下了。實驗室的一些同學也借用這本書學習向量統計。這本書沒有特別追求數學上的深度,而是以通俗易懂的方式講述主要的基本概念,讀起來很舒服,內容也很實用。對於Linear regression, factor analysis, principal component analysis (PCA), and canonical component analysis (CCA)這些Learning中的基本方法也展開了初步的論述。

之後就可以進一步深入學習貝葉斯統計和Graphical models。一本理想的書是 
Introduction to Graphical Models (draft version). by M. Jordan and C. Bishop.  我不知
道這本書是不是已經出版了(不要和Learning in Graphical Models混淆,那是個論文集,不適合初學)。這本書從基本的貝葉斯統計模型出發一直深入到複雜的統計網路的估計和推斷,深入淺出,statistical learning的許多重要方面都在此書有清楚論述和詳細講解。MIT內部可以access,至於外面,好像也是有電子版的。
 
分析
 (Analysis)
:我想大家基本都在大學就學過微積分或者數學分析,深度和廣度則隨各個學校而異了。這個領域是很多學科的基礎,值得推薦的教科書莫過於 
Principles of Mathematical Analysis, by Walter Rudin 
有點老,但是絕對經典,深入透徹。缺點就是比較艱深——這是Rudin的書的一貫風格,適合於有一定基礎後回頭去看。
 
在分析這個方向,接下來就是泛函分析(Functional Analysis)。
 
Introductory Functional Analysis with Applications, by Erwin Kreyszig. 
適合作為泛函的基礎教材,容易切入而不失全面。我特別喜歡它對於譜論和運算元理論的特別關注,這對於做learning的研究是特別重要的。Rudin也有一本關於functional analysis的書,那本書在數學上可能更為深刻,但是不易於上手,所講內容和learning的切合度不如此書。
 
在分析這個方向,還有一個重要的學科是測度理論(Measure theory),但是我看過的書裡面目前還沒有感覺有特別值得介紹的。
 
拓撲
 (Topology)
:在我讀過的基本拓撲書各有特色,但是綜合而言,我最推崇: 
Topology (2nd Ed.) by James Munkres 
這本書是Munkres教授長期執教MIT拓撲課的心血所凝。對於一般拓撲學(General topology)有全面介紹,
而對於代數拓撲(Algebraic topology)也有適度的探討。此書不需要特別的數學知識就可以開始學習,由淺入深,從最基本的集合論概念(很多書不屑講這個)到Nagata-Smirnov Theorem和Tychonoff theorem
等較深的定理(很多書避開了這個)都覆蓋了。講述方式思想性很強,對於很多定理,除了給出證明過程和引導你思考其背後的原理脈絡,很多令人讚歎的亮點——我常讀得忘卻飢餓,不願釋手。很多習題很有
水平。
 
流形理論
 (Manifold theory)
:對於拓撲和分析有一定把握時,方可開始學習流形理論,否則所學只能流於浮淺。我所使用的書是
Introduction to Smooth Manifolds. by John M. Lee  雖然書名有這個單詞,但是實際上此書涉入很深,除了講授了基本的manifold, tangent space, bundle, sub-manifold等,還探討了諸如綱理論(Category theory),德拉姆上同調(De Rham cohomology)和積分流形等一些比較高階的專題。對於李群和李代數
也有相當多的討論。行文通俗而又不失嚴謹,不過對某些記號方式需要熟悉一下。
 
雖然李群論是建基於平滑流形的概念之上,不過,也可能從矩陣出發直接學習李群和李代數——這種方法對於急需使用李群論解決問題的朋友可能更加實用。而且,對於一個問題從不同角度看待也利於加深理解。下面一本書就是這個方向的典範:
Lie Groups, Lie Algebras, and Representations: An Elementary Introduction. by Brian C. Hall  此書從開始即從矩陣切入,從代數而非幾何角度引入矩陣李群的概念。並通過定義運算的方式建立exponential mapping,並就此引入李代數。這種方式比起傳統的通過“左不變向量場(Left-invariant vector field)“的方式定義李代數更容易為人所接受,也更容易揭示李代數的意義。最後,也有專門的論述把這種新的定義方式和傳統方式聯絡起來。
 


除了以下推薦的書以外,出版在Foundations and Trends in Machine Learning上面的survey文章都值得一看。
 
入門:
 
Pattern Recognition And Machine Learning
Christopher M. Bishop 

Machine Learning : A Probabilistic Perspective
Kevin P. Murphy 

The Elements of Statistical Learning : Data Mining, Inference, and Prediction 
Trevor Hastie, Robert Tibshirani, Jerome Friedman

Information Theory, Inference and Learning Algorithms
David J. C. MacKay 

All of Statistics : A Concise Course in Statistical Inference
Larry Wasserman

優化:
Convex Optimization 
Stephen Boyd, Lieven Vandenberghe

Numerical Optimization
Jorge Nocedal, Stephen Wright

Optimization for Machine Learning 
Suvrit Sra, Sebastian Nowozin, Stephen J. Wright

核方法:
Kernel Methods for Pattern Analysis 
John Shawe-Taylor, Nello Cristianini 

Learning with Kernels : Support Vector Machines, Regularization, Optimization, and Beyond
Bernhard Schlkopf, Alexander J. Smola

半監督:
Semi-Supervised Learning
Olivier Chapelle

高斯過程:
Gaussian Processes for Machine Learning (Adaptive Computation and Machine Learning) Carl Edward Rasmussen, Christopher K. I. Williams

概率圖模型:
Graphical Models, Exponential Families, and Variational Inference Martin J Wainwright, Michael I Jordan

Boosting: 
Boosting : Foundations and Algorithms
Schapire, Robert E.; Freund, Yoav

貝葉斯: 
Statistical Decision Theory and Bayesian Analysis
James O. Berger 

The Bayesian Choice : From Decision-Theoretic Foundations to Computational I mplementation 
Christian P. Robert 

Bayesian Nonparametrics 
Nils Lid Hjort, Chris Holmes, Peter Moller, Stephen G. Walker

Principles of Uncertainty
Joseph B. Kadane 

Decision Theory : Principles and Approaches
Giovanni Parmigiani, Lurdes Inoue

蒙特卡洛:
Monte Carlo Strategies in Scientific Computing
Jun S. Liu 

Monte Carlo Statistical Methods
Christian P.Robert, George Casella

資訊幾何:
Methods of Information Geometry
Shun-Ichi Amari, Hiroshi Nagaoka 

Algebraic Geometry and Statistical Learning Theory
Watanabe, Sumio 

Differential Geometry and Statistics
M.K. Murray, J.W. Rice

漸進收斂:
Asymptotic Statistics
A. W. van der Vaart 

Empirical Processes in M-estimation
Geer, Sara A. van de 

不推薦:
 
Statistical Learning Theory
Vladimir N. Vapnik 

Bayesian Data Analysis, Second Edition 
Andrew Gelman, John B. Carlin, Hal S. Stern, Donald B. Rubin

Probabilistic Graphical Models : Principles and Techniques
Daphne Koller, Nir Friedman
此書是史丹佛大學概率圖模型大牛Daphne Koller所寫, 主要涉及的是貝葉斯網路和馬爾可夫邏輯網路的learning 和inference.

Information Theory, Pattern Recognition and Neural Networks
David Mackay
劍橋大學著名資訊理論專家

相關文章