自从答应简二毛博士将自己的机器学习历程和心得分享给大家至今,转眼间半年已经过去了,感谢简博士分享和开源精神的鼓舞,这也正是本系列关于机器学习介绍博客的动力来源。
之前有些网友,师弟们问我,学习机器学习怎么入手,从看什么书开始。这里说一下个人见解:
如果你只愿意看一本书,那么推荐Bishop的PRML,全名Pattern Recognition and Machine Learning. 这本书是机器学习的圣经之作,尤其对于贝叶斯方法,介绍非常完善。该书也是众多高校机器学习研究生课程的教科书,如Deep Learning的开山鼻祖Hilton在多伦多大学教授机器学习课程(CSC2515)时也选择了这本书。该书电子版在Bishop个人网页提供直接下载。不过提前说明一下,这本书如果看了半年,看完三遍才能理解透,也属于正常。第一遍看不懂很正常,所以需要持之以恒。
http://research.microsoft.com/en-us/um/people/cmbishop/prml/
第二本书就是ESL(The Elements of Statistical Learning)。中文翻译叫统计学习基础,其实这个翻译不够准确,Statistical Learning并非statistics,叫机器学习基础更加准确。该书数学推导,理论系统很完备,结合后面的exercise用R语言自己联系一下,对于理解机器学习的基本方法很有帮助,如:Logistic,Ridge regression等。这本书同样可以在作者网站上直接下载到电子版。
http://statweb.stanford.edu/~tibs/ElemStatLearn/
有了理论基础,再结合一些教授的课程进行学习,效果更好。目前很流行的斯坦福大学机器学习公开课,在网易公开课中甚至都有中文版字幕出来,是非常不错的入门教程。不过个人更喜欢Hilton的机器学习课程。因为你看了上述两本书之后,基础知识基本都OK了,再看Stanford公开课还是基础。而Hilton的课程更加贴近目前的学术研究热点,比如对于Neural network,Deep Belief Nets的介绍,他的课程中包括了最早期的RBM的实现http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html 。值得一看。他老人家的课程地址:http://www.cs.toronto.edu/~hinton/csc2515/lectures.html 特别推荐做一做其中的assignments:http://www.cs.toronto.edu/~hinton/csc2515/assignments.html
下面说一下数据集,孔子云“学而时习之”,光说不练是学习的大忌,练习就需要数据集,配合上述课程的数据集是mnist data,http://yann.lecun.com/exdb/mnist/ 这个链接中也可以看到众多大牛在该数据集上的突破。
本系列机器学习之路的内容主要参考来源于:PRML,ESL和Hilton CSC2515。
关于软件,是使用Matlab还是R。很难说哪个软件好,哪个不好,只有适不适合自己。R更适合做学术研究,有众多的包和data可以使用,方便快速地实现自己的算法原型。不管是在内置函数的数量还是质量上,尤其处理大量数据时R的确要强于Matlab。同时R还有CRAN,里面基本可以找到绝大多数我们需要的算法,介绍,教程等。
而Matlab强项在于矩阵运算,Matlab也有很多工具箱,里面的算法相对很成熟,Matlab的图形绘图性能也强于R。
二者的区别其实在于商业软件和自由软件的区别。Matlab庞大,成熟,美观,官方文档齐全,当然还有价格不菲。R免费,论坛强大,算法包更新快,紧贴研究的最前沿等等。当然二者可以相互转换,我记得Matlab有执行R语言程序的工具箱,同样R也有运行Matlab程序的包。
总结就是工程人员,更适合Matlab,学术研究还是用R更自由。详细的对比
http://www.math.umaine.edu/~hiebeler/comp/matlabR.pdf
谈到机器学习,一堆概念和方法很容易混淆,比如:VC dimension, least squares, maximum likelihood maximum conditional likelihood,maximum penalized (conditional) likelihood,back propagation,Recurrent networks,Newton and Quasi-Newton Methods,Conjugate Gradients,Constrained Optimization,Mixtures of Experts,Hierarchical mixtures of experts EM Algorithm,PCA, Factor Analysis , Independent Components Analysis,Deep Belief Nets,Restricted Boltzmann Machines,Markov Chain Monte Carlo,Gibbs Sampling,Kernel Methods,kernel density,Association Rules Apriori,Sparse Kernel Machines,Graphical Models
Approximate Inference 等等。
在分类这些方法之前,首先描述一下几个概念:
有了上述基本概念之后,我们就对一堆机器学习的概念机械归纳和分类:
本系列介绍系本人的学习体会,难免有不足和错误,还望广大网友指正。比如也有的地方将Boosting总结为基于树的分类模型,只是个人觉得Boosting的思想更像是Sampling,所以将其归纳在采样方法中。开篇介绍到此,之后有空本系列会陆续更新,力求简要介绍各种常见的学习方法和学习策略。也欢迎广大网友共同探讨。
本系列参考:
http://research.microsoft.com/en-us/um/people/cmbishop/prml/
http://statweb.stanford.edu/~tibs/ElemStatLearn/
http://www.cs.toronto.edu/~hinton/csc2515/lectures.html
本文转载自:https://software.intel.com/zh-cn/blogs/2014/07/28