机器学习攻略

http://toutiao.com/i6260093599644385794/?tt_from=copy&utm_campaign=client_share&app=news_article&utm_source=copy&iid=3547952134&utm_medium=toutiao_ios


AlphaGo 这么火,你也想学机器学习了吗?这儿有攻略!

功成教育 2016-03-09 22:46

现在入坑,也许下一个创造历史的就是你!

AlphaGo 这么火,你也想学机器学习了吗?这儿有攻略!

图片来自123rf.com.cn 正版图片库

接触这个领域的时间并不长,到现在也称不上入门,但是也有些经历,也许说出来可能给相同阶段的童鞋们一些借鉴。

你为什么要学习人工智能?

这是一篇谈学习线路的文章,为什么我要先谈学习的动机?学习,或者说工作和职业,如果希望深入钻研并做出一些成果,需要投入大量的精力。没有这样的动机,Hinton、Lecun等几位大神不可能在神经网络几次陷低谷的时候仍然在这个领域深耕并推动这个领域的发展。

我在接触AI之前兴趣非常驳杂(现在也并没有好多少),在人文社科和自然科学领域都有一点接触,于是很长时间都在各个领域之间跳来跳去。遇到AI之后,感觉到这门学科的思维范式以及跨领域性可以把之前对计算机,心理学,经济学,哲学的非常多的思考贯通起来,而且这门学科中的很多内容都是如此好玩,因此才确定入坑。

人工智能的学习路径

