前言

大学毕业后,我先后在加利福尼亚和中国大陆的Intel公司工作。最初,我打算工作两年之后回学校读研究生,但是幸福时光飞逝而过,转眼就过去了六年。那时,我意识到我必须回到校园。我不想上夜校或进行在线学习,我就想坐在大学校园里吸纳学校传授的所有知识。在大学里,最好的方面不是你研修的课程或从事的研究,而是一些外围活动:与人会面、参加研讨会、加入组织、旁听课程,以及学习未知的知识。

在2008年,我帮助筹备一个招聘会。我同一个大型金融机构的人交谈,他们希望我去应聘他们机构的一个对信用建模(判断某人是否会偿还贷款)的岗位。他们问我对随机分析了解多少,那时,我并不能确定“随机”一词的意思。他们提出的工作地点令我无法接受,所以我决定不再考虑了。但是,他们说的“随机”让我很感兴趣,于是我拿来课程目录,寻找含有“随机”字样的课程,我看到了“离散随机系统”。我没有注册就直接旁听了这门课,完成课后作业,参加考试,最终被授课教授发现。但是她很仁慈,让我继续学习,这让我非常感激。上这门课,是我第一次看到将概率应用到算法中。在这之前,我见过一些算法将平均值作为外部输入,但这次不同,方差和均值都是这些算法中的内部值。这门课主要讨论时间序列数据,其中每一段数据都是一个均匀隔样本。我还找到了名称中包含“机器学习”的另一门课程。该课程中的数据并不假设满足时间的均匀间隔分布,它包含更多的算法,但严谨性有所降低。再后来我意识到,在经济系、电子工程系和计算机科学系的课程中都会讲授类似的算法。

2009年初,我顺利毕业,并在硅谷谋得了一份软件咨询的工作。接下来的两年,我先后在涉及不同技术的八家公司工作,发现了最终构成这本书主题的两种趋势:第一,为了开发出竞争力强的应用,不能仅仅连接数据源,而需要做更多事情;第二,用人单位希望员工既懂理论也能编程。程序员的大部分工作可以类比于连接管道,所不同的是,程序员连接的是数据流,这也为人们带了巨大的财富。举一个例子,我们要开发一个在线出售商品的应用,其中主要部分是允许用户来发布商品并浏览其他人发布的商品。为此,我们需要建立一个Web表单,允许用户输入所售商品的信息,然后将该信息传到一个数据存储区。要让用户看到其他用户所售商品的信息,就要从数据存储区获取这些数据并适当地显示出来。我可以确信,人们会通过这种方式挣钱,但是如果让要应用更好,需要加入一些智能因素。这些智能因素包括自动删除不适当的发布信息、检测不正当交易、给出用户可能喜欢的商品以及预测网站的流量等。为了实现这些目标,我们需要应用机器学习方法。对于最终用户而言,他们并不了解幕后的“魔法”,他们关心的是应用能有效运行,这也是好产品的标志。

目录