作者:白马负金羁
来源:
http://www.zggsby.com/baimafujinji/article/details/55826409
016年3月,谷歌的AlphaGo对弈世界顶级围棋棋手韩国人李世石。最终,AlphaGo以五局四胜的战绩击败李世石,一时风光无限,同时也在网络上极大的激起了小伙伴们对人工智能(AI)的兴趣。岁末年初,一个名叫“Master”的神秘网络围棋手轰动了围棋界,自去年12月29日开始,它在几个知名围棋对战平台上轮番挑战中日韩围棋高手,并在1月3日晚间击败了中国顶级围棋手柯洁,取得了50胜0负的惊人战绩。人们纷纷猜测“Master”就是谷歌人工智能AlphaGo的升级版。谜底很快被揭晓,就在Master取得第59场连胜后,Master账号宣布自己就是AlphaGo。各种媒体对此番交战大肆报道,某些电视上的谈话节目甚至以“人工智能在未来会否抢去人类饭碗”之类的话题展开热烈讨论。
其实人机大战这也不是头一次了。早在二十年前,国际象棋特级大师,世界冠军卡斯帕罗夫就曾与IBM公司的超级电脑“深蓝”之间进行过终极对抗。在总共的六局比赛里,卡斯帕罗夫最终以五平一负的战绩宣告败北。尽管当时媒体也有报道,但远远没有引起像最近这一两年来AlphaGo这样的话题热度。原因何在?天时也!IT界无论是小伙伴还是祖国的老花朵都意识到人工智能时代真的来了。去年在乌镇召开的世界互联网大会上,百度CEO李彦宏就表示:移动互联网时代已经结束,未来属于人工智能!
于是乎,众多小伙伴,无论是IT从业者,还是尚处在学校的青年学子,纷纷摩拳擦掌,跃跃欲试,希望至少不要被AI时代给落下。然而,要进入人工智能这个圈子,却要比从“Java程序员转成C++程序员”难太多了,很多人对此都表示望而却步或者望洋兴叹。很多人都是无头苍蝇,不得其法,好像功夫也没少下,但却还是只能在门外转悠。我希望下面的一些建议能让大家少走一些弯路或者尽快走上正路。(注意:我可没说是有捷径可走!毕竟有一些坎始终无法绕过去,这就如同一个无形的筛子摆在那一样,很多人会被其“过滤”掉。)
一、数学——万般无奈皆源此
最近读了一篇热文《放弃幻想,搞AI必须先过数学关》(你可以从参考链接【1】中浏览该文全文),文章基本已经把数学之于AI的重要性阐释的比较清楚,我只略截取一些核心内容(相信每个过来人都会有此共同心声):
“在 AI 学习的入门阶段,数学是主要的攻坚对象,任何胸有大志的 AI 学习者都不要幻想绕过数学。” 尽管 AI 工具化的可能性是有的,而且是必然,趋势很明显。所以很多时候AI工程师并不像程序开发人员那样强调编码的能力与经验,更多的时候AI工程师是在使用各种框架,调用各种现成的函数库、软件包等等。但是,“数学不过关的人在 AI 这个圈子里是无法参与交流的,或者说得直白一点,是被人瞧不起的,根本无法被接纳成为AI 圈子里的人。其次,数学不过关而只能调参数的人,实践当中并不好用。第三,即便是调参这件事情本身,懂不懂数学也是有很大差别的。”
说的很多小伙伴恐怕心都凉了一半,或者已经开始打退堂鼓了。不要紧,山人自有妙法。下面就给大家分享一下我的数学学习经验,主要是一些资源(书籍或者视频课程)。人工智能(机器学习或数据挖掘等)中最最重要的数学就是线性代数与概率论(还有其他,但这两者比重最大)。
1、线性代数
很多人会推荐MIT的线性代数公开课(确实不错),但是很多中国学生听英文课仍然有障碍,即使有字幕翻译,恐怕也会影响学习速度,所以我推荐台湾国立交通大学莊重特聘教授主讲的线性代数课程,本课程分上下两个学期:
我个人认为本课程的特色包括:
1)老师讲得非常非常细致,如果你循序渐进跟着学,绝对可以听得懂;
2)这门课程其实是从泛函的角度来讲解线性代数(同时兼顾了矩阵角度),会帮你建立一种更加高屋建瓴的线性代数观念;
3)课程与实际应用结合非常紧密,像最小二乘法、奇异值分解SVD等在机器学习非常重要的内容都有深入探讨。
同时,本课程所选用的教材也是你自学线性代数的一本上乘之选(网上可以找到本书的PDF版):
如果想自学,或者仅仅是温故以往所学的线性代数,那么下面这本从矩阵角度解释线性代数的书可能更适合中国人的阅读习惯,这本书里对于最小二乘法、SVD等内容亦有涉及。
目前这本书的中英文版国内都可以买到:
2、概率论
有一个非常非常简单的入门课——国立台湾大学叶丙成的概率课:
但是上面这个课属于扫盲课,如果你觉得深度还不够,那么我还是推荐你从下面这些书籍中找一本来作为参考,因为概率论方面的书特别特别多,我推荐几本各具特色的:
1)首先是由Sheldon M. Ross编写的《概率论基础教程(第9版)》,这是一本在世界范围内被广泛使用的教材,内容严谨而且全面。鉴于概率论是大学本科阶段的必修内容,如果你不是忘掉太多,其实并不用重头开始学,所以备这样一本书,偶尔翻查一下也是不错的选择。
2) 统计思维——程序员数学之概率统计;相对而言这本就不那么学术化,更侧重概念的通俗解读,而非严格的数学推导。因为概率和统计常常是纠缠不在一起的,所以这本书里面也涉及到了部分统计学的内容。
像概率里面的期望、方差、概率密度函数、边缘分布、贝叶斯定理、全概率公式、矩母函数、二项分布、高斯分布、贝塔分布等等在机器学习中都非常非常重要。最后这本算是概率学习里面比较深的一本(也非常经典),供有深入学习需求的人研读。
3)概率与计算——随机算法与概率分析,Michael M. & Eli Upfal 著