APP下载

人工智能专业数值分析课程教学研究与探讨

2019-10-23陈爱斌张钊源

计算机教育 2019年10期
关键词:数值人工智能算法

陈爱斌,张钊源

(中南林业科技大学 计算机与信息工程学院,湖南 长沙 410004)

1 背 景

数值分析(numerical analysis)是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象,为计算数学的主体部分。计算数学会把这门课扩充为数值代数、数值逼近、常微分方程数值解和偏微分方程数值解等多门更加深入的课程,但对于非数学类理工科学生,数值分析仅单设一门课,内容主要包括插值法、曲线拟合、数值积分、数值微分、解线性方程组的直接方法、解线性方程组的迭代法、非线性方程求根、常微分方程的数值解法等。

随着电子计算机的迅速发展、普及以及新型数值软件的不断开发,特别是人工智能应用的不断扩展,数值分析对自然科学和工程、技术科学的影响越来越大。在国民经济建设中,许多重大项目如水坝、飞机、船舶、桥梁建筑的建设、油田勘探、气象预报以及人口预测、宏观经济管理等都离不开数值分析。现在,不论是在高科技领域还是在一些传统学科领域,数值计算均是不可缺少的环节,它已经成为科学工作者和工程技术人员都应当掌握的知识和工具,成为智能+各行各业的数学基础。目前理工科院校人工智能专业大都为学生开设了数值分析(或称“数值计算方法”“计算方法”)课程。

2 数值分析课程的特点

数值分析课程和其他的课程不一样,它有着一些非常独特的课程特点,加强对这些特点的了解,可以让人工智能专业的学生对数值分析课程有一个整体的印象,一定程度上能够消除学生对这门课程学习的压力。

2.1 章节的独立性

人工智能专业数值分析课程的教学内容主要包括插值法、曲线拟和、数值积分、数值微分、解线性方程组的直接方法、解线性方程组的迭代法、非线性方程求根、常微分方程的数值解法等,各类教材都是将这些内容各设一章,但不同教材各章的先后顺序不完全相同,这一点与其他课程是很不相同的,原因就是数值分析的以上教学内容之间具有相对独立性,也就是说它们之间没有前续和后续之分,先讲哪个内容后讲哪个内容是不受影响的。数值分析课程的这一特点让学习者不会有太大的学习压力,因为如果你对某一章内容还没有完全学好,不会影响你学习其他部分内容。

2.2 章节的渐进性

数值分析每一章的小节安排都有一个共同的特点,那就是首先给出这一问题的初步解决方法,然后从算法的时间复杂度和算法的收敛性等方面对算法进行不断地优化。以数值积分为例,首先会给出非等分求积节点的机械型求积公式,然后讲解等距求积节点的牛顿-柯特斯求积公式,先介绍几种低阶的求积公式,然后介绍复化求积公式,最后在介绍变步长的求积公式的基础上,导出龙贝格求积公式,这是一个求积精度不断提高的过程。

3 人工智能专业数值分析课程的特点

从数学专业的角度出发,数值分析课程一般是由公式定理开始,从研究相关问题的定义、性质再到定理证明与应用。但是人工智能专业数值分析课程主要目的在于应用数值分析已有的理论来解决各行各业工程实际中的相关问题,其教学也就有不同的特点。

3.1 重应用,轻理论

针对智能+的各个交叉学科,往往拿到手的只是通过实验得到的数据,目的是利用数值分析对这些数据进行分析、验证,最后得到指导工程实践的一些结论,这就是工科数值分析的任务。对于人工智能专业本科生,应用才是目的,学习过程中只需要掌握数值分析的方法、算法,至于这些方法、算法是如何推导过来的,甚至是基于什么定理定义等都不是很重要。同时相对于数学专业的学生来说,人工智能专业学生的数学基础较弱,对一些数学理论推导和分析的进行深刻理解还存在一些困难。因此,人工智能专业的数值分析教学大可不必强调相关定理的证明,主要侧重于算法的讲解,包括算法的思想、算法的实现以及算法的不断改进,而对于相关的定理,只需要强调其用途以及应用该定理时的限定条件等。

3.2 鲜明的专业性

