周惠巍,林晓惠,王 健,姚卫红
(大连理工大学 电信学部,辽宁 大连 116024)
2018年4月,教育部印发《高等学校人工智能创新行动计划》[1],要求推进“新工科”建设,重视人工智能与计算机、生物学、心理学、社会学等学科专业教育的交叉融合,形成“人工智能+X”复合专业培养新模式。“新工科”建设是国家主动应对新一轮科技革命与产业变革的重要战略行动。在《高等学校人工智能创新行动计划》和“新工科”建设背景下,将强化高层次人才培养的模式,推进人工智能教育发展。人工智能是计算机科学的一个分支,也是涉及数学、控制论、信息论、神经生理学、心理学、语言学等学科的交叉学科[2],需要学生具有较好的数学基础、较强的逻辑思维和编程能力等。因此,对于缺少实践的本科生来说,难以深刻理解课程中所涉及的比较抽象的原理和方法,导致学习效果欠佳,未达到课程的培养目标。所以针对本科生的特点,结合人工智能课程的实际情况,进行理论与实践相结合的教学模式探究,对于“新工科”建设中新一代人工智能人才培养具有重要意义。
美国高校非常重视人工智能人才的培养[3]。卡内基•梅隆大学面向本科生专门开设了人工智能专业,除了“人工智能概念”(concepts in artificial intelligence)课程以外,还开设了大量新颖的人工智能相关的选修课程,如“智能产品及服务设计”等。该专业学生在完成4门人工智能必修课后,需额外选修4门人工智能方向选修课程,方可达到毕业要求。斯坦福大学开设的“人工智能:原理与技术”(artificial intelligence:principles and techniques)课程将对学生的考核重点放在平时作业和小组合作项目中,考试的比重仅占20%。平时的作业中引入了“吃豆人游戏”等任务,将搜索算法生动地引入课程与作业中,寓教于乐。同时需要学生自主编写程序,旨在提升其动手实践的能力。课程同时还包含一个小组合作项目,学生需要自由组队完成自选的评测任务,意在培养学生的团队合作意识。
国内很多高校也为本科生设置了人工智能课程,如清华大学为非计算机专业的本科生开设了人工智能导论。课程不仅介绍一般性的原理和方法,同时包含实践性的作业,通过编程帮助学生理解、掌握一些人工智能的基本方法。通过期末大作业,学生将课堂学习的理论和方法用于解决现实中的实际问题。特别鼓励学生将人工智能理论与自己的专业相结合。
人工智能课程的地位正随着该技术的不断发展和广泛应用得到迅速提升[4],然而,在培养人工智能创新型人才方面,目前的教学还存在一些亟待解决的问题[5],主要表现为教学重理论轻实践,注重知识的传授,轻视能力的培养,理论与实践脱离[6]。
面向生物信息学专业本科生,开展人工智能课程理论与实践相结合的教学模式探究,包括基于案例教学法的人工智能理论教学内容研究;探究式案例教学模式的研究与实践,以及与生物信息学专业相关联的分层次、分阶段、循序渐进的上机内容的设计与实践。
人工智能课程内容广泛、理论多、概念抽象。对于刚开始接触人工智能课程的初学者来说,难免感觉枯燥难学。目前人工智能理论教学中,常常强调基本概念理论的讲解,而忽略了人工智能理论知识的应用背景。这种教学方法虽然能够将知识抽象地传授给学生,但是却没有将人工智能理论知识和其应用背景联系起来,具有片面性,不利于学生科学素质和创新能力的培养。
构建人工智能理论教学案例库,案例库综合涵盖理论知识、专业领域应用和当前热点问题,使教学过程更加生动,加强学生对人工智能理论的理解,加深记忆,提高学生的学习兴趣和效率。
引导学生发现身边的人工智能实际应用,例如在“概述”部分提出“图灵测试”“阿拉法狗”等案例;引入几次著名的“人机大战”;介绍历史上几个著名的“机器人”,并配以图片,将人工智能这一抽象的概念形象化,启发学生将人工智能技术应用于社会生活的方方面面,调动学习热情。
在“知识表示”部分提出“猴子摘香蕉问题”“梵塔难题”等案例;在“应用领域”部分提出“手写体识别”“八数码难题”等案例。教师对案例作启发式、提示性的讲解,引导学生用所学的理论知识对案例进行分析和探索。例如,在状态空间表示法的教学中,关于n元状态表示、操作符的定义、初始状态至目标状态的操作序列、状态空间图等抽象理论知识,引入图1所示“猴子摘香蕉问题”。基于“猴子摘香蕉问题”案例,生动形象地阐明常量定义、谓词定义、初始状态表示、目标状态表示,引导学生思考并讨论知识表示时需要考虑的主要因素等问题。
图1 猴子摘香蕉问题
基于“一只寻找骨头的猫”案例,将A*算法在经典的“八数码难题”案例基础上,更加生动有趣地展现出来。简单易懂地解释说明耗散值、估价函数等概念,让学生更易于理解。
根据具体的知识点设计案例后,可以通过两种方式结合知识点和案例:一是“案例-知识点”,即先给出教学案例,通过案例剖析以及讨论、启发等方式获得理论知识,加深理论知识的记忆和理解;二是“知识点-案例”,即先讲解理论知识,再给出案例问题,引导学生用所学理论知识解决实际案例问题,提高学生分析问题、解决问题的能力。
为提高课堂时间的利用率,科学合理安排讲解、讨论及老师和学生互动时间。将设计好的案例提前发给学生,鼓励学生课后学习和讨论,以便加强课堂讨论的深度和广度等。通过“课上互动、课下讨论”模式的案例分析,给学生带来很多深入的感悟和理解。如上述“猴子摘香蕉问题”案例,通过学生们的深入讨论,发现原课件“猴子摘香蕉问题的状态空间图”中缺少的一个状态(V,1,V,0),如图2虚线框所示,而这一状态是以往书和相关网站资料中没有的。
图2 猴子摘香蕉问题的状态空间图(学生讨论结果)
可见,通过探究式案例教学模式,学生对于人工智能理论知识有了更深入的认识和感悟。这些认识和感悟不是老师通过单方的说教能传授的,而是学生通过讨论、思考、体会总结得到的。在这些互动讨论中,学生获得的分析问题和解决问题的能力将使他们终生受益。
针对生物信息学科的新发展、新热点,将人工智能理论在生物信息挖掘领域的新理论、新方法及时融入上机实践教学环节,这样既可以拓宽学生的学习视野,又能锻炼实际动手能力。上机实践中,不仅涉及程序设计、数据结构、概率统计等以前所学的知识,还涉及最新的人工智能技术和方法,综合性较强。如何合理布局基础性和前沿性知识,深度结合理论和实际应用,同时提高学生的系统设计与实现的成就感,是培养学生不断探索、勇于创新的关键。设计一套分层次、分阶段、循序渐进的上机实践任务,从基础的搜索算法,到最新的人工智能技术,让学生深入理解并动手实现课程相关的任务。
教师可以让学生在理解深度、广度优先搜索算法的基础上,自己动手实现。实验给出了一个连通图,需要学生自己编写代码(语言不限)实现对图的深度、广度优先搜索,并打印出搜索路径。该实验可以帮助学生熟悉基本的搜索算法和实验流程,为随后更加复杂的人工智能实验作铺垫。
本实验是在实验1的广度优先搜索算法基础上进行拓展,采用A*算法进行启发式搜索,解决“八数码难题”。学生通过动手实现,能够掌握实现A*算法的具体细节,加深对A*算法和不同估价函数的认识。学生根据自身的熟悉程度自由采用C++,Java,Python等不同编程语言完成,不拘泥于具体的实现方式,有助于提升学生的发散性思维。
针对当前人工智能领域发展较快的深度学习方向,利用神经网络技术,实现手写数字识别系统。实验让学生自己动手实现经典的BP神经网络,理解神经网络中数据的传播、误差的计算、梯度的计算以及参数的更新过程,同时搭建了简单的服务器和用户界面,使学生可以直观感受到基于人工神经网络的手写数字识别效果。
实验由于需要搭建小型的服务器和用户接口,存在一定的难度,因此只将构建BP神经网络部分代码空出留给学生完成,其余部分直接给出。实验完成后,学生能够直接通过网页访问数字识别界面,并可以在画板中输出数字进行测试。通过将神经网络技术与简单的实际应用相结合,增强实验的趣味性,提升学生的成就感,从实验过程和实验积极性中可以看出,学生对本次实验都展现出浓厚的兴趣。
针对生物信息学科的新发展、新热点,将人工智能理论在生物信息挖掘领域的新理论、新方法及时融入上机实践教学环节。指导学生构建基于生物医学知识库的药物-疾病关系抽取系统。本上机实验,融合生物与计算机科学两个领域的知识,增强学生的学习兴趣。实验采用知识表示学习方法(TransE模型),将生物医学知识库中实体对及其关系三元组转换成为低维的向量表示。然后利用知识表示抽取生物医学文本中蕴含的药物-疾病实体关系。该实验结合了生物信息抽取技术、大数据应用技术与自然语言处理技术,具有较强的综合性和实用性,可以帮助学生更好地理解生物信息抽取的方法和技术。
有些学生在使用TransE训练的过程中,对知识表示产生了浓厚的兴趣。学生主动查找表示学习相关论文并进行细致的阅读。在深入理解TransE及以TransE为基础的基于翻译的知识表示学习算法的基础上,还对Word2vec、GLoVE等词向量表示学习方法进行学习总结。本实验可以拓宽学生的知识面,使学生对自然语言处理中各类不同表示方法有自己的认识和理解,同时也激发对生物信息挖掘研究的兴趣。
针对生物信息学专业本科生的特点,我们对人工智能课程的教学内容、教学模式、上机实践等方面进行了探究,摸索出一套基于案例的人工智能教学法。基于人工智能理论的典型、热点案例,通过讨论、启发等方式学习理论知识,引入循序渐进的上机实验任务,增强了学生的理论和实践相结合意识,拓宽了学生的学习视野,锻炼了学生的实际动手能力,取得了预期的教学效果。人工智能课程理论与实践相结合的教学模式探究,对于“新工科”建设中,新一代人工智能人才培养具有重要意义,为我国跻身创新型国家前列提供人才保障。