机器学习经典书籍小结
博客第一篇文章[1]是转载的,也算是开始写博客不经意的表露了自己对机器学习的兴趣吧!那篇文章总结了机器学习的一些经典算法的论文与数学基础理论的一些书籍,对于开始学习机器学习的话恐怕太过深入,正好最近在买书,看了很多经典书籍的总结与评论,我再拾人牙慧,稍稍总结一下吧。
先说一下我看过的和正在看的一些书吧!
《数学之美》;作者吴军大家都很熟悉。这本书主要的作用是引起了我对机器学习和自然语言处理的兴趣。里面以极为通俗的语言讲述了数学在这两个领域的应用。
《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》(《机器学习》);作者TomMitchell[2]是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算法》已经很经典,学习的话不宜读太多的入门书籍,建议只看一些上述两本书没讲到的算法。
《机器学习及其应用2011》,周志华、杨强主编。来源于“机器学习及其应用研讨会”的文集。该研讨会由复旦大学智能信息处理实验室发起,目前已举办了十届,国内的大牛如李航、项亮、王海峰、刘铁岩、余凯等都曾在该会议上做过讲座。这本书讲了很多机器学习前沿的具体的应用,需要有基础的才能看懂。如果想了解机器学习研究趋势的可以浏览一下这本书。关注领域内的学术会议是发现研究趋势的方法嘛。
上面大多都是一些入门级的书籍,想要在这个领域深入下去,还需要深入的阅读一些经典书籍。看了很多推荐大牛推荐的书单,这里总结一下吧。
《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,其中第一作者是华裔。本书毫无疑问是数据挖掘方面的的经典之作,不过翻译版总是被喷,没办法,大部分翻译过来的书籍都被喷,想要不吃别人嚼过的东西,就好好学习英文吧。
一些引申链接:
http://blog.csdn.net/pongba/article/details/2915005
http://blog.csdn.net/caikehe/article/details/8496721
http://blog.chinaunix.net/uid-10314004-id-3594337.html
http://weibo.com/1657470871/zpZ87mhND?sudaref=www.zhizhihu.com
http://www.zhizhihu.com/html/y2012/4019.html
http://zinkov.com/posts/2012-10-04-ml-book-reviews/
几乎所有引申链接中都提到了上面我所提到的经典书籍。另外还有一些其他方面比如信息检索、人工智能还有数学基础方面的书籍。
有人推荐,学习机器学习的话可以先读《统计学习方法》和《统计学习基础》打底,这样就包含了大部分的算法,然后再深入研究某个算法。我觉得,我在上面列出的四本经典书籍都应该通读一遍。孔子云“学而不思则罔,思而不学则殆”,我认为,学习、思考、实践不可缺一,学习的同时要加强算法代码的实现和其他方面比如并行化、使用场景等的思考。
[1] http://blog.csdn.net/xinzhangyanxiang/article/details/7799997
[2] http://www.cs.cmu.edu/~tom/
[3] http://en.wikipedia.org/wiki/Anand_Rajaraman
[4] http://book.douban.com/subject/1511568/
[5] http://en.wikipedia.org/wiki/Richard_O._Duda
[6] http://en.wikipedia.org/wiki/Christopher_Bishop
[7] http://book.douban.com/subject/3578359/
[8] http://en.wikipedia.org/wiki/Jiawei_Han
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
人工智能、机器学习、模式识别、计算机视觉、数据挖掘、信息检索、自然语言处理等作为计算机科学重要的研究分支,不论是学术界还是工业界,有关这方面的研究都在如火如荼地进行着,学习这些方面的内容有一些经典书籍,现总结如下,方便自己和大家以后学习研究:
人工智能:
《Artificial Intelligence: A Modern Approach》,第三版,Russell著,权威、经典的人工智能教材,阐述了人工智能的核心内容,反映了人工智能最近10年来的新进展。
《ProgrammingCollective Intelligence》,Toby Segaran著,本书将带你进入机器学习和统计学的世界,对算法的描述简明清晰,很对代码都可以直接拿去实际应用。
数据挖掘:
《DataMining, Concepts and Techniques》,第三版,Han著,数据挖掘领域最具里程碑意义的经典著作。
《DataMining: Practical Machine Learning Tools and Techniques》,第二版,Witten著,介绍了机器学习的基本理论和实践方法,并提供了一个公开的数据挖掘工作平台Weka,算法部分介绍得很详细。
信息检索:
《An Introductionto Information Retrieval》,Manning著,这是一本介绍信息检索的入门书籍,书中对信息检索的基本概念和基本算法做了介绍,适合初学者。
《Search Engines Information Retrieval in Practice》,Croft著,这本书讲述了搜索引擎的构造方法,通过实际代码展示了搜索引擎的工作原理,对于学生和从事相关领域的工程师,本书都值得一看。
《Managing Gigabytes》,《Mining the Web -Discovering Knowledge from Hypertext Data》
《Information Theory:Inference and Learning Algorithms》。
模式识别和机器学习:
《Pattern Classification 》,第二版,Duda著,模式识别的奠基之作,但对SVM、Boosting几乎没提,有挂一漏万之嫌。
《Pattern Recognition and Machine Learning》,Bishop著,侧重概率模型,详细介绍了Bayesian方法、有向图、无向图理论等,体系完备。
《Kernel Methods for Pattern Analysis》,John Shawe-Taylor著,SVM等统计学的诸多工具里都用到了核方法,可以将将低维非线性空间映射到高维的线性空间中,但同时会引入高维数据的难题。
计算机视觉:
《Computer Vision: A Modern Approach》,第二版,Forsyth著,一本不错的计算机视觉教材,全书理论联系实际,并加入了计算机视觉领域的最新研究成果。
《Computer Vision: Algorithms and Applications》,Richard Szeliski的大作,《数字图像处理》课程老师推荐的一本书籍,这本书我还没有看完,书中对计算机视觉领域最新的一些算法进行了汇编,包括图像分割,特征检测和匹配,运动检测,图像缝合,3D重建,对象识别等图像处理的诸多方面,借助本书我们可以对最新主流图像处理算法有个全局把握。
线性代数:
《Linear Algebra and Its Applications》Fourth Edition, Gilbert Strang的著作,本书详细介绍了向量空间、线性变换、本征值和本征向量等线性代数的重要基本概念,把抽象的线性空间形象地表达出来,适合初学者。
《Introduction to Probability Models》第10版,Ross著,一本书能够发行到第十版,你说是不是很经典呢?
离散数学:
《Discrete Mathematics and Its Applications》,第六版,Rosen著,本书囊括了离散数学推导、组合分析、算法及其应用、计算理论等多方面的内容,适合初学者。
矩阵数学:
《Matrix Analysis》,Horn著,本书无疑是矩阵论领域的经典著作了,风行几十年了。
概率论与数理统计:
《All Of Statistics》,Wasserman著,一本数理统计的简介读本。
《Introductionto Mathematical Statistics》,第六版,Hogg著,本书介绍了概率统计的基本概念以及各种分布,以及ML,Bayesian方法等内容。
《Statistical Learning Theory》Vapnik的大作,统计学界的权威,本书将理论上升到了哲学层面,他的另一本书《The Nature ofStatistical Learning Theory》也是统计学习研究不可多得的好书,但是这两本书都比较深入,适合有一定基础的读者。
《统计学习方法》,李航著,国内很多大学都在用这本书,本书从具体问题入手,由浅入深,简明地介绍了统计学习的主要方法,适合初学者而又想对统计学习理论有一个全局理解的学生。
《The Elements of Statistical Learning-Data Mining, Inference, and Prediction》,第二版,Trevor Hastie著,机器学习方面非常优秀的一本书,较PC和PRML,此书更加深入,对工程人员的价值也许更大一点。
《AnIntroduction to Probabilistic Graphical Models》,Jordan著,本书介绍了条件独立、分解、混合、条件混合等图模型中的基本概念,对隐变量(潜在变量)也做了详细介绍,相信大家在隐马尔科夫链和用Gaussian混合模型来实现EM算法时遇到过这个概念。
《Probabilistic Graphical Models-Principles and Techniques》,Koller著,一本很厚很全面的书,理论性很强,可以作为参考书使用。
最优化方法:
《Convex Optimization》,Boyd的经典书籍,被引用次数超过14000次,面向实际应用,并且有配套代码,是一本不可多得的好书,网址http://www.stanford.edu/~boyd/cvxbook/。
《Numerical Optimization》,第二版,Nocedal著,非常适合非数值专业的学生和工程师参考,算法流程清晰详细,原理清楚。
另外推荐几个博客和网站:
https://www.coursera.org/,这是一个由世界顶级大学联合创办的网上在线视频公开课网站,里面有stanford, MIT,CMU等计算机科学一流大学提供的免费教学视频,内容全面,计算机科学方面的资源较网易视频公开课网站(http://open.163.com/)内容要新、要全。
http://blog.csdn.net/pongba/article/details/2915005,本文的部分内容就是借鉴刘未鹏大神的博客而来的,也正是看过他的那个书单后,我才决定写一个总结归纳性的文章,这样可以方便大家学习,更可以勉励自己多看些有益的经典书籍。
http://blog.pluskid.org/,这是浙大学生张驰原的博客网站,现在他去了MIT,博客里面的很多资源都值得一看,博文的很大一部分都是关于机器学习的,加入了作者自己的理解,深入浅出。
http://blog.csdn.net/ffeng271/article/details/7164498,林达华推荐的基本数学书,转自MIT大牛博客。