细节之处,神明降临。您请看。。。
历时两年,《人工智能基础——数学知识》和《人工智能入门——常用工具》两本书终于面世!!!
京东、当当、亚马逊各大网站均已上线。
以前从来没想过,我会写人工智能的书。如果我的大学同学知道了,他们的表情一定是这样的:
听过我课程的同学都知道,我在讲人工智能的时候,特别喜欢抽丝剥茧,从设计者最初的灵感动机,到数学形式的落地,从公式的推导到最终的代码实现、从SDK调用到工程实践,层层递进。这种一层一层拨开迷雾的感觉让我很爽,我的学生也很爽,大家一起爽才是真的爽。
但也有不爽的时候。每当同学让我推荐课外读物的时候,就尴尬了。
虽然我的电脑上有很多库存,但我没有完整的看过任何一本。我没有看过的书自然不敢推荐给学生看,第一怕误人子弟,第二怕暴露自己读书少的事实。
第三,最重要的,那些书并不适合初学者。比如李航的《统计机器学习》,比如经典的同济教材,这些书很牛,但是是给有基础的读者看的。对于小白入门来说,其实并不友好!包括我自己,看这些书的时候,都是这样的:
因为我以前有过写书的经验,再加上学生们的切实需求,所以就萌生了写一系列初学者能看得懂的人工智能图书的念头。写什么内容呢?
初学者学习一门新技术有三个阶段:第一阶段是,怎么使用;第二阶段是,原理是什么;第三阶段是,如何实现、为什么这样实现。学习人工智能也是如此,先用起来,再考虑原理,最后考虑为什么。
所以,我规划了这个系列,共两本书,《人工智能入门——常用工具》是针对第一个阶段,《人工智能基础——数学知识》针对第二阶段。(本来还有第三本算法,因为某些原因放弃了)。
当然,我还有一个很大的愿景,希望这两本书不仅有用,还要有料甚至有趣,读者看起来不会累觉不爱。如果能像吴军的《数学之美》一样,那就圆满了!
既然书的定位明确了,接下来就是考虑目标读者的痛点是什么?在这一点上,我是有绝对的发言权的!因为我的人工智能知识,全部来自自学,入门者的痛苦和需求我洞若观火。
二十多年前因为非常喜欢编程,我参加了成人教育。您知道,要想拿到一纸证书,需要考数学。我那会儿觉得,数学这东西,完全就是应试教育,完全没有操作系统、数据库、计算机网络这些课程实用有趣,所以不喜欢待在教室里听那些枯燥的公理和定理。
我是在雅虎做竞价广告(也叫计算广告学)期间接触了人工智能(当时还不叫人工智能,而是叫数据挖掘、机器学习,当时我所在的组也是数据组)。
本来我是个程序员,结果猛然发现,计算广告是个大坑,表面看起来是“写程序”,但剥去外表,本质上却是数学。
那个时候,还没有那么多的开源包可以调用,所有的算法都要自己去撸。同事的代码,虽然每一行都能看懂什么意思,但是放在一起就不知道在说什么了,结果就是一个标点符号都不敢动,更别提调参了!
从那会儿开始,我对人工智能的认知也才逐步客观和理性起来。也是从那时候开始,我才重新认识数学——这个最熟悉的陌生人。
那是十多年前的事了,当时的学习环境远没有现在方便,别说网课了,网络都不普及。所以,我唯一的方法就是自学。
您应该知道,人工智能编程不像其它编程,只需要有点逻辑思维再记住语法就可以上手了,人工智能是和数学紧密联系在一起的。而对于当时没有数学基础的我来说,想吃下人工智能这碗饭,很有点像蚂蚁吃大象了,无处下口啊。
但我又不想调职调岗甚至换一份工作,怎么办呢,硬着头皮上了。
我是从聚类算法开始的,之所以选择它下口,因为它是当时我能看懂的少数算法之一。最简单的聚类算法如K-means不需要什么高深数学知识,对着伪代码撸一套自己的实现也很容易。
撸完代码后还不算完,还要看看实际效果,当时虽然还没有Scikit-learn这样成熟的三方包可以使用,但幸好有SPSS、Clementine(现在叫SPSS Modeler)、R语言这些老牌工具。每次做完一个练习,我都会对照效果,如果出入太大,就查资料,重新调整代码。就这样不断的密集练习,我大概花了1个月的时间,才把第一个入门算法搞定。
后来,我用相同的方法,搞定了决策树、线性回归、逻辑回归、隐马尔可夫模型(HMM)、最大熵模型......
回忆起来,那段经历挺苦逼的。有时候我很羡慕现在的新人,想学什么太简单了,上网随手一搜,大把的资料推送到你面前,免费的、收费的、深入的、浅出的、20天从入门到精通的、3个月从小白到专家的。新人的痛苦不再是无处学,而是去哪儿学,不是能不能学会,而是还能不能静下心。
如果您想静静了,欢迎光临,下期精彩继续。
原文引自艾特大圣公众号,有趣有料有故事,欢迎大家来串门儿!