前言
从计算机被发明以来,使机器具有类似于人类的智能一直是计算机科学家努力的目标。从1956年人工智能的概念被提出以来,人工智能研究经历了多次起伏,从基于数理逻辑的规则推理到状态空间搜索推理、从专家系统到统计学习、从群智能算法到机器学习、从神经网络到支持向量机,不同的人工智能技术曾各领风骚。
近年来,采用深度神经网络的深度学习大放异彩、突飞猛进,如AlphaGo、自动驾驶、机器翻译、语音识别等深度学习的成功应用,不断吸引人们的眼球。作为机器学习的一个分支,深度学习使传统的神经网络技术重回舞台中央,奠定了其在众多人工智能技术中的领先地位。
深度学习没有复杂、深奥的理论,在原理上仍然是传统的神经网络,即用一些简单的神经元函数组合成一个复杂的函数,并采用简单的梯度下降法根据实际样本数据学习神经网络中的模型参数。当然,深度学习的成功,离不开计算机硬件性能的提升(特别是并行计算性能越来越强的图形处理器),以及越来越多的数据。
未来社会,人工智能将无处不在,许多工作将被人工智能代替已经成为共识。目前,世界主要国家纷纷制定了人工智能战略,中小学也开始开设人工智能课程。借助一些深度学习平台,如TensorFlow、PyTorch、Caffe,一个小学生就可以轻松使用深度学习库去实现人脸识别、语音识别等应用,所要做的工作就是直接调用这些平台的API、定义深度神经网络的模型结构、调试训练参数。这些平台使深度学习的实现变得非常容易,使深度学习走进了寻常百姓家,使人工智能不再神秘。从高校到企业,各行各业的人都在使用深度学习开展各种研究与应用。
写作背景
只有透彻地理解技术背后的原理,才能更好地应用技术。尽管网上有大量讲解深度学习原理的文章,以及一些深度学习课程,但图书仍然是系统学习深度学习的重要工具。
市场上的深度学习图书:有些是针对专家或专业研究人员的偏重数学理论的图书,这类图书和学术论文一样,普通读者难以理解,且大都缺少对原理的深度剖析及代码实现,读者即使理解了原理,也可能仍然不知道该如何去实现;有些是工具类图书,主要介绍如何使用各种深度学习库,对原理的讲解非常少,读者只能依葫芦画瓢;有些属于通俗读物,对每个技术领域都浅尝辄止;还有极少的图书,在介绍原理的同时提供代码实现过程,并尽可能避免数学公式的推导。
笔者认为:平台教程类图书具有较强的时效性,而图书的出版周期往往以年计算,读者拿到图书时,平台的接口可能已经发生了较大的变化,图书的价值也就降低了;原理类图书应该通俗易懂,尽量避免复杂、深奥的数学推导,但完全抛弃经典高等数学,对于具有高等数学知识的读者来说,并不是一个好的选择。市场上缺少的,正是在介绍原理的同时讨论如何从底层而不是调用深度学习库编写深度学习算法的通俗易懂的图书。
本书内容
为了照顾没有编程经验、数学基础不足的读者,本书对Python编程、微积分、概率等知识进行了通俗易懂的讲解。在此基础上,本书由浅入深,从最简单的回归模型过渡到神经网络模型,采用从问题到概念的方式剖析深度学习的基本概念和原理,既避免“长篇大论”,也不会“惜字如金”,同时用简单的示例展现模型和算法的核心原理。在剖析原理的基础上,本书进一步用Python的NumPy库从底层进行代码实现,使读者透彻理解相关原理和实现并得到启发。通过阅读本书,读者不需要借助任何深度学习库,就可以从0开始构建属于自己的深度学习库。
本书既适合没有任何深度学习基础的初学者阅读,也适合具有深度学习库使用经验、想了解其底层实现原理的从业人员参考。同时,本书特别适合作为大专院校的深度学习教材。
读者服务
本书的相关资源(包括算法代码、链接列表),读者可访问作者的GitHub站点https://hwdong-net.github.io获取。
董洪伟
2021年3月