机器学习的最佳入门学习资源
这是一篇很难写的文章,因为我希望这篇文章能对学习者有所启发。我在空白页前坐下,并且问自己了一个很难的问题:什么样的库、课程、论文和书籍对于机器学习的初学者来说是最好的。
文章里到底写什么、不写什么,这个问题真的让我很烦恼。我必须把自己当做一个程序员和一个机器学习的初学者,站在这个角度去考虑最合适的资源。
我找出了每个类型中最适合的资源。如果你是一个真正的初学者,并且乐意于开始了解机器学习领域的相关知识,我希望,你可以在我的文章中找到有用的资 料。我的建议是,从中挑出一件来,一本书或者是一个库,反复阅读或者认真学习所有的相关教程。挑出一个并且坚持学习,直到你完全掌握,再重新选择一个,重 复这个学习过程。现在就让我们开始吧!
Programming Libraries 编程库资源
我是一个“学习要敢于冒险和尝试”观念的倡导者。这是我学习编程的方式,我相信很多人也是这样学习程序设计的。先了解你的能力极限,然后去拓展你的 能力。如果你了解如何编程,可以将编程经验很快借鉴到深入学习机器学习上。在你实现一个实际的产品系统之前,你必须遵循一些规则、学习相关数学知识。
找到一个库并且仔细阅读相关文档,根据教程,开始尝试实现一些东西。下面列出的是开源的机器学习库中最好的几种。我认为,并不是他们中的每一种都适合用在你的系统中,但是他们是你学习、探索和实验的好材料。
你可以从一个由你熟悉的语言编写的库开始学习,然后再去学习其他功能强大的库。如果你是一个优秀的程序员,你会知道怎样从一种语言,简单合理地迁移到另一种语言。语言的逻辑都是相同的,只是语法和API稍有不同。
- R Project for Statistical Computing: 这是一个开发环境,采用一种近似于Lisp的脚本语言。在这个库中,所有你想要的与统计相关的功能都通过R语言提供,包括一些复杂的图标。CRAN(你可 以认为是机器学弟的第三方包)中的机器学习目录下的代码,是由统计技术方法和其他相关领域中的领军人物编写的。如果你想做实验,或是快速拓展知识,R语言 都是必须学习的。但它可能不是你学习的第一站。
- WEKA:这是一个数据挖掘工作平台,为用户提供数一系列据挖掘全过程的API、命令行和图形化用户接口。你可以准备数据、可视化、建立分类、进行回归分析、建立聚类模型,同时可以通过第三方插件执行其他算法。除了WEKA之外, Mahout是Hadoop中为机器学习提供的一个很好的JAVA框架,你可以自行学习。如果你是机器学习和大数据学习的新手,那么坚持学习WEKA,并且全心全意地学习一个库。
- Scikit Learn:这是用Python编写的,基于NumPy和SciPy的机器学习库。如果你是一个Python或者Ruby语言程序员,这是适合你用的。这个库很用户接口友好,功能强大,并且配有详细的文档说明。如果你想试试别的库,你可以选择Orange。
- Octave:如果你很熟悉MatLab,或者你是寻求改变的NumPy程序员,你可以考虑 Octave。这是一个数值计算环境,与MatLab像是,借助Octave你可以很方便地解决线性和非线性问题,比如机器学习算法底层涉及的问题。如果你有工程背景,那么你可以由此入手。
- BigML:可能你并不想进行编程工作。你完全可以不通过代码,来使用 WEKA那样的工具。你通过使用BigMLS的服务来进行更加深入的工作。BigML通过Web页面,提供了机器学习的接口,因此你可以通过浏览器来建立模型。
挑选出一个平台,并且在你实际学习机器学习的时候使用它。不要纸上谈兵,要去实践!
Video Courses视频课程
很多人都是通过视频资源开始接触机器学习的。我在YouTube和VideoLectures上看了很多于机器学习相关的视频资源。这样做的问题 是,你可能只是观看视频而并不实际去做。我的建议是,你在观看视频的时候,应该多记笔记,及时后来你会抛弃你的笔记。同时,我建议你将学到的东西付诸实 践。
坦白讲,我没有看见特别合适初学者的视频资源。视频资源都需要你掌握一定的线性代数、概率论等知识。Andrew Ng在斯坦福的讲解可能是最适合初学者的,下面是我推荐的一些视频资源。
- Stanford Machine Learning斯坦福的机器学习课程:可以在Coursera上观看,这门课是由 Andrew Ng讲解的。只要注册,你可以随时观看所有的课程视频,从Stanford CS229 course下载讲义和笔记。这门课包括了家庭作业和小测试,课程主要讲解了线性代数的知识,使用Octave库。
- Caltech Learning from Data加 利福尼亚理工学院的数据分析课程:你可以在edX上学习这门课程,课程是由Yaser Abu-Mostafa讲解的。所有的课程视频和资料都在加利福尼亚理工学院的网站上。与斯坦福的课程类似,你可以根据自己的情况安排学习进度,完成家庭 作业和小论文。它与斯坦福的课程主题相似,关注更多的细节和数学知识。对于初学者来说,家庭作业可能稍有难度。
- Machine Learning Category on VideoLectures.Net网 站中的机器学习目录:这是个很容易令人眼花缭乱的资源库。你可以找出比较感兴趣的资源,并且深入学习。不要纠结于不适合你的视频,或者对于感兴趣的内容你 可以做笔记。我自己会一直重复深入学习一些问题,同时发现新的话题进行学习。此外,在这个网站上你可以发现是这个领域的大师是什么样的。
- “Getting In Shape For The Sport Of Data Science” – 由Jeremy Howard讲授:这是与机器学习竞赛者的对话,他们是一些实践中的R语言用户。这是非常珍贵的资源,因为很少有人会讨论研究一个问题的完整过程和究竟怎样做。我曾经幻想过在网上找到一个TV秀,记录机器学习竞赛的全过程。这就是我开始学习机器学习的经历!
Overview Papers综述论文
如果你并不习惯阅读科研论文,你会发现论文的语言非常晦涩难懂。一篇论文就像是一本教科书的片段,但是论文会介绍一个实验或者是领域中其他的前沿知识。然而,如果你准备从阅读论文开始学习机器学习的话,你还是可以找到一些很有意思的文章的。
- The Discipline of Machine Learning机器学习中的规则:这是由Tom Mitchell编著的白皮书,其中定义了机器学习的规则。Mitchell在说服CMU总裁为一个百年内都存在的问题建立一个独立的机器学习部门时,也用到了这本书中的观点。
- A Few Useful Things to Know about Machine Learning:这是一篇很好的论文,因为它以详细的算法为基础,又提出了一些很重要的问题,比如:选择特征的一般化,模型简化等。
我只是列出了两篇重要的论文,因为阅读论文会让你陷入困境。
Beginner Machine Learning Books给机器学习初学者的书
关于机器学习的书有很多,但是几乎没有为初学者量身定做的。什么样的人才是初学者呢?最有可能的情况是,你从另外一个完全不同的领域比如:计算机科学、程序设计或者是统计学,来到机器学习领域。那么,大部分的书籍要求你有一定的线性代数和概率论的基础。
但是,还有一些书通过讲解最少的算法来鼓励程序员学习机器学习,书中会介绍一些可以使用工具、编程函数库来让程序员尝试。其中最有代表性的书是: 《Programming Collective Intelligence》,《Machine Learning for Hackers》,《Hackersand Data Mining: Practical Machine Learning Tools and Techniques》(Python版, R版, 以及Java版)。如果感到迷惑的话,你可以选择其中一本开始学习。
- Programming Collective Intelligence: Building Smart Web 2.0 Applications:这本书是为程序员写的。书中简略介绍相关理论,重点以程序为例,介绍web中的实际问题和解决办法。你可以买来这本书,阅读,并且做一些练习。
- Machine Learning for Hackers (中文版:机器学习:实用案例解析 ):我建议你在阅读了《Programming Collective Intelligence》一书之后,再阅读这本书。这本书中也提供了很多实践练习,但是涉及更多的数据分析,并且使用R语言。我个人很喜欢这本书!
- Machine Learning: An Algorithmic Perspective:这本书是《Programming Collective Intelligence》的高级版本。它们目的相同(让程序员开始了解机器学习),但是这本书包括一些数学知识,参考样例和phython程序片段。如果你有兴趣的话,我建议你在看完《Programming Collective Intelligence》之后来阅读这本书。
- 数据挖掘:实用机器学习工具与技术(英文版·第3版) : 我自己是从这本书开始了解机器学习的,那时是2000年这本书还是第一版。我那时是Java程序员,这本书和WEKA库为我的学习和实践提供了一个很好的 环境。我通过这样的平台和一些插件,实现我的算法,并且真正开始实践机器学习和数据挖掘的过程。我强烈推荐这本书,和这样的学习过程。
- Machine Learning(中文版:计算机科学丛书:机器学习 ):这是一本很老的书,包括了一些规则和很多参考资料。这是一本教科书,为每个算法提供了相关讲解。
有一些人认为那些经典的机器学习教科书很了不起。 我也赞同,那些书的确非常好。但是,我认为,对于初学者来说,这些书可能并不合适。
Further Reading 继续阅读
在写这篇文章时,我认真思考了相关问题,同时也参考了其他人推荐的资料,以确保我没有遗漏任何重要参考资料。为了确保文章的完整性,下面也列出了一些网上流行的,可以供初学者使用的材料。.
- A List of Data Science and Machine Learning Resources:这是一份仔细整理的列表。你可以花一些时间,点击链接,仔细阅读作者的建议。值得一读!
- What are some good resources for learning about machine learning Why:这个问题的第一个答案令人吃惊。每次我阅读这篇文章的时候,都会做好笔记,并且插入新的书签。答案中对我最有启发的部分是机器学习课程列表,以及相应的课程笔记和问答网站。
- Overwhelmed by Machine Learning: is there an ML101 book:这是StackOverflow上的问题。并且提供了一系列机器学习推荐书籍。Jeff Moser提供的第一个答案是很有用的,其中有课程视频和讲座的链接。
你是不是以及读过或者用过上面的一些资源了呢?你怎么看这个问题?
牛人推荐机器学习网站
- 北京大学视觉与听觉信息处理实验室
- 北京邮电大学模式识别与智能系统学科
- 复旦大学智能信息处理开放实验室
- IEEE Computer Society北京映象站点
- 计算机科学论坛
- 机器人足球赛
- 模式识别国家重点实验室
- 南京航空航天大学模式识别与神经计算实验室 - PARNEC
- 南京大学机器学习与数据挖掘研究所 - LAMDA
- 南京大学人工智能实验室
- 南京大学软件新技术国家重点实验室
- 人工生命之园
- 数据挖掘研究院
- 微软亚洲研究院
- 中国科技大学人工智能中心
- 中科院计算所
- 中科院计算所生物信息学实验室
- 中科院软件所
- 中科院自动化所
- 中科院自动化所人工智能实验室
- ACL Special Interest Group on Natural Language Learning (SIGNLL)
- ACM
- ACM Digital Library
- ACM SIGART
- ACM SIGIR
- ACM SIGKDD
- ACM SIGMOD
- Adaptive Computation Group at University of New Mexico
- AI at Johns Hopkins
- AI Bibliographies
- AI Topics: A dynamic online library of introductory information about artificial intelligence
- Ant Colony Optimization
- ARIES Laboratory: Advanced Research in Intelligent Educational Systems
- Artificial Intelligence Research in Environmental Sciences (AIRIES)
- Austrian Research Institute for AI (OFAI)
- Back Issues of Neuron Digest
- BibFinder: a computer science bibliography search engine integrating many other engines
- BioAPI Consortium
- Biological and Computational Learning Center at MIT
- Biometrics Consortium
- Boosting site
- Brain-Style Information Systems Research Group at RIKEN
Brain Science Institute, Japan - British Computer Society Specialist Group on Expert Systems
- Canadian Society for Computational Studies of Intelligence (CSCSI)
- CI Collection of BibTex Databases
- CITE, the first-stop source for computational intelligence information and services on the web
- Classification Society of North America
- CMU Advanced Multimedia Processing Group
- CMU Web->KB Project
- Cognitive and Neural Systems Department of Boston University
- Cognitive Sciences Eprint Archive (CogPrints)
- COLT: Computational Learning Theory
- Computational Neural Engineering Laboratory at the University of Florida
- Computational Neurobiology Lab at California, USA
- Computer Science Department of National University of Singapore
- Data Mining Server Online held by Rudjer
Boskovic Institute - Database Group at Simon Frazer University, Canada
- DBLP: Computer Science Bibliography
- Digital Biology: about creating artificial life
- Distributed AI Unit at Queen Mary & Westfield College, University of London
- Distributed Artificial Intelligence at HUJI
- DSI Neural Networks group at the Université di Firenze, Italy
- EA-related literature at the EvALife
research group at DAIMI, University of Aarhus, Denmark - Electronic Research Group at Aberdeen University
- ElsevierComputerScience
- European Coordinating Committee for Artificial Intelligence (ECCAI)
- European Network of Excellence in ML (MLnet)
- European Neural Network Society (ENNS)
- Evolutionary Computing Group at University
of the West of England - Evolutionary Multi-Objective Optimization Repository
- Explanation-Based Learning at University of Illinoise at Urbana-Champaign
- Face Detection Homepage
- Face Recognition Vendor Test
- Face Recognition Homepage
- Face Recognition Research Community
- Fingerpass
- ftp of Jude Shavlik's Machine Learning Group (University of Wisconsin-Madison)
- GA-List Searchable Database
- Genetic Algorithms Digest Archive
- Genetic Programming Bibliography
- Gesture Recognition Homepage
- HCI Bibliography Project contain extended bibliographic information (abstract, key words, table of contents, section
headings) for most publications Human-Computer Interaction dating back to 1980 and selected publications before 1980 - IBM Research
- IEEE
- IEEE Computer Society
- IEEE Neural Networks Society
- IEEE Xplore
- Illinois Genetic Algorithms Laboratory (IlliGAL)
- ILP Network of Excellence
- Inductive Learning at University of Illinoise at Urbana-Champaign
- Intelligent Agents Repository
- Intellimedia Project at North
Carolina State University - Interactive Artificial Intelligence Resources
- International Association of Pattern Recognition
- International Biometric Industry Association
- International Joint Conference on Artificial Intelligence (IJCAI)
- International Machine Learning Society (IMLS)
- International Neural Network Society (INNS)
- Internet Softbot Research at University of Washington
- Japanese Neural Network Society (JNNS)
- Java Agents for Meta-Learning Group (JAM) at Computer Science Department, Columbia University, for Fraud and Intrusion
Detection Using Meta-Learning Agents - Kernel Machines
- Knowledge Discovery Mine
- Laboratory for Natural and Simulated Cognition at McGill University, Canada
- Learning Laboratory at Carnegie Mellon University
- Learning Robots Laboratory at Carnegie Mellon University
- Laboratoire d'Informatique et d'Intelligence Artificielle (IIA-ENSAIS)
- Machine Learning Group of Sydney University, Australia
- Mammographic Image Analysis Society
- MDL Research on the Web
- Mirek's Cellebration: 1D and 2D Cellular Automata explorer
- MIT Artificial Intelligence Laboratory
- MIT Media Laboratory
- MIT Media Laboratory Vision and Modeling Group
- MLNET: a European network of excellence in Machine Learning, Case-based Reasoning and Knowledge Acquisition
- MLnet Machine Learning Archive at GMD includes papers, software, and data sets
- MIRALab at University of Geneva: leading research on virtual human simulation
- Neural Adaptive Control Technology (NACT)
- Neural Computing Research Group at Aston University, UK
- Neural Information Processing Group at Technical University of Berlin
- NIPS
- NIPS Online
- Neural Network Benchmarks, Technical
Reports,and Source Code maintained by Scott Fahlman at CMU; source code includes Quickprop,
Cascade-Correlation, Aspirin/Migraines - Neural Networks FAQ by Lutz
Prechelt - Neural Networks FAQ by Warren
S. Sarle - Neural Networks: Freeware and Shareware Tools
- Neural Network Group at Department of Medical Physics and Biophysics, University of Nijmegen
- Neural Network Group at Université Catholique de Louvain
- Neural Network Group at Eindhoven University of Technology
- Neural Network Hyperplane Animator program that allows easy visualization of training data and weights in
a back-propagation neural network - Neural Networks Research at TUT/ELE
- Neural Networks Research Centre at Helsinki University of Technology, Finland
- Neural Network Speech Group at Carnegie Mellon University
- Neural Text Classification with Neural Networks
- Nonlinearity and Complexity Homepage
- OFAI and IMKAI library information system, provided by the Department of Medical Cybernetics and Artificial Intelligence
at the University of Vienna (IMKAI) and the Austrian Research Institute for Artificial Intelligence (OFAI). It contains over 36,000 items (books, research papers, conference papers, journal articles) from many subareas of AI - OntoWeb: Ontology-based information exchange for knowledge management and electronic commerce
- Portal on Neural Network Forecasting
- PRAG: Pattern Recognition and Application Group at University of Cagliari
- Quest Project at IBM Almaden Research Center
- Recursive-Partitioning.com: an academic website focusing on classification and regression trees. Maintained by Tjen-Sien
Lim - Reinforcement Learning at Carnegie Mellon University
- ResearchIndex: NECI Scientific Literature Digital Library, indexing over 200,000 computer science articles
- ReVision: Reviewing Vision in the Web!
- RIKEN: The Institute of Physical and Chemical Research, Japan
- Salford Systems
- SANS Studies of Artificial Neural Systems, at the Royal Institute of Technology, Sweden
- Santa-Fe Institute
- Scirus: a search engine locating scientific information on the Internet
- Second Moment: The News and Business Resource for Applied Analytics
- SEL-HPC Article Archive has sections for neural networks, distributed AI, theorem proving, and a variety
of other computer science topics - SOAR Project at University of Southern California
- Society for AI and Statistics
- SVM of ANU Canberra
- SVM of Bell Labs
- SVM of GMD-First Berlin
- SVM of MIT
- SVM of Royal Holloway College
- SVM of University of Southampton
- SVM-workshop at NIPS97
- TechOnLine: TechOnLine University offers free online courses and lectures
- UCI Machine Learning Group
- UMASS Distributed Artificial Intelligence Laboratory
- UTCS Neural Networks Research Group of Artificial
Intelligence Lab, Computer Science Department, University
of Texas at Austin - Vivisimo Document Clustering: a powerful search engine which returns clustered results
- Worcester Polytechnic Institute Artificial Intelligence Research Group (AIRG)
- Xerion neural network simulator developed and used by the connectionist group at the University of Toronto
- Yale's CTAN Advanced Technology Center for Theoretical and Applied Neuroscience
- ZooLand: Artificial Life Resource