零基础AI入门指南

迷茫

技术浪潮一波又一波,目前最汹涌的非AI莫属,无数小白迷离着双眼,准备学习一波,又不知从何入手。本人去年以身犯险,虽死磕未果,但初窥门径,分享一些心得,供纯小白入门使用。

首先AI对数学基础要求比较高,微积分、线性代数、概率与统计,缺一不可。其次需要有一定的编程能力,Python或R至少得会一种。然后AI本身还有一大堆的理论和算法需要学习。最后不要以为理论都会了就算入门了,实践才是最重要的。

数学、编程、理论、实践,每一个阶段都像一座大山,需要你去一座座的翻越,而在翻山的过程中有一个隐藏的BOSS始终伴你左右,随时准备把你击溃。这个BOSS就是小白入门AI时最最最需要克服的困难——挫败感。对于小白来说,AI学习是个漫长枯燥又极其困难的过程,尤其死磕算法的时候,稍有不慎,疲惫和挫败感就会把你击倒,一蹶不振,甚至放弃整个学习计划。

给自己创造一个好的学习环境是非常重要的。如果能有人教你,一步一步的给与指导,并且可以随时解答问题,那么不用往下看了,你已经身在天堂。如果能有人回答你的问题,哪怕不是随时,那都是天大的优势,请好好珍惜。如果能有个伴一起学习,有问题可以讨论,有经验可以交流,哪怕只是相互督促鼓励一下,那都是极好的。这些都可以有效的避免挫败感。

最怕的就是一个人孤军奋战,孤立无援,那挫败感来了,一打一个准。我就是这种情况,几次学习,几度放下。经过几次的反复,血和泪总结出的经验,切忌死磕。尤其是数学和算法这东西,不明白就是不明白,怎么想都没用,这种情况下死磕,大概率是自寻死路。比如,SVM我至少学了三次,每次都是因为数学卡住,死磕了几天便厌学放弃了。然后等那股挫败感慢慢消逝,再重新学习,之前的坎竟然神奇的一跃而过,从不明白到明白,只差中间一段时间的休息和一颗平和的心。

想想我们学习物理的时候,各种定理定律,大部分都不会证明,还不一样拿起来就用。在学习AI的过程中同样会遇到大量的证明,懂不懂随缘,懂了更好,不懂就直接记结论,不影响学习效果。我们的目的是入门,不是一上来就成为专家。

我个人总结的入门心法,快乐学习,不懂就问,切忌死磕,劳逸结合,遇到坎了便在心中默念,可保取得真经。

指南

下面奉上一份切实可行的学习计划,本人亲身验证,稳!

先导课程

微积分:麻省理工学院公开课:微积分重点
线性代数:麻省理工学院公开课:线性代数 & 习题课
概率:可汗学院公开课:概率
统计:可汗学院公开课:统计学

都是视频课程,特点就是没那么枯燥,但是学起来非常慢,所以有基础的话可以挑着看。有书的可以看看书,大学学过的话,捡起来会非常快。Gilbert Strang老先生讲的是真的好,遥想当年要是能遇见这样的老师,感叹中国教育任重而道远。可汗学院讲的非常通俗易懂,一个知识点一节课,短小精悍,适合零基础,缺点是有点墨迹,反正我是跳着看且没看完的。

不必纠结于我推荐的课程,找到适合自己的最重要,把相关的知识点学到了就可以了,这个阶段主要是熟悉,为后面的理论学习奠定基础。

基础课程

斯坦福大学Andrew Ng:斯坦福大学公开课:机器学习课程 & 课程大纲
台湾大学林轩田:机器学习基石 & 机器学习技法
周志华:机器学习(西瓜书)
李航:统计学习方法

Andrew Ng可以算的上机器学习界的网红了,无数人都是从他的课程入门的。个人感觉这个课程讲的不是很细致,因为人家默认你的先导课程已经掌握的很好了,所以很多东西要结合讲义仔细推敲。其实最大的问题还是在于英文授课,并且字幕捉急啊。我推荐的是网易的版本,存在这些问题,可以试试coursera的版本,应该会好些。

我主要学习的是Andrew Ng的课程,并且断断续续的学习了很多遍,最终也没有学完。直到我遇见了林轩田老师的课程,中文授课,简直一股清流。由于我遇见的时间已经比较晚了,大部分都学过了,所以只是简单的学了几课,感觉非常好,强烈推荐。如果再让我选一次的话,我会从这个课程入手,毕竟母语的优势是无法比拟的。

推荐的两本书都是必备的,建议作为参考书,遇到问题翻一翻,相互对照,可以加深理解。直接用西瓜书入门也可以,缺点就是比较枯燥,没有视频那么生动。还是那句话,选适合自己的方式。

编程课程

Dataquest就是锻炼动手能力的,建议买个基础课程,29刀/月。有编程基础的,每天晚上突击一个月就可以了,该会的都会学到,基础不好的可能要多花些时间。千万别不舍得花钱,我告诉你绝对值!

Dataquest所有的内容都是在线的基于浏览器的,如果想在自己电脑上练练手,推荐Anaconda,一站式,All in One,好用,省心!

实践课程

kaggle是一个神奇的网站,维基百科了解一下。对于小白来说,直接参赛难度有点大,但是由于Kernels都是公开的,模仿学习一下还是非常愉快的。这里推荐一个专供新手入门的比赛Titanic: Machine Learning from Disaster,其中得票最多的Exploring Survival on the Titanic。这个Kernel是用R语言写的,思路清晰内容详细,需要做什么、怎么做、为什么要这么做,一步一步带着你解决问题。我推荐用Python原封不动的重写一遍,完美巩固之前学习的知识,加深理解。

最后,其实这是一篇机器学习入门,那标题为什么要写AI入门呢?一方面,他们同宗同源,机器学习入门了,AI也就入门了。另一方面,机器学习这么土,写AI才会有人看嘛,木哈哈哈哈……