视频课程
现在很流行通过观看视频来学习机器学习。我在YouTube和VideoLectures.Net上看了很多机器学习的视频,看视频的风险在于你很容易只是看而不会去实践。我建议在看视频的时候一定要做好笔记,即便之后你很快就会把笔记扔掉。同时建议你不管在学什么,一定要去动手尝试。
坦白来说,我看过的视频中,没有哪个视频是特别适合初学者的,我指真正的初学者。他们都是基于读者有最基本的线性代数和概率理论知识的假设。斯坦福大学Andrew Ng 的教程可能是最适合用于入门的了,另外,我推荐了一些一次性视频。
Stanford Machine Learning(斯坦福机器学习):通过Coursera可以获取到,Andrew Ng主讲。除了招生,你可以在任何时间看到所有的课程,并且从Stanford CS229 course(斯坦福CS229课程)上下载到所有的讲义和课堂笔记。课程包括家庭作业,测试。课程集中在线性代数上,使用Octave环境。
Caltech Learning from Data:可以在edX访问到,Yaser Abu-Mostafa主讲。所有的课程和材料在CalTech网站上都可以获取到。和斯坦福课程一样,你可以按你自己的节奏来完成家庭作业和任务。它覆盖了和斯坦福类似的课程,然后在细节上有一些深入,并且用了更多的数学方面的知识。家庭作业对初学者来说可能太难了。
Machine Learning Category on VideoLectures.Net(VideoLectures.Net上的机器学习分类):初学者很容易沉溺于海量的内容中。你可以找寻一些看起来比较有趣的视频,然后尝试看看。如果不是你现阶段能看懂的,就先放放。如果你看着合适,就记笔记。我发现我自己总是不断的找寻自己感兴趣的标签,然后最终选择了完全不同的标签。当然,看看该领域专家真正是什么样的也挺好的。
“Getting In Shape For The Sport Of Data Science” – Talk by Jeremy Howard:和一个本土R用户团队关于机器学习实践应用的对话,这个团队在机器学习竞赛中获取了很好的成绩。这个视频很有用,因为很少有人去讲将机器学习应用到一个项目中真正是什么样的,及怎么去做这个项目。我幻想着能创建一个网络真人TV秀,这样可以能直接看到选手机器学习竞赛中的表现。我是多么的向往啊。
论文概述
如果你不习惯读研究性论文,你将会发现他们的语言非常枯燥。论文像是教科书的片段,但是论文描述了实验,或者是该领域其他前沿研究。不过,如果你正要开始学习机器学,这里有一些论文可能会引起你的兴趣。
The Discipline of Machine Learning(机器学习的原则):机器学习原则定义的白皮书,作者Tom Mitchell. 当时有一场辩论,Mitchell最终说服CMU主席成立单独的机器学习机构,以保证机器学习将在今后的100年里作为一个学科存在。(也可参考短片Tom Mitchell访谈)。
A Few Useful Things to Know about Machine Learning(一些你必须知道的关于机器学习的事):这是一篇好论文,因为它不拘泥于特定的算法,而是偏向于比如特征选取概述和模型简化这些重要的问题上。走对方向并且从一开始就想清楚,都是很好的事情。
上面我只罗列了两篇重要的论文,因为读论文会真的让你陷入困境。
机器学习初学者书籍
市面上有很多机器学习的书,但很少有针对初学者编写的。什么才是真正的初学者?可能是从其他领域转入机器学习的,也可能是从计算机科学,软件编程或者统计学转入的。即使这样,大部分的书籍都会认为你至少已经有了线性代数和概率论的知识背景。
然而,这里还是有一些书鼓励有兴趣的程序员从一个最小的算法开始学习,指定工具和库,这样编程人员就可以运行程序并得出结果。最著名的有Programming Collective Intelligence(中文版:《集体智慧编程》)、Machine Learning for Hackers(中文版《机器学习:实用案例解析》)和Data Mining: Practical Machine Learning Tools and Techniques(中文版《数据挖掘:实用机器学习技术》),以上三本分别基于Python,R和Java三种语言。如果有不懂的地方,可以参见这三本书。
[](http://machinelearningmastery.com /wp-content/uploads/2013/11/photo.jpg)
Programming Collective Intelligence(中文版:《集体智慧编程》):创建精巧的web 2.0应用:这本书是专门为编程人员写的,轻理论,重实战,有大量的代码示例,实际上遇到的web问题及对应的解决方案。买这本书的读者,建议边读边做练习!
Machine Learning for Hackers(中文版:《机器学习:使用案例解析》):我建议在读完Programming Collective Intelligence以后再来读这本书。该书同样提供了大量的实用性很强的案例。但是它有更多数据分析的东西并且使用R语言。我真心喜欢这本书。
Machine Learning: An Algorithmic Perspective:这本书像是Programming Collective Intelligence的升级版。这两本书的目标相同(帮助程序员入门),但是这本书包含了数学和参考文献,同时也有用Python写的示例和代码片段。我建议读者先看Programming Collective Intelligence,如果看完以后还有兴趣,再来看这本书。
Data Mining: Practical Machine Learning Tools and Techniques, Third Edition(中文版:《数据挖掘:实用机器学习技术》):实际上我是从这本书开始学起的,2000年的第一版。当时我还是个java程序员,由于WEKA库提供了很好的开发环境,我利用这本书结合WEKA库进行尝试,用自己的算法做了插件并作了大量的机器学习应用,同时延伸到数据挖掘部分。因此我强力推荐这本书和这种学习方法。
Machine Learning(中文版:《机器学习》):这本书比较老,包含了公式和很多的参考文献。虽然是本教科书,但是每个算法的实用性依然非常强。
很多人能列举出很多优秀的机器学习教科书,我也可以。这些书的确很棒,只是个人觉得对初学者来说不太好入门而已。
扩展阅读
这篇文章经过我仔细推敲,为了确保自己没有漏掉任何一点重要的东西,我同时也看了其他人列出的资源。为了使内容更全面,这里再列出一些网上其他优秀的机器学习入门资源列表。
A List of Data Science and Machine Learning Resources:很详细的资源列表,花点时间读读作者的建议,再看看其中的链接。很值得一看。
What are some good resources for learning about machine learning? Why?:这个问答的第一个答案很不错,每次读我都会做笔记并打上标签。这个答案里面最有价值的部分是机器学习课程的笔记列表及Q&A页面的相关文章列表。
Overwhelmed by Machine Learning: is there an ML101 book?:一个StackOverflow上的帖子,上面确实列出了很多推荐的机器学习书籍列表,第一个回帖的是Jeff Moser,罗列了很多课程视频和谈话。
你是否已经看过或者用过这些资源呢?你觉得怎么样?
我不知道我是否为有兴趣学习机器学习的程序员提供了真正有用的资源,有任何问题和建议,请留下宝贵留言!