人工智能专业的数值分析课程不能像普通数学专业一样讲授,而是要结合各专业特点进行讲解。讲授过程中的一些例题和课后习题要尽可能来源于各专业的工程实际,而不是纯数学问题。例如给学生讲曲线拟合时,我们结合自行车车道的合理设计,所采用的数据是来自9 条街道的自行车车道的宽度和自行车与行驶中的汽车之间的平均距离,让学生用最小二乘法对这些数据进行拟合,并求当自行车与行驶中的汽车之间的平均最小安全距离为2m 时,最小自行车道宽度。只有像这样紧密结合学生所学专业实践进行讲解,才能提高学生的听课兴趣,并且所授内容也更容易被学生理解。

4 人工智能专业数值分析课程的教学改革建议

4.1 结合相关工程类专业背景,加强人工智能专业数值分析教材建设

在我们的十多年工科数值分析教学过程中,先后采用了多本教材,如李庆扬的《数值分析》(清华大学出版社)[1],王能超的《数值分析简明教程》(华中科技大学出版社)[2],邓建军的《计算方法》(西安交通大学出版社)[3]和刘师少的《计算方法》(科学出版社)[4]等。这些教材有的偏重于数学理论,有的虽然内容适合工科学生,但与工科专业相关工程应用结合不强。真正适合人工智能专业数值分析课程教学的教材一定要从教学内容选择上偏重工程应用、算法讲解和算法实现,在教学例题和课后习题方面紧密结合相关各工科专业的工程实践问题,这样不仅增强学生的数值应用能力,还可以提高学习趣味性。例如在设计曲线拟合的例题或习题时,可以结合实际工程问题设计如下。

在设计道路前,往往会统计并预测道路的交通量,以此为依据确定所设计路段的道路等级和结构层厚度。表1 是一段道路的交通量统计,试对相关数据进行曲线拟合,并预测2020 年的交通量。

4.2 强化人工智能专业数值分析实验课程建设

人工智能专业学生学习数值分析归根到底是要动手解决工程实践中的实际问题,因此该门课程的教学必须强调实际动手能力的训练。虽然数值分析的相关算法均有成熟的代码资源,但是如果学生每学完一种算法能够通过自己编程实现的话,对该算法的理解肯定会更加深刻,以后应用起来也才能举一反三。人工智能专业学生基本上都有Python 语言编程基础,学生用Python 语言实现所有相关算法,并可以更加熟练地掌握Python 编程。例如用Python 实现高斯消元法时,因为要用到矩阵做函数的参数,学生会发现一个关于矩阵变量传递的问题,怎样像C 语言一样进行数值传递呢?最后会发现利用matrix 内置的method copy 可以实现这个功能。

表1 某道路交通量统计表 辆/日

目前人工智能专业的数值分析课安排的实践教学学时较少,建议在以后的培养方案中适当增加实践教学学时,万一没有安排实践课时,任课老师也要适时布置一些实践动手的作业让学生自行完成。

4.3 改革人工智能专业数值分析课程考试方式

人工智能专业的课程考试可以形式多样,不一定都用理论试卷进行闭卷考试。在我们的数值分析教学实践中采用了多种形式的考试,有理论考试,也有在理论考试试卷中安排1~2 道编程题目,例如“利用Python 语言编程实现矩阵的克洛特分解,写出相应的程序或程序段”,通过这类题目可以考查学生使用Python 等语言解决工程计算问题的能力。

此外还可以采用开卷考试的形式,让学生自己设计、分析并解答一个工程实践问题,例如“请结合工程实践自己设计一道曲线拟合问题,并选取教材中的一种计算方法对该问题进行分析和求解”。由于数值分析涉及的算法比较多,可以将学生分成多个小组,分别针对插值、曲线拟合、数值积分、数值微分、解线性方程组、非线性方程求根、常微分方程的数值解法等每个课程内容模块,在广泛查阅资料的基础上,给出一道来源于工程专业实践的问题,并要求对该问题进行分析,选择一种算法进行求解并得到结果。这种考试方式可以提高学生利用所学知识解决实际问题的能力。

5 结 语

针对数值分析课程的教学已经有很多讨论和教学实践[5-6],我们给出的以上分析和教学改革建议均来源于自己多年的教学实践,虽然不可避免地会存在部分不妥之处,但希望我们的这些分析和建议能够给从事人工智能专业数值分析课程教学的老师们和直接学习数值分析的众多工科类学生们一些启发。

猜你喜欢

数值人工智能算法
体积占比不同的组合式石蜡相变传热数值模拟
哪种算法简便
数值大小比较“招招鲜”
舰船测风传感器安装位置数值仿真
铝合金加筋板焊接温度场和残余应力数值模拟
Travellng thg World Full—time for Rree
2019:人工智能
进位加法的两种算法
根据问题 确定算法
人工智能与就业