我的学习路径是这样的:

  1. 《用Python 进行自然语言处理》(东南大学出版社)

  2. cs181.1伯克利人工智能课程(edX)

  3. 斯坦福机器学习课程(Coursera)

  4. cs229 斯坦福机器学习讲义

  5. 一个文本分类的project

  6. 《统计学习方法》(李航,清华大学出版社)

  7. Pattern Recognition And Machine Learning(PRML,

  8. cs224d 斯坦福自然语言处理课(YouTube 视频)

这其中也读了不少论文,看了不少的博客和技术文章,跟了不少的小项目,但是都比较零散。

1-《用Python 进行自然语言处理》

AlphaGo 这么火,你也想学机器学习了吗?这儿有攻略!

当时读这本书,主要作用是打下了Python编程的基础,我是从这本书开始接触Python的。关于机器学习的语言问题,现在看来Java、Python、Scala、R、C++ 应该是之后主要的几门语言,其中Java 和C++ 偏向工程化应用,Scala主要是Spark这个工具带起来的,R纯研究目的。而Python则跨研究和工程两大类,可用的包最多,语法简单易上手,算是刚开始入坑的不二之选。另外这本书中顺带也讲了自然语言处理的一些基本方法,课后题中有很多的非常不错的小题目,大家可以参照一看。

2-CS188伯克利人工智能课程,edX

地址:http://mooc.guokr.com/course/362/Artificial-Intelligence/

AlphaGo 这么火,你也想学机器学习了吗?这儿有攻略!

重点推荐一下这门课。这门课能给出整体的框架,包括AI都有哪些主要问题、主要的学科范式是什么、如何对一个问题进行建模。我当时学习的时候,edX平台只有前半部分,现在已经是完全版的archive。(即可以观看视频,但习题、证书等功能已经关闭。)

这门课也是我在跟过的公开课中体验最好的一次,当然时间的投入也比较长,因为它的作业相对难一些。这门课最好的地方在于它几乎从头到尾都是在一个一个大的游戏项目的框架下进行的,跟着课程一步步走,能够较快地进入到一个大型项目的协同开发的路子上,这种经验非常可贵。相比之下,cs229的课程作用使用的大多是Matlab代码,几个文件解决一个理论问题,从实践性到深入程度都没法与这门课都相提并论。

AlphaGo 这么火,你也想学机器学习了吗?这儿有攻略!

上图就是这门课强化学习的一个作业,基于强化学习做的pacman小游戏,其中pacman的行为完全是通过强化学习在随机经验中学习出来的。图不太清楚,大家凑合着看吧。

3-吴恩达机器学习课程与CS229讲义

地址:

http://mooc.guokr.com/course/16/Machine-Learning/

http://cs229.stanford.edu/

这两个可以放在一起说,因为都是吴恩达(Andrew Ng)的东西。他的Coursera课程应该是机器学习入门最多的推荐了,实在是深入浅出,把一个东西讲得非常透彻。曾经听过吴恩达在演讲中说,他初任教职的时候讲课全校排名倒数,不得不感叹人要用心做一件事也是谁也挡不往。

Ng 课程的内容大家说得够多,顺便推一下CS229。这门课比Coursera 课程要难了很多,更偏理论推导,而且会讲到线性指数族、强化学习、EM算法等等更多更深的内容。由于和Cousera 课程的内容有一部分重合之处,和Coursera课程参考着看更好。而且它有概率、线代、高斯等等补充材料,也方便快速地过一下基础。

如果这门课能够好好地刷完的话,机器学习就算是入门了。整个领域的方法论就算完全掌握了,掌握得好的话独立完成一些项目没问题,去各大公司面试什么的应该也能过关。

4-PRML & 统计学习方法

AlphaGo 这么火,你也想学机器学习了吗?这儿有攻略!

PRML,Springer 出版社

AlphaGo 这么火,你也想学机器学习了吗?这儿有攻略!

《统计学习方法》,清华大学出版社

这两本书也放在一起说了。这两本书我还没有读完,但是啃PRML应该是每个有志于机器学习的童鞋必须要做的一件事。此书确实非常经典,但是也非常难啃,具体应该如何啃,方法放到后面说。

对于统计学习方法而言,《统计学习方法》这本书写作的方法更像我们之前读过的教科书,非常的简洁,但是李航老师对这些问题的讲解仍然清楚。虽然是薄薄的一本小册子,料却十足。最近写knn、优化的时候仍然是从这本书的kd树中得到的思路。

AlphaGo 这么火,你也想学机器学习了吗?这儿有攻略!

5-CS224D

地址:http://cs224d.stanford.edu/

这个已经是自己的研究方向了,比较个人化,只捎带提一句就好。

深度学习近两年非常火。机器学习和深度学习的关系到底应该怎么摆?是否有了深度学习就可以不用机器学习了?肯定有人有这样的疑问。其实我对这个问题并没有多少发言权,毕竟入行时间不长,但是从个人体会出发,深度学习从长远来看必然会发挥越来越大的作用,但是即使它解决了表示的问题,在实际工作中,大量的任务还是需要使用机器学习的方法来进行探索。聚类、简单的分类、特征工程,无论是在哪个任务中出现的频次都非常高,而这些活如果都使用深度网络来实现,其代价和成本实在是太大。而且,深度学习的模型本来是比较复杂的,数据量如果不大到一定程度,使用深度学习并无必要,而且容易过拟合。

关于学习的一点心得

从接触这个领域到现在,算算已经过了两年半的时间。除去中间被各种事情打断的时间,自己的学习和工作应该已经有近两年,但是对于这个领域仍然不敢说是入门,主要因为每一个点的背后都是有着数学支撑的。到底怎样算是对机器学习入了门呢?拿到一个问题,能够找到合适的算法包解决它?能够架设一个分布式平台,实现大数据规模的机器学习?能够优化模型,在数学上优化新算法?上述每一个问题都需要长期扎实的学习和钻研。

一个最大的想法是,一定要在代码、工具、数学、论文之间找到一个平衡。这个领域吸引人的东西很多,像Vanpik这样的数学家和Jeff Dean这样的工程之神都在这个领域中,更有吴恩达、Hinton这样的人物。这些大神们的背景也正像《黑客与画家》一书中所谈的那样:计算机是个框,什么都可以往里装。工程师、数学家、黑客、计算机科学家看起来好像都是同一个title,在相似的title之下,找准自己的定位的长期的发展方向是非常必要的。

但是同时,如果要实现什么东西,无论是优秀的工程实践也好,牛叉的科研成果也罢,工程能力和学术能力都是需要的,无非是这两者之间的谁多谁少的平衡问题。

所以,在学习时,从一个算法的数学证明,到复杂度计算、算法的实现,再到工具平台化的抽象,这几个部分也需要一个平衡和侧重,建议在学习的时候也能够从几个不同的点来学习。

举例来说,对于knn,掌握knn的数学证明、sciki-learn中的包使用、kd树的优化方法,能够分析其算法复杂度(这个例子不太好……)。这样间杂着学习,理论和实践相互替,才能够更地对这个算法有比较透彻的了解,同时也需要对数据集的数据特性做一些探索。

写在最后

我入行不久,造诣也并不算深,厚着脸皮写下这篇文章,无非是想也许正好有处在相似阶段的童鞋确实想入坑,那么这篇文章也许能够有一定借鉴作用。

借用吴恩达童鞋的话,AI 是一门回报非常大的学科。无论是对机器的认识、对人自身的认识、对自然问题的认识,甚至人的存在本质、自由意志,都可以在门学科中得到更深入的洞见和收获。

更何况,它还是一门新生的学科。五十年历史过去,却连学科(人工智能)的定义都没有明确,这个天地也是大为可为,期待与大家一起努力。

AI 说

不要忘记,当你吃饭睡觉打游戏的时候,AI 正在一刻不停地学习。

点击“阅读原文”,学习吴恩达课程《机器学习》(果壳评分:9.7分)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值