邬昌兴 罗国亮
摘 要:大学本科开设人工智能公共课的意义重大,有利于各科学生掌握人工智能的原理与技术,从而具备结合所学专业进行应用创新的能力。传统人工智能课程的教学内容和教学方式主要面向计算机相关专业的学生,因此,积极开展本科人工智能公共课教学的研究与探索是一件非常紧迫的任务。文章分析了人工智能发展的现状和人工智能公共课在开设过程中遇到的主要问题;同时从课程内容设计、案例教学和实施细节三个方面探讨了人工智能公共课程的教学模式。
关键词:人工智能;公共课;内容设计;案例教学
中图分类号:G642.0 文献标志码:A 文章编号:1673-8454(2021)07-0044-04
一、课程背景
21世纪以来,人工智能理论和技术发展日新月异,广泛应用于国民经济的各个行业中,极大推进了生产力的发展,方便了广大人民群众的生活。2017年国务院发布的《新一代人工智能发展规划》提出,人工智能领域人才需求量大,加强人工智能领域人才的培养已成为国家及高校的迫切需求。[1]2018年4月,教育部《高等学校人工智能创新行动计划》提出,要重视人工智能与计算机、生物学和统计学等众多学科专业教育的交叉融合,探索“人工智能+X”的人才培养模式。[2]当前,多数高校开展的人工智能课程主要面向计算机及相关专业的本科生和研究生,大量的教育工作者探讨了人工智能课程教学内容优化、教学资源与条件建设等方面的问题及解决思路。[3-5]为了顺应国家发展的需要,近年来越来越多的高校尝试开设面向全校本科生的人工智能公共课,因此,积极开展本科人工智能公共课教学的研究与探索是一件非常紧迫的任务。
人工智能诞生于20世纪50年代,经历了多次发展的高潮和低谷,形成了符号主义和连接主义等学派。进入21世纪以来,在计算机运算能力极度增强和互联网数据极度增大的背景下,连接主义学派的深度学习方法在计算机视觉和自然语言处理等领域取得了突破性的进展。[6]特别是近年来,人工智能进入了一个新的发展高潮,其技术和产品深入到大家的工作和生活中。例如,高德地图中的智能出行、今日头条中的智能新闻推荐、百度搜索中的智能搜索排序、京东购物的商品个性化推荐和美图秀秀中的智能美图等。面向高校各专业开展人工智能公共课,可帮助当代大学生掌握人工智能的基本原理和技术,帮助学生把人工智能技术应用到所学的专业中,拓展学生应用创新的能力。培养“人工智能+X”的应用创新人才是当前高校的重要任务之一,是人工智能公共课程建设的主要目标。
目前,人工智能公共课在开设的过程中遇到了诸多问题。第一,传统的人工智能教材主要面向计算机专业的学生,重点介绍人工智能领域发展过程中的各种经典理论与模型,内容覆盖面广、理论性强,对非计算机专业的学生来说学习难度较高。[7]近年来,人工智能领域发展迅速,新的技术、模型和方法层出不穷,导致人工智能教材不能很好地反映学科的发展,这也在一定程度上影响了学生的学习兴趣。例如,目前广泛应用的深度学习技术相关知识在多数教材中往往一带而过,深度学习最新成果在教材中更是无法体现。[8]第二,传统的教学方法重理论轻实践,不少学校因为学时较少甚至没有安排实践学时,导致课程安排以讲授理论知识为主。大部分学生对这门实践性很强的课程缺少直观感受,这显然不利于学生动手能力的培养,更谈不上学科交叉的应用创新。第三,人工智能是一个涉及计算机科学、数学、信息论、神经生理学和语言学等领域的交叉学科,需要学生具有较好的数学基础、较强的逻辑思维和编程等能力。然而,公共课的学生涉及众多专业,计算机基础差异较大,动手编程的能力普遍较弱,数学基础相对不完备。这导致实践教学开展的难度比较大,效果也不佳,大部分学生没有真正参与进来,没有体会到人工智能技术的作用和魅力。
基于上述分析,本文从人工智能公共课的教学内容设计、案例教学和实施细节三个方面展开讨论,目的是提高人工智能公共课的教学效果,促进“人工智能+X”应用创新人才的培养。首先,设计有针对性的教学内容。本课程去掉了人工智能知识体系中不确定性推理等理论性较强的内容,而选择搜索问题求解和深度学习作为核心教学内容。深度学习作为目前这一波发展浪潮中的主要技术,选择其作为教学内容,对帮助学生把握当前热门的研究方向和前沿进展具有重要意义。其次,针对教学的核心内容引入案例式教学,以重排九宫、识花君和外卖评论文本情感分类三个与日常生活紧密相关的案例贯穿整个教学过程。最后,在教学的具体实施过程中,除了常規的教学手段外,还引入开放式教学和大学生创新项目实践等课外活动。这样不仅可以鼓励学生深度参与整个教学过程,还能帮助有兴趣的学生结合自身的专业领域进行应用创新,以弥补公共课课时不足的问题。下面分别从内容设计、案例教学和实施细节三个方面展开详细介绍。
二、内容设计
人工智能公共课一般安排32个课时,每周2课时。我们把课时分成两部分,其中20个学时为理论教学,12个学时为上机实践。如表1所示,三分之一左右的课时用于搜索问题求解相关内容,三分之二左右的课时用于深度学习相关内容。这两部分内容有以下几个共同点:①与学生的日常生活紧密相关,这有利于激发学生的学习兴趣。例如,搜索问题求解中的重排九宫问题是很多学生玩过的小游戏,外出旅游中常用的微信小程序识花君本质上是深度学习基本任务之一的图片分类问题。②对数学基础的要求不高,有利于不同层次的学生掌握。例如,深度学习算法的理解和实现只需要学生有高数基础和线性代数基础就可以,应该说大部分理工科专业学生是具备的。③相关算法易于实现,有利于实践课程的开展。当前大量的深度学习框架封装得比较好,封装了常用的网络结构和基础模型,大部分学生经过一定时间的学习能掌握这些框架的使用,并完成图像分类和文本分类等实际应用程序的开发。
具体教学内容包括:①人工智能简介,介绍人工智能学科发展过程中的三起两落、人工智能在现实生活中的应用。②编程基础,介绍Python编程基础,主要包括基本语法和列表等常用数据结构;介绍深度学习框架PyTorch,重点是矩阵运算。③无信息搜索,介绍深度优先搜索、宽度优先搜索和统一代价搜索。④有信息搜索-A*算法,介绍启发式信息、A*搜索算法和启发式函数,并以重排九宫问题作为案例进行教学。⑤对抗搜索,介绍博弈树、a-b剪枝,了解AlphaGo的设计原理。⑥人工神经网络基础,介绍神经元、非线性变换、代价函数、反向传播和梯度下降等。⑦多层前馈神经网络,介绍网络结构、网络参数、Softmax分类层、交叉熵代价函数、基于多层前馈神经网络的图片分类等。⑧卷积神经网络与图片分类,介绍卷积核及池化层、基于卷积神经网络的分类等,并以识花君作为案例进行教学。⑨词向量与文本分类,介绍词的向量表示、句子的向量表示、基于多层前馈神经网络的文本分类等,并以外卖评论文本情感分类作为案例进行教学。⑩课程总结,对课程内容进行回顾,让学生分享学习心得。
从上面教学内容的安排中可以看出,本课程的重心从以理论讲授为主转为了以实际应用为主,这也符合培养交叉学科应用创新人才这一宗旨。考虑到非计算机专业学生的基础问题,在安排教学内容时不追求知识覆盖面广,而尽量集中力量让学生理解并实现2~3个与实际生活相关的人工智能应用。优化后的教学内容有以下几个方面的优点:①能使学生尽快了解并进入人工智能领域,能通过亲自体验人工智能的实际应用激发学生的学习兴趣。②使大部分学生能够按要求完成既定的学习任务,了解当前人工智能能做什么、擅长做什么,从而促进人工智能与所学专业的融合,有利于今后在交叉领域进行应用创新。③选择深度学习作为主要的教学内容,有利于帮助学生迅速把握当前热门的研究方向和前沿进展,对激发学生进一步学习人工智能相关知识具有很强的指引意义。
人工智能公共课的教学目标可以分为两个层次。第一层次,通过本课程学习,掌握人工智能的基本原理、开发方法、典型应用和发展前景,可以配合进行所在领域人工智能项目的策划、开发和实施。第二层次,较好地掌握人工智能理论和开发技术,通过后续的自主学习和持续学习,具备在相关领域进行人工智能应用创新的能力。优化后的教学内容包括人工智能的基本技术和前沿内容,能满足上述两个教学目标的要求。
三、案例教学
案例教学法的主要思想是根据教学内容选择有启发性、针对性、真实性和趣味性的教学案例进行讲解,激发学生的学习兴趣并引导学生进行讨论,展开实践,从而培养学生分析问题和解决问题的能力,是一种效果较好的理论与实践相结合的教学模式。与传统的讲授式教学法相比,案例教学法以学生为主体,教师通过精心设计的案例,加深学生对知识的理解和运用,拓展学生的思维空间,引导学生在实践中主动学习。好的教学案例能激发学生学习的积极性和主动性,从而自发地去查阅相关资料并寻找解决问题的答案。基于人工智能公共课程的现状,我们认为案例教学是一种比较合适的教学方式,并精心设计了重排九宫、识花君和外卖评论文本情感分类三个教学案例。
教学案例1:重排九宫。重排九宫游戏的规则是:九宫格中乱序填入1、2、3、4、5、6、7、8等数字,还有一个格子空着;与空格子相邻的格子中的数字可以移动到空格中,经过若干次后,使九宫格中的八个数字达到连续有序的状态。重排九宫游戏实质上是一个典型的搜索求解问题,可以使用A*搜索算法很好地解决。通过重排九宫游戏来讲解A*搜索算法比较贴近学生的生活,因为很多学生都玩过类似的小游戏。在案例教学的过程中,学生能很快地理解搜索问题的起始状态、目标状态、状态空间、搜索树、搜索代价和启发式函数等知识点。为了让学生深刻体会启发式函数的选择对搜索效率的影响,在实验中设置三种启发式函数:①无启发式函数,这时A*搜索算法退化为无信息的宽度优先搜索;②启发式函数1,通过计算当前状态与目标状态的相应位置上有多少个不同的数字作为启发式信息;③启发式函数2,通过计算当前状态与目标状态的相应位置上数字的曼哈顿距离的总和作为启发式信息。假设初始状态为[[4,0,5],[1,2,3],[7,8,6]],目标状态为[[0,1,2],[3,4,5],[6,7,8]]。学生通过实验会发现,无启发式函数的情况下,在10000次之内不能搜索到目标状态;启发式函数1使用了1642次搜索找到目标状态,而启发式函数2仅使用了244次搜索就找到目标状态。可以发现,采用启发式函数2比不使用启发式函数的速度快了几十倍。学生通过实现重排九宫游戏,能够较快地掌握实现A*算法的具体细节,加深对A*算法和不同启发式函数的认识,并深刻体会到不同的启发式函数对搜索效率的巨大影响。
教学案例2:识花君。识花君是微信中的一个小程序,可用于拍图识花,识别准确率非常高,是日常生活中常用的一个小程序。在学习人工智能课程之前,相当一部分学生对识花君的功能感到很神奇。本质上,识花君是一个图片分类程序,其接收用户拍的图片作为输入,告诉用户图片中是哪种花。以识花君作为基于神经网络图片分类的教学案例是非常合适的,让学生亲手实现这样一个有意思的功能,能让其体会到人工智能在现实生活中的实际应用。为此,我们从网上找了一个小规模的图片数据集,包括898张蒲公英的图片、641张玫瑰的图片、699张向日葵的图片、799张郁金香的图片,每张图片为64×64像素。这些图片中的80%用作训练集,20%用作测试集。通过实验,学生发现基于多层前馈神经网络的图片分类模型可以达到90%以上的准确率,而基于卷积神经网络的图片分类模型可以达到95%以上的准确率。实验课程上,让学生自己动手实现识花君小程序,从而进一步理解图片的表示、神经网络中的前向计算过程、分类代价函数的计算、梯度计算以及参数的更新过程。通过识花君这样一个教学实例,提升了学生的成就感。从实验过程中可以看出,学生对人工智能技术的应用展现出了浓厚的兴趣。
教学案例3:外卖评论文本情感分类。自然语言处理是人工智能的主要应用领域之一,而文本分类是自然语言處理最基础的任务之一。外卖评论文本如“相当好吃的香锅,分量够足,味道也没的说”和“一个半小时送到,粉都砣在一起了,很无语”分别表达了订餐者的正面情感和负面情感。自动识别外卖评论文本的情感是一个文本分类问题,是一个非常贴近学生生活的教学案例。为此,我们从网络上收集了一个小规模的外卖评论文本数据集,其中正面评论5000个,负面评论5000个。通过这样一个教学案例,给学生很好地展示了词的向量表示、句子的向量表示以及文本分类的一般过程。例如,我们首先使用Word2vec工具学习词的向量表示,每个词对应一个实数向量;然后,将句子中所有词的向量平均,得到句子的向量表示;最后,经过一个多层前馈神经网络和一个Softmax分类层实现句子的分类。通过实验,学生发现基于词向量平均的外卖评论文本情感分类模型能达到90%左右的准确率。在实验的过程中,有些学生对句子的表示产生了浓厚的兴趣,主动查找并阅读循环神经网络和注意力机制等相关论文。本教学案例可以拓宽学生的知识面,使学生掌握文本分类的一般过程,并对句子的表示有所了解,同时也激发学生对自然语言处理领域的兴趣。
四、实施细节
在教学的具体实施过程中,除了常规的教学手段外,还引入开放式教学和大学生创新项目实践等课外活动。开放式教学使学生能全程参与教学的整个过程,有利于学生发挥主人翁精神。大学生创新项目实践给部分对人工智能感兴趣的学生提供了一个更广阔的平台,有利于学生进行应用创新。
教学过程中,将所有的课程大纲、教学内容和实验内容等放至开源社区上,所有学生都可以通过开源社区访问这些资源并参与讨论。在这种开放的模式下,教学不是教师一个人的事情,而是由所有参与人共同完成,每个学生都可以看成是课程建设的主体。让学生参与课程建设有以下几个方面的好处:①学生往往在虚拟的网络上发言比较积极,对课程内容的讨论比较充分,因此能够在充分听取学生意见和建议的基础上改进教学内容。②有利于发挥学生的主人翁精神,激发学生去探索和学习更多相关的人工智能知识。③让更多的人参与课程建设,能够帮助教师发现问题、提升课程质量,同时也能确保课程一直处于实时更新状态,从而构建一个开放、成长的生态系统。④有利于资源的积累,有些学生会推荐一些很有意思的教学案例,从而丰富教学的内容。⑤提供了一种在线答疑的方式,这不仅能及时解决学生碰到的问题,还能帮助教师了解学生的学习情况。通过几届学生的努力,不断改进和丰富教学内容和教学案例,从而不断提高课程的质量。
将应用创新的指导思想贯彻到日常教学中,主要体现为注重培养学生应用创新的主动思维和开发能力。由于人工智能公共课的课时比较有限,我们通过引导学生参加大学生创新项目实践的方式来弥补课时的不足。具体地,在介绍了深度学习的基本方法和模型后,引导学生结合人工智能技术和所学专业展开应用创新思考和项目实践。例如,机电专业学生探讨并实践基于深度学习的机器人路径归划问题、轨道交通学生探讨并实践智能交通设计问题或轨道损伤自动检测问题等。做得好的项目可以用于参加“互联网+大学生创新创业大赛”、“创青春大学生创业大赛”和“中国大学生计算机作品赛”等,也可用于申报“大学生创新创业训练计划项目”等课题。通过引导对人工智能感兴趣的学生参与创新项目实践,有利于进一步激发学生的学习兴趣,有利于应用创新人才的培养。
五、结束语
面向本科生开展人工智能公共课,需要针对学生的特点及人工智能的发展现状,设计专门的教学内容并对传统的教学模式进行改进。本课程去掉了人工智能知识体系中理论性较强的一部分内容,选择搜索问题求解和深度学习作为核心教学内容,并精心设计了三个真实的教学案例用于贯穿整个教学过程。所选核心教学内容对数学基础的要求不高,相关算法易于实现,学生学习的积极性和主动性高。教学实施结果表明,大部分学生不仅掌握了人工智能的基础理论和方法,同时对人工智能和深度学习的最新进展有一定的了解,有些学生还初步具备了结合所学专业进行应用创新的能力。
参考文献:
[1]国发[2017]35号.国务院关于印发新一代人工智能发展规划的通知[Z].
[2]教技[2018]3号.教育部关于印发《高等学校人工智能创新行动计划》的通知[Z].
[3]周鋆,曾平,杜振国等.世界一流大学研究生培养模式讨论——以人工智能课程为例[J].计算机工程与科学,2018,S1(40):98-102.
[4]周惠巍,林晓惠,王健等.新工科建设中人工智能课程教学模式探究[J].计算机教育, 2019(11):45-48.
[5]安富海.人工智能時代的教学论研究:聚焦深度学习[J].西北师大学报(社会科学版), 2020(5):119-126.
[6]Yann LeCun,Yoshua Bengio,and Geoffrey Hinton.Deep learning[J].Nature,2015, 521(7553):436-444.
[7]张小勤,谭立文,吴毅等.基于案例式的医学本科生人工智能课程教学与实践[J].重庆医学,2020,49(13):2226-2228,2231.
[8]张敏,方泳泽.新工科导向的人工智能教学实践[J].集美大学学报(教育科学版), 2020,21(3):84-88.
(编辑:王天鹏)