机器学习和人工智能是如今的最热门的学习方向,但是大家都不知道该怎么入手。今天,通过这篇文章,我们来告诉大家机器学习的应该如何入门。
机器学习的本质是通过数学模型的搭建框架,并依靠机器本身不断的自行优化,最终得最优解。因此,我们的第一课最好以数学为基础,进行学习实践。
在整个学习过程中,你可以会遇到以下几种数学知识:
1.线性代数:矩阵/张量乘法、求逆,奇异值分解/特征值分解,行列式,范数等
2.统计与概率:概率分布,独立性与贝叶斯,最大似然(MLE)和最大后验估计(MAP)等
3.优化:线性优化,非线性优化(凸优化/非凸优化)以及其衍生的求解方法如梯度下降、牛顿法、基因算法和模拟退火等
4.微积分:偏微分,链式法则,矩阵求导等
5.信息论、数值理论等
而这些数学理论对初学者来讲,是一个巨大的门槛。因此,这里需要注意的点是:如果数学对你基本为劝退效果,那么就先放下这些东西,从机器学习十大算法本身去学习,在学习的过程去,去弥补自己的不足。毕竟数学知识只是认知算法的一种工具,而不是算法本身。
作为最有名,且最重要的机器学习十大算法,你虽然不说完全认知,但是,你必须要对里面的东西进行很深刻的了解。只有这样,才能让你对机器学习有一个系统的了解和认识。这里推荐周志华老师的《机器学习》一书,相当经典的一本。
在这个阶段学习过程中,你可以会遇到的十大算法:
(由于网上可以找到很多的数据,我这里只列举名称,后续有机会,在给大家挨个分析每一个算法)
1. 线性回归2. Logistic 回归3. 线性判别分析4. 分类和回归树5. 朴素贝叶斯6. K 最近邻算法7. 学习向量量化8. 支持向量机9. 袋装法和随机森林10. Boosting 和 AdaBoost
从机器学习算法本身来看,算法模型主要分为2个流派,一个是以随机森林为主的“vote派”,简单来说,就是将样本文件随机分块,然后分别投入算法中,以结果数量多的为最终结果。另一种流派为“反馈派”,得到一个结果后,不断的反馈至模型,模型通过不断的调整参数,最终输出最优解。
当然,在这个基础上,很多人很难去静下心来一一学习,在这里可以推荐一下重点关照的算法,树结构,支持向量机,随机森林和Boosting。
深度学习的本质是不断的反馈,然后深度学习模型通过反馈结果不断的调整参数,最终得到一个最优解。因此,这里特别强调的一个点是,深度学习本身就是一种黑盒算法,过分的学习理论其实并没有任何作用。你唯一能做的,就是学习市面上别人已经写好的框架,然后努力的调整自己的参数。而且由于深度学习需要很高性能的硬件设备,对于一般人来讲,其实并不是特别友好。
当然,这里并不是贬低深度学习算法,这里仅仅强调的一点是,深度学习的算法大部分是存在于调整参数的方法上,如果快速的调整参数,达到最优的结果,才是你最需要做的事情。
如果要做深度学习,Linux还是首选,因为其对很多学习模型支持比较好(主要是深度学习的Library)。但即使你使用的是Windows系统,也可以用虚拟机装Ubuntu来进行学习。小型的深度学习模型足够了,大型的深度学习我们很少在本地/个人计算机上运行。至于编程语言,首推Python,因为其良好的拓展支持性,主流的工具包都有Python版本。在特定情况下,选择R作为编程语言也是可以的。其他可能的语言还包括C++、Java和Matlab,但我个人不大推荐。不推荐的理由,主要是因为语言本身依赖的底层环境较多,对性能很难保证。
最后推荐点基础导向的资料吧:
《Programming Collective Intelligence》(《集体智慧编程》)
作者Toby Segaran也是《BeautifulData : The Stories Behind Elegant Data Solutions》(《数据之美:解密优雅数据解决方案背后的故事》)的作者。这本书最大的优势就是里面没有理论推导和复杂的数学公式,是很不错的入门书。
《机器学习》
这本书非常适合作为机器学习入门的书籍,因而周志华老师的《机器学习》也被大家亲切的叫做“西瓜书”。虽然只有几百页,但内容涵盖比较广泛。
《Python机器学习》
这本书出版于2015年并多次再版,作者是Sebastian Raschka。这本书去掉了大量的数学推导的部分,仅保留了机器学习的核心应用。本书涉及的内容很广泛,涉及了数据预处理(Data Preprocessing), 维度压缩和核函数(Dimension Reduction & Kernel),评估方法如交叉验证,集成学习,情感分析,聚类,甚至还包括了神经网络和Theano。
《Introduction to Machine Learning》
一本比较精简的机器学习数据,介绍了很多全面并且基础的机器学习理论,很基础。
《Machine Learning Theory: An Introductory Primer》
机器学习最基本的入门文章,适合零基础者
更多消息,可以微信搜索“计算机俱乐部”!