写这篇教程的初衷是很多朋友都想了解如何入门/转行机器学习,搭上人工智能这列二十一世纪的快车。文章的宗旨是:1. 指出一些自学的误区 2. 不过多的推荐资料 3. 提供客观可行的学习表 4. 给出进阶学习的建议。这篇文章的目标读者是计划零基础自学的朋友,对数学/统计/编程基础要求不高,比如:在读学生、非计算机行业的读者、已经工作但想将机器学习/数据分析和自己的本职工作相结合的朋友。
自学机器学习的误区和陷阱:
1.1. 不要试图掌握所有的相关数学知识再开始学习。在很多相关的回答中,我都一再强调不要试图补足数学知识再开始学习机器学习。一般来说,大部分机器学习课程/书籍都要求:线性代数、统计与概率、优化、微积分等。一般人如果想要把这些知识都补全再开始机器学习往往需要很长时间,容易半途而废。建议在机器学习的过程中哪里不会补哪里,这样更有目的性且耗时更低。
1.2. 不要把深度学习作为入门第一课。虽然很多人都是冲着深度学习来的,但把深度学习作为机器学习第一课不是个好主意。原因如下:深度学习的黑箱性更加明显,很容易学得囫囵吞枣;深度学习的理论/模型架构/技巧还在一直变化当中,并未尘埃落定;深度学习实验对硬件要求高,不太适合自学或者使用个人电脑进行学习。
1.3. 不要收集过多的资料。机器学习的资料很多,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书的人我也常常能够看到。机器学习的发展和变化速度很快。在入门期间,建议“小而精”的选择资料,选择近期出版的且口碑良好的书籍。
机器学习的一些前期准备:
2.1. 硬件选择:是否可以用自己的笔记本电脑进行机器学习。答案是肯定的,大部分市面上的数据集都可以放到你的内存中运行。在入门阶段,我们很少会用到非常大的数据集,完全可以使用个人笔记本电脑进行运算。
2.2. 软件选择:如果要做深度学习,Linux还是首选,因为其对很多学习模型支持比较好。至于编程语言,首推Python,因为其良好的拓展支持性,主流的工具包都有Python版本。
2.3. 语言能力:学好英语,至少打下阅读和听力的基础。虽然人工智能领域中国现在已经做得很不错,但主流的书籍、期刊和会议,资料都是英文的。
机器学习课程表:
3.1. 第一阶段:基础入门(3-6个月)。入门的第一步是学习一些经典课程并配套经典书籍,吴恩达的机器学习课程(Machine Learning | Coursera)是很多人的启蒙课程,难度适中且完全免费。
3.1.1. Python机器学习:这本书去掉了大量的数学推导的部分,仅保留了机器学习的核心应用。
3.1.2. Introduction to Statistical Learning with R:这本书是我推荐书单第一名,电子版是免费的。
3.1.3. 周志华《机器学习》:虽然内容涵盖比较广泛,但建议把西瓜书作为参考书而不是主力阅读书。
3.2. 第二阶段:进阶学习(3-6个月)。在这个阶段,你已经对机器学习有了基本的了解,最重要的就是进行实践!
3.2.1. Kaggle挑战赛:Kaggle上有很多很好的数据集和挑战赛,你可以尝试这些挑战取得名次。
3.2.2. Sklearn文档学习:学习Sklearn的文档也是一种实践过程。
3.3. 第三阶段(可选):深度学习(3-6个月)。吴恩达深度学习课程和《Deep Learning》这本书是推荐的学习材料。
3.4. 第四阶段:深入研究。这个阶段,最重要的就是不要贪多嚼不烂。
实践经验:
4.1. 研究经历:如果你还是学生,尝试尽早接触科研,进实验室。
4.2. 企业实习:尽早实习,了解工业界的主流模型。
4.3. 在本职工作中使用机器学习:试着把机器学习应用到你自己的工作当中。
写在最后:虽然人们曾说二十一是生物的世纪,但现在还是人工智能的世纪。欢迎大家来试试机器学习,体验数据分析的魅力。