- 深度学习程序设计实战
- 方林 陈海波编著
- 1221字
- 2025-02-25 14:02:53
序
在学习人工智能深度学习之前,很多学生可能会觉得这只不过是学习人工智能程序设计或者软件开发的一门课程罢了。但实际上,在学习这门课程之前还需要掌握很多预备知识,例如微积分、概率和统计、线性代数、面向对象程序设计、数据结构、软件工程等。这是因为,深度学习绝不是简单的程序代码的堆积,而是一种思考问题方法的改变。
最常见、最容易的思考问题的方法是基于因果关系的,有因才有果,明确了原因才能预测出结果,知道了事物的本质才能理解事物的表象。这种思考问题的方法当然没有问题,但是过于简单。因为很多时候,人们只知道事物发生的结果,并不知道其原因;能够看到表象,却很难深刻理解事物背后的本质。
深度学习的基础是梯度下降法和反向传播原理。两者的本质就是在已知函数y=f(x)的情况下,根据导数计算出一个特定的y值(例如0)所对应的x的解。如果说因果推理是根据x求y,那么梯度下降法就是根据y求x。所以后者是前者的逆向过程,是透过现象看本质,根据结果预测原因的方法之一。
管中窥豹,基于这一点,就能看出理论对深度学习的指导意义。那种以为学习程序设计就是学习语法,学习深度学习就是学习Python语法的想法是错误的。
本书就是方林博士、陈海波教授对理论联系实际精神的一种实践。本书有很多有趣的故事和实例,例如五猴分桃问题、二十四点问题、自动求解偏导问题等,都被用来讲解程序设计背后深刻的数学原理和计算机科学理论,由浅入深,娓娓道来,引人入胜。作者重视的是从理论联系实际的角度提高读者分析和解决问题的能力,而不是简单地记住几个编程技巧。
有些教程的编写方法是先讲理论,然后讲如何在实践中应用理论,理论是中心,编程实践是围绕着理论的,有什么样的理论,就找什么样的实践来验证这个理论。而本书则反其道而行之,先举实例,然后说明其中要用到的数学原理和计算机理论知识,是以“用”为核心的,用到什么理论才讲什么理论,不相关的理论不讲或者在其他实例中讲解。这种方法有助于读者建立理论之间的相互联系,加深对理论的理解。这也是本书涉及众多计算机科学和数学领域的原因。
学以致用是本书的特点,这恰恰是现在很多大学生所欠缺的。他们缺的不是理论知识,而是应用理论知识的能力,特别是综合运用理论知识的能力。不少毕业生走向社会以后就几乎再也用不到他们在大学里学到的理论知识了,这是很可惜的。而本书就试图以众多实例为核心,帮助他们理解如何在深度学习编程实践中应用众多数学原理和计算机科学理论,例如高等数学、线性代数、数据结构、面向对象方法、概率论与数理统计、神经元网络、对抗式学习等。
本书适合两类读者:第一类是初学者,用来学习深度学习的基本原理、算法和方法,以便深刻理解深度学习背后的众多数学和计算机科学原理和思想方法;第二类是人工智能、计算机领域科研工作者和教育工作者,或者其他对深度学习科研感兴趣的人,用来研究程序设计、面向对象方法和深度学习模型。
希望本书的出版发行能帮助各位读者更好地学习深度学习。
中国科学院院士