首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器学习书目以及线上教程推荐

当下在技术领域最火的莫过于人工智能行业了,全球科技巨头都在这个领域上争夺属于自己的一席之地。在全球趋势大利好的情况下,加上国家政策大力度的扶持,越来越多的科技人员投身到人工智能的怀抱中。在这个行业中,根据发展方向又可以为很多不同的细分领域,前几年很火的大数据、数据挖掘在本质上也是属于这一类,近几年随着理论的不断更新和工具的不停迭代,又有一些非常有前景的领域不断出现在人们的视线中,比如计算机视觉Computer Vision,自然语言处理Natual Language Processing,无人驾驶Autonomous car等等。人工智能是建立在机器学习Machine Learning理论基础之上的,因此想要入门人工智能,首先要打好扎实的机器学习基础。但是由于机器学习是一门理论和实践结合非常紧密的学科,因此其学习曲线比较陡,不仅数学要好,也需要很好的编程基础。

数学方面主要是线性代数、概率统计和微积分。

线性代数:在机器学习算法的处理中,由于样本数据非常多,因此几乎所有的计算过程都是由矩阵来完成,而且在一些聚合算法中,也需要有一些线性代数的理论来帮助推演。因此线性代数在机器学习中的地位是不言而喻的;

概率统计:很多机器学习的算法是基于概率统计学的基础之上的,比如朴素贝叶斯、逻辑分类、决策树等,而且在算法的优化选择上也需要统计学作为基础,比如P-value、R-score等。因此要入门机器学习,概率统计学的知识也是不可缺少的;

微积分:机器学习中的很多算法也是基于微积分来推导的,比如梯度下降、神经网络的反向传播等,如果想要更深入的理解算法背后的数学理论,微积分的基础也很重要。

好在以上所提到的理论部分,很多细节不需要我们重新编码实现,目前已经有很多非常成熟的库帮助完成了这项工作,不需要我们重新造轮子。在机器学习的编程语言中,当仁不让的应属Python。Python作为解释类的胶水语言,虽然在速度上和C、C++这种编译型语言是不能相比的,但是由于其简洁性的语法、数据运算的方便以及超多的第三方库软件,使得Python成为机器学习的第一梯队编程语言。在用Python关于机器学习的第三方库中,最重要的就是Numpy、Pandas、Matplotlib和Scikit了。Numpy是一个矩阵计算库,它让大数据的计算变得简单方便,编码效率得以大幅提高;Pandas是建立在Numpy基础之上,不仅继承了Numpy优秀的矩阵计算特性,而且在此基础之上扩展了DataFrame和Series数据类型,让数据处理变得更加方便;Matplotlib是一个图形库,可以将各种数据的关系用图形的形式非常直观的展现出来,是评估算法的不二之选;Scikit是目前使用最广泛的机器学习算法库,里面提供了各种主流算法的接口函数,对于每种算法的细节部分我们无需自己实现,只需要调Scikit的接口函数就可以了,省去了很多编码工作。当然,如果想要对机器学习算法的理解更加透彻,建议还是用Numpy和Pandas重新自己编写一遍,虽然效率上可能不会有成熟的第三方库高,但是这样可以大幅度加深自己对理论的理解,以及编码功力的提高。

本人从事机器学习也有很长一段时间了,一路走来深知里面的艰辛。翻了不少书,看了不少视频,总算是稍微有了一点经验。下面是就我的经验给大家推荐一些书目和在线课程,有了这些资源,相信你会少走很多弯路。

书目

理论类:

线性代数:《线性代数及其应用》(Linear Algebra and Its Applications)

概率统计:国外的有《概率论基础教程》(A First Course in Probability),《深入浅出统计学》(Head First Statistics);国内的有陈希孺院士所著的《概率论与数理统计》(这本书个人认为极其优秀,是少见的国内数学教程大师级作品);

微积分:《托马斯微积分》(Thomas' Calculus),《微积分学教程》

算法类:

《统计学习入门》(An Introduction to Statistical Learning);《统计学习精要》(The Elements of Statistical Learning)。这两本书是非常优秀的算法类书籍,前者是入门性质的,后者对数学要求非常高;

国内的优秀书籍有《统计学习基础》,西瓜书《机器学习》

实践类:

Python语言:关于Python的书籍非常多,本人推荐的是《Learning Python》,虽然这是本一千多页的大部头,作者为了将一些内容讲解清楚也可能比较啰嗦,但是看完之后你的Python功底会得到全面提升;当然也有一些其他的优秀书籍,比如《Programming in Python》,《Python Cookbook》等;

数据分析:为了更好的使用Numpy、Pandas和Matplotlib等这些在机器学习中用的非常多的第三方库,重点推荐的是《Python for Data Analysis》这本书,里面详细讲解了关于这些库的使用方法;

Scikit:Scikit是使用最多的机器学习算法库,为了更好的理解和掌握各种函数接口的用法,以及使用机器学习解决现实问题的详细过程,推荐的是《Mastering Machine Learning with scikit-learn》,这本书关于理论部分讲的不是很深,但是对如何使用Scikit进行机器学习可以说的面面俱到;

自己实现算法:如果想要更好的理解机器学习各种算法,以及提高Python编程能力,最好是自己造一遍轮子,重点推荐的是《Machine Learning in Action》,同样这本书对于理论也只是大致讲解,但是对如何使用Numpy和Pandas实现各种算法写的非常详细。书中代码的注释比较少,因此读起来可能会比较头疼,但是如果坚持下去一定会有很大收获。

线上课程

目前有非常多极其优秀的线上课程供大家学习使用,很多都是世界名校免费提供的,教学质量绝对一流,即使没有考上好的大学,也没关系,在家里也可以听到和世界名校学生同样的课程。

机器学习类:

Coursera上Andrew Ng的机器学习课程:这门课绝对是入门机器学习的不二之选,有非常多的人都是看NG大神这门课而入门机器学习的;

斯坦福大学的CS229课程:这门课同样也是由NG大神所教授,但是里面的理论深度比Coursera提高了一个档次,对每个算法都有详尽的推导过程,因此看这门课数学基础要好;

神经网络:Coursera上Geoffrey Hinton教授的神经网络课程,评价非常高,但是同样理论层次比较深,需要有很好的数学基础;

计算机视觉:斯坦福的CS231n课程,这门课由计算机视觉领域的华人权威李飞飞教授所讲,质量也是非常之高;

数学理论类:

线性代数:麻省理工大学教授Gilbert Strang的线上课程,已经有些年头了,但是经得住岁月的考验;

概率统计:首先推荐Udacity上的统计学入门,这门课由Udacity的创始人Sebastian Thrun亲自所教,可以在各种实践问题中入门概率统计,并且课程中安排有Python编程环节。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180508A20OQN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券