推荐序二

近十余年,计算机领域中令人瞩目的亮点就是以深度学习为代表的一系列突破。无论是人脸检测还是图像识别,抑或文本翻译或无人驾驶,这些在过去几十年里让计算机科学家苦苦思索却不能解的种种难题,在深度学习的帮助下,竟被一一攻克,这不能不说是人类科技史上一颗耀眼的明星。

AI技术的突飞猛进,却使传统程序员产生不少困惑:过去常用的数据结构、排序搜索、链表数组等,现在变成了模型、卷积、权重和激活函数……无论是要开发AI应用,还是和算法研究人员共同工作,他们都存在同一个问题:如何学习AI技术?如何理解AI算法人员常用的名词和概念?更重要的是,如何把AI相关的代码和自己的软件开发经验联系起来?

现在市面上已经有很多深度学习和机器学习教程了,其中也不乏从实例入手、以代码实现为重点的书籍,但并没有一本书真正地从程序员的视角来看待深度学习技术。或者,我们也可以这么说,大部分相关书籍的重点是讲解深度学习理论,所用的实例是解释深度学习理论的实际应用。尽管有不少书籍在讲解理论和代码时详尽而深入,却没有涉及核心问题:要解决这个问题,为什么非用深度学习或机器学习不可?没有这些方法就不能做吗?用深度学习处理该问题的优势是什么?是十全十美,还是存在问题?

打开本书,我惊喜地发现它并非像市面上的其他书籍那样,直接把各种新鲜概念放到读者面前并强迫他们接受。它一开始就没有在机器学习概念上过多纠缠,而是先快速展示了简短的AI实现代码的结构和流程,然后带出一些常常让初学者疑惑的问题,针对这些问题再带出新的内容。我们可以看到,本书每一章都用到了类似的形式:阐述一个领域中的实际问题,提出不同的解决方法,简要探讨不同的方法,找到人们难以解决的问题,然后解释机器学习或深度学习处理这些问题的原理。读者了解到的并非单纯的机器学习理论,而是不同领域的具体技术挑战和相关算法的解决方案,从而理解机器学习的真正意义。

必须要说的是,作者在美国工作多年,养成了求真务实和独立思考的习惯,我们从书中能感受到他独特的风格,并有愉悦的阅读体验。本书在理论讲解方面也没有概念堆砌的枯燥无味,作者常常加入一些对技术的调侃和个人见解,以供读者思考。在代码解析阶段,作者着眼于整体框架与流程,把重点放在理论中的网络结构如何在实际代码中实现,而不会浪费篇幅在代码的语言细节上。

阅读本书,不但是对不同领域AI开发的学习,也是一次以资深程序员的视角去审视相关代码实现的体验。本书无论是对于应用开发程序员,还是对于算法研究人员,都相当有价值,非常值得阅读。

喻杰博士,华为智能车云首席技术官

2019年12月