如何用3个月零基础入门机器学习?
身边很多人,都想搭上搭上人工智能这列二十一世纪的快车。
可是这驾车,是想搭,就能搭的吗?
有很多人都在询问,如何能够学好人工智能
今天,我就来分享一下,我的观点
文章的宗旨是:1. 指出一些自学的误区 2. 不过多的推荐资料 3. 提供客观可行的学习表 4. 给出进阶学习的建议。这篇文章的目标读者是计划零基础自学的朋友,对数学/统计基础要求不高,比如:
在读的学生朋友
非计算机行业的读者
已经工作但想将机器学习/数据分析和自己的本职工作相结合的朋友
因此,这篇文章对于已经身处机器学习领域可能帮助不大。同时再次声明这只是我的个人看法,请大家有选择的性阅读,探索适合自己的学习方法。
1. 自学机器学习的误区和陷阱
不要试图掌握所有的相关数学知识再开始学习
在很多相关的回答中,我都一再强调不要试图补足数学知识再开始学习机器学习。一般来说,大部分机器学习课程/书籍都要求:
1)线性代数:矩阵/张量乘法、求逆,奇异值分解/特征值分解,行列式,范数等
2)统计与概率:概率分布,独立性与贝叶斯,最大似然(MLE)和最大后验估计(MAP)
3)优化:线性优化,非线性优化(凸优化/非凸优化)以及其衍生的求解方法如梯度下降、牛顿法、基因算法和模拟退火等
4)微积分:偏微分,链式法则,矩阵求导等
5)信息论、数值理论等
一般人如果想要把这些知识都补全再开始机器学习往往需要很长时间,容易半途而废。而且这些知识是工具不是目的,我们的目标又不是成为运筹学大师。建议在机器学习的过程中哪里不会补哪里,这样更有目的性且耗时更低。
不要把深度学习作为入门的第一门课
虽然很多人都是冲着深度学习来的,但把深度学习作为机器学习第一课不是个好主意。原因如下:
1)深度学习的黑箱性更加明显,很容易学得囫囵吞枣
2)深度学习的理论/模型架构/技巧还在一直变化当中,并未尘埃落定
3)深度学习实验对硬件要求高,不太适合自学或者使用个人电脑进行学习
不要收集过多的资料 & 分辨资料的时效性
机器学习的资料很多,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书的人我也常常能够看到。
机器学习的发展和变化速度很快。在入门期间,建议“小而精”的选择资料,选择近期出版的且口碑良好的书籍。我不止一次的提到这个例子:
在很多深度学习的教科书中,尤其是10年以前的教科书中都还依然把Sigmoid当作默认的激活函数。但事实上,整流函数(ReLu)以及其拓展变形函数,如Leaky ReLu早就成为了主流的深度学习激活函数。但因为知识的滞后性,很多课程/书籍甚至都没有介绍ReLu的章节。
2. 机器学习的一些前期准备
1)硬件选择
另一个大家常问的问题是:是否可以用自己的笔记本电脑进行机器学习。答案是肯定的,大部分市面上的数据集都可以放到你的内存中运行。在入门阶段,我们很少会用到非常大的数据集,一般最大也就是MNIST,完全可以使用个人笔记本电脑进行运行。
请不要打着学习的名义重新购买机器...
2)软件选择
如果要做深度学习,Linux还是首选,因为其对很多学习模型支持比较好(主要是深度学习的Library)。但即使你使用的是Windows系统,也可以用虚拟机装Ubuntu来进行学习。小型的深度学习模型足够了,大型的深度学习我们很少在本地/个人计算机上运行。
至于编程语言,首推Python,因为其良好的拓展支持性,主流的工具包都有Python版本。在特定情况下,选择R作为编程语言也是可以的。其他可能的语言还包括C++、Java和Matlab,但我个人不大推荐。
此处也想额外提一句,因为编程属于机器学习基本要求之一,所以推荐大家可以自学一些基础编程的知识(如Python),在文中不再赘述。
3)语言能力
学好英语,至少打下阅读和听力的基础。虽然人工智能领域中国现在已经做得很不错,但主流的书籍、期刊和会议,资料都是英文的。我们可以接受翻译版,但最好的方法还是自己有能力直接阅读。即使你将来不做机器学习,英文阅读能力还是会有很大的帮助。
学习是一件长时间的事情,不要着急,人工智能这趟列车还要开很久,现在开始学习,肯定也是来得及的。
公众号:maibanzhang