谢瑞军 张圩
摘 要:随着大数据和人工智能出现,人们的生活发生了重大的改变。而线性代数作为人工智能必备的基础知识显得越来越重要。文章针对当前的线性代数教学改革给出一点思考。
关键词:线性代数;大数据;人工智能
随着互联网、大数据、人工智能、云平台等新技术的发展,传统的学科正面临着颠覆性的改变。学科界限越来越模糊,学科交叉越来越明显,学科融合越来越普遍,社会大量需要更多懂得交叉知识的复合型人才。线性代数作为高等院校理工类和经管类必修的一门数学基础课程,广泛应用于自然科学、计算机、工程技术等各个领域。
特别的,随着近年人工智能、云计算等信息技术的兴起,线性代数知识的使用越来越重要。例如,机器学习中常用到矩阵运算、相乘等知识,人工智能中的图像处理使用了的线性代数的矩阵分解理论;谷歌搜索引擎核心算法就是著名的 Pagerank 算法,该算法的理论基础就是基于线性代数中的矩阵特征值和特征向量理论;等等。
一、线性代数的现状
课程内容多,概念多,定理多,符号多。跟高中数学联系较少,学生听起课来,觉得枯燥。大多数教材都是从行列式开始或者从矩阵讲起,很多同学听起来都是一脸疑惑。这是为什么?比如大家非常熟悉的应用最广泛的教材,同济大学版本的线性代数教材,一上来就介绍了逆序数这种古怪的概念,接着引入行列式的抽象定义,一堆符号算式出来了,接着给出了很多不直观行列式性质和试题,例如,把某行的k倍加到另一行上去,行列式值不变,或者把某列的-k倍加另外一列对应的元素上去,行列式值不变,有了这个性质就能计算很多行列式的值。但很多大一新生还没从高中数学思维转变,他们经常疑问的是,为何这样操作?这些定义性质压根看不出来有什么用!于是有少数同学开始不听课,部分同学开始抄作业。更重要的是,紧接着的下一章矩阵来了,这是线性代数中非常重要的概念,它广泛应用在绝大数的工程计算、科学研究、经济学等等,比如价格矩阵,密码破译,谷歌搜素引擎以及现在的大数据和深度学习。可是,由于开始行列式定义的抽象使得同学们直觉性丧失,导致学习兴趣全无。很多学生往往是在学习了数学规划,运筹学,矩阵论等后继课程之后,才渐渐能够理解和熟练运用线性代数。即使如此,他们对初学者提出的很基础的问题也不一定能搞得清楚。例如:矩阵究竟是什么东西?矩阵的乘法规则为什么这样规定?乘法规则是实际中如何发挥作用的?等等。像我们教材那样,凡事用定义和数学证明,最后培养的出来的学生,只能熟练使用工具,而非真正意义上的理解。国外教材鲜明特点就是应用性和启发性,重点是和实际生活紧密结合,教材中重要应用举例和思考题,一般都会启发学生理解概念,为什么这样定义?定義、定理有什么用处,内容丰富,具有很好的时代性和启发性。
课时少,教学方式单一。现在大学都在重视专业课和实验课,特别是部分高校觉得数学基础课学多了,对专业用处不大,因而对公共基础课课时一再压缩。在有限的课时内,很难有时间把实际应用例题,定义概念,定理的背景等融合到教学中,一般都是理论灌输,从而导致学生被动理解,失去学习兴趣,这样的教学方法也不适合培养创新性人才,教学效果也不理想。
二、线性代数教学改革的一点思考
基于上述线性代数的现状,个人对线性代数教学给出一点思考。
(一)建立线性代数与学科专业相适应的教学模式
大多数线性代数教师对数学专业知识熟悉,但对所教其他专业的背景知识缺乏了解和思考,例如:会计学和经济学中线性代数相关应用,人工智能专业使用哪些线性代数知识。大多数老师还是传统的课堂教学设计,按照定义,定理,证明,做题的顺序,应用案例选也是简单的数学问题求解,偏重普遍性,缺乏针对性。这些教学内容与人工智能背景关联度低,课堂所学内容无法用以解决专业问题,从而导致学生学习目标不明确、学习兴趣丧失。
针对这个问题,笔者认为应该设计不同的教学案例,应该按照问题的来源-定义-定理的必要性-定理-证明-做题-有哪些应用案例为顺序,引导学生在探索技术性问题解决方案过程中逐步建构线性代数知识体系,提高学生解决问题的能力,让学生对课程内容本质的加深理解,在潜移默化中去培养他们接受从事科研工作的基础训练。
人工智能主要用到的线性代数包括矩阵乘法,矩阵运算、特征值分解等。例如:矩阵的特征值和奇异值分解目的就是提取一个矩阵最重要的特征,也是机器学习中非常重要的数学基础。我们讲解矩阵特征值和特征向量的时候,需要细致讲解特征值和特征向量的几何意义。在讲解相似矩阵多角化后,就可以引入特征值分解概念,它是机器学习中用于分析人脸特征的主成分分析的数学基础。在机器学习中,有很多与奇异值相关,比如搜索引擎语义层次检索的LSI(Latent Semantic Indexing),做数据压缩(以图像压缩为代表)的算法,由于书本没有介绍奇异值分解,此内容可以让学生自学。
(二)在线性代数教学中引入现代信息技术
对于大数据技术和人工智能专业,本身学生就站在信息时代的前沿,对信息技术的接收能力更强。为了在有限的教学课时中,掌握更多的知识。通常可以利用微课、慕课(Mooc)、精品课程、翻转课堂等课程体系,以及超星、学习通等课堂辅助工具。每次课前都可以通过超星布置课前预习,给出每章重点知识,定义,定理概念的理解,让学生们通过分享的微课视频,慕课等自学。上课期间,分组讨论本章重点内容,按照来源-定义-定理的必要性-定理-证明-做题-有哪些应用案例为顺序,让学生真正意义上理解内容。通过这些视频、动画等多媒体即可以提高课堂效率,又可以激发学生学习兴趣,更重要的是,节省的时间可以充分介绍每章的背景,应用案例,定义定理的来源,让学生提高自学能力的同时,还能掌握更多的课外知识。
(三)课堂教学中软件的使用
在线性代数教学中,Matlab 软件的使用已经很常见,比如求解行列式,求特征值,解线性方程组的解,见文献[2].但是,在人工智能学习中,更多的是使用Python软件,因此在讲解线性代数过程中,尽量使用Python语言编程,来解决一些线性代数问题,提高学生解决实际问题的能力。
例:求矩阵A=的逆矩阵,转置矩阵和行列式值。
#-*- coding:utf-8-*-
import numpy as np
from numpy.linalg import*
def main():
lis = np.array([[1,2],
[3,4]])
print lis
print ‘求矩阵的逆矩阵
print(inv(lis))
print ‘\n
print ‘求矩阵的转置矩阵
print lis.transpose()
print ‘\n
print “求矩阵的行列式”
print det(lis)
print ‘\n
结果如下:
[[1 2]
[3 4]]
求矩阵的逆矩阵
[[-2. 1.]
[ 1.5-0.5]]
求矩阵的转置矩阵
[[1 3]
[2 4]]
求矩阵的行列式
-2.0
四、结语
随着大数据和人工智能时代的到来,线性代数作为一门重要的数学基础课程。我们想培养学生的自主创新能力、自主学习能力及逻辑推理能力,因而,在线性代数教学中,激发学生通过数学知识解决实际问题的能力,提高学生数学思维能力和解决生活、科技中遇到的问题,这也是素质教育的根本所在。同时,教师教学理念的转变,学校配套的硬件,教材编写等,需要继续进一步思考。
参考文献
[1] 韦慧,赵前进,耿显亚.基于MATLAB软件的线性代数课程教学探索[J].教育教学论坛,2018(12):186-187.
[2] 謝加良,朱荣坤,宾红华.新工科理念下线性代数课程教学设计探索[J].长春师范大学学报,2018(4):131-133.
基金项目:安徽财经大学校级教研项目(acjyyb2017 102)。
作者简介:谢瑞军(1984- ),男,讲师,博士,研究方向:微分方程定性理论;张圩(1984- ),女,助教,硕士,研究方向:概率论与数理统计。