AI算法可视化辅助教学系统的设计和实现
2020-07-04夏齐鸣刘晓强
夏齐鸣 刘晓强
摘要:论文针对人工智能普及性教育需求,设计并实现了一个基于Web的AI算法可视化辅助教学系统。系统实现了算法可视化教学、自适应测验以及基于知识图谱的学习导航、知识推荐等功能。论文介绍了系统结构设计、算法可视化实现过程、基于学习者模型和知识图谱的自适应测验和知识推荐等关键问题。目前設计实现了Kmeans、决策树、神经网络等算法的模块,并可以支持不断扩展新的AI算法教学。
关键词:算法可视化;辅助教学;自适应测验;算法图谱;知识推荐
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2020)14-0041-03
1背景
人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学,是计算机科学的一个重要分支,是当前科学技术发展中的前沿科学领域。国内外各大高校纷纷开设人工智能课程,然而由于人工智能的知识体系庞杂,算法知识繁多,知识点晦涩为人工智能教育带来了困难,特别是人工智能领域中算法的普及教育在学时有限的情况下,既要要求学生理解算法,又要能学以致用,无论对于教师还是学生都是一个巨大的挑战嘲。
在传统的算法教学中主要还是采用PPT进行理论教学这一单一教学模式,虽然可以传递完整的知识体系,但是由于缺少直观性和参与性,而且与实验过程脱节,导致学生学习和理解过程困难,未能达到良好的教学效果。针对传统算法教学中存在的问题,国内外学者开始探索在算法教学实践中引入图形进行辅助教学,算法可视化就是其中一种教学方式。
算法可视化是通过可视化的方式生动形象地展示算法内部工作原理以及算法执行过程,从而降低算法学习的难度,使得学生更易理解和掌握算法思想嘲。基于以上的背景,我们设计并实现了一个基于Web端的AI算法可视化辅助教学系统,该辅助教学系统主要实现了算法的动态可视化教学功能,其次为了提升用户对算法的理解和掌握程度,设计并实现了算法自适应测验功能以及算法图谱的学习导航功能,以此来实现算法辅助教学的目的。
2系统结构
AI算法辅助教学系统主要针对人工智能课程中常见的机器学习算法进行辅助教学,系统主要包括算法的动态可视化教学模块,算法自适应测验模块以及算法图谱学习导航模块三大模块。
该系统的结构设计图如图1所示。
系统的每个模块分别实现了以下功能:
1)算法动态可视化教学模块:该模块主要用于动态展示算法的内部工作原理以及执行过程。该模块分为两个子模块,分别为算法分布教学模块和算法整体教学模块。算法分步教学模块将算法的内部原理进行分步可视化教学,使用户从微观的角度去学习算法。算法整体教学模块是建立在用户已经完成对算法分步教学的学习基础之上的,从算法的整体层面进行可视化教学,让用户在宏观角度建立对算法的认知。
2)自适应测验模块:该模块为算法的测验学习模块,主要是通过习题测验的方式来加深用户对算法的理解和认识。系统通过收集用户测验信息构建用户学习模型,再通过分析用户学习模型判断用户知识掌握的情况,最后通过分析结果给用户推荐学习资源,从而实现自适应测验学习功能。
3)算法图谱学习导航功能:该模块针对人工智能领域常见的机器学习算法建立知识图谱,并将图谱可视化展示。用户可以检索算法图谱中的任意算法,并能够基于算法图谱实现学习资源推荐功能。
3系统的设计和实现
3.1可视化教学模块的设计和实现
算法动态可视化教学模块目的在于实现算法原理的动态可视化展示,作为可视化教学系统,系统应当解决以下三个问题:
1)算法执行过程可视化性;
2)系统可交互性;
3)必要的理论可讲解性。
针对算法执行过程可视化性问题,需要我们在设计算法可视化教学模块的过程中必须对每一个算法原理进行具体分析。通过对算法的内部执行过程进行拆分得到多个子过程P=(其中i=1,2…,n),针对算法的每一个子过程Pi设计函数Ei(其中i=1,2…,n),其中Fi是对算法子过程pi通过程序实现图形可视化的函数。最终系统通过调用Fi实现算法原理的教学可视化功能。
针对系统可交互性问题,要求我们在算法执行过程中允许用户控制算法的执行过程。首先需要设计一个操作队列L,操作队列L负责按照算法的执行顺序存放Fi。其次需要设计交互函数,系统从可交互区域获取用户的操作指令I,交互函数负责根据交互指令I从操作队列L中取出Fi并执行。通过这种获取用户指令的方式帮助用户控制算法执行过程,实现了系统的可交互性。
针对理论可讲解问题,需要我们对算法每一个执行子过程设计描述函数Di(其中i=1,2…n),在系统运行过程中调用D。进行展示。
根据对以上三个问题的分析,设计出算法可视化教学模块界面如图2所示。
系统的可视化教学界面可划分为四个区域,分别为:
1)算法可视化展示区域:该区域主要功能是用于展示算法内部执行过程。当系统运行时会调用已经设计好的Fi(其中i=1,2…,n),并将Fi的运行结果在该区域进行展示。
2)数据集显示区域:该区域主要功能是展示当前算法运行过程中涉及的数据集信息,系统运行时会调用算法所用数据集并显示。
3)可交互区域:此区域实现了用户与系统的交互功能。用户在此区域通过页面的操作按钮向系统传递操作指令,系统通过交互函数来控制算法的前进执行或者后退执行。除此之外还实现了一些其他的交互功能,比如选择数据集,设置参数。
4)解释区域:此区域以简洁文字描述或者伪代码的形式来讲解算法的内部变化过程。在系统运行时通过调用D;并将返回值在该区域显示。
可视化教学模块运行过程:首先用户进入该模块可以选择需要进行可视化教学的算法,然后通过参数设置、自定义数据集功能对算法进行参数的设定和数据集的选择,再通过可交互区域向系统传递操作指令来控制算法的执行过程,并在算法可视化展示区域演示可视化执行过程。
3.2自适应测验模块的设计和实现
当用户完成算法可视化教学模块中的算法学习后,此时用户尚未对已学习的知识形成深刻的记忆。因此设计自适应测验模块,可以让用户通过自适应测验模块来进行算法测验,以此来加深对算法的理解。
在自适应测验模块中需要为用户设计用户学习模型M(UID,KID,LEVEL),其中UID用于表示唯一标识用户的用户ID,KID用于表示唯一表示知识点的知识点ID,LEVEL表示用户对知识点的掌握程度,LEVEL的值可以为0、1、2,分别表示未掌握,基本掌握和熟练掌握。LEVEL默认值为0,LEVEL的更新条件是当用户对某一知识点对应的习题练习数目大于10时,当作题的正确率R大于60%小于90%时LEVEL值更新为1,当作题正确率R大于等于90%时,LEVEL值更新为2。用公式表示为公式(1)和公式(2)。
其中rightcount代表正确答题数目,totalcount表示总共练习题数。
基于用户学习模型中LEVEL取值不同,自适应测验模块设计如下推荐策略,若模型中的LEVEL为0,则判断用户对当前知识点未掌握,向用户推荐学习资源(如原理可视化教学模块、教师课件、学习视频等多媒体资源)进行再学习,当用户完成再学习之后系统再推荐知识点对应的习题进行测验。若LEVEL为1,则判断用户基本掌握当前知识点,推荐当前知识点对应的习题让用户强化练习。若LEVEL为2,则判断用户已经熟练掌握该知识点,不进行主动推荐。
冷启动问题是自适应测验系统中最常见的问题。因此为了避免冷启动问题,系统会记录用户的测验记录,若用户是第一次使用自适应测验模块,则系统会所及从题库中抽取若干题目让用户进行测验,测验完成之后系统收集用户测验信息,对用户回答错误的题目对应的知识点进行记录,分析用户对哪些知识点理解不透彻,建立用户学习模型,并基于用户学习模型采取推荐策略进行推荐。如果用户不是第一次进人测验模块,则系统通过已建立的用户学习模型分析用户学习情况并进行学习推荐。通过测验不断完善用户学习模型,以此达到自适应测验的学习目的。
根据以上业务分析,自适应测验模块的业务流程图设计如图3所示。
3.3算法图谱学习导航模块的设计和实现
人工智能领域庞大,涉及的算法知识繁杂,用户在学习知识体系过程中往往会因此产生畏惧、厌学心理,从而失去学习动力。为了建立用户对人工智能领域常见机器学习算法的整体认识并理解算法与算法之间的关系,我们将人工智能领域常见的机器学算法建立算法知识图谱,并将图谱可视化的展示。其次根据用户学习模型,实现基于算法知识图谱的学习资源推荐导航功能。
算法知识图谱的构建:通过scrapy爬虫框架技术爬取了百度百科和维基百科中关于人工智能领域常见机器学习算法的相关内容,之后再对数据进行处理,剔除重复和无效的数据。再设计知识图谱中的实体和关系,需要设计算法实体A,知识点实体K,题目实体Q以及学习资源实体s,因为一个算法可能包含另一个算法,一个算法可能包含多个知识点,一个知识点可能包含多个习题,一个知识点可能包含多个学习资源,所以实体中的关系有、、、其中CONTAIN为关系。将数据按照以上分析建立实体和关系,并将数据导入NE04J数据库(因为Ne04j图数据库擅长对图数据进行操作,传统的关系型数据库对图数据进行多跳查询时会产生连接操作而产生较大开销,所以这里选择Ne04i图数据库进行数据存储),在NE04i数据库中A、K、Q、S实体以节点的形式存储,而关系CONTAIN以边的形式存储。
知识图谱的可视化使用了vis.is技术,为了便于用户快速查询图谱,实现了图谱检索功能。如图4所示,检索机器学习领域常见的算法,并将检索结果可视化展示。
4结束语
AI算法可视化辅助教学系统从算法可视化教学、自适应测验以及算法图谱学习推荐导航三个方面来实现算法辅助教学功能。系统针对算法传统教学中面临的困难,以可视化的方式来進行算法教学,降低了算法学习难度,自适应测验模块可以根据用户的学习情况进行有目的性地学习,知识图谱学习模块以可视化的方式帮助用户建立对人工智能领域常见机器学习算法的整体认识,并且基于算法图谱可以对用户进行学习资源推荐和导航。系统还具有可扩展性,可以根据实际教学要求设计其他的算法进行可视化教学。然而该系统目前也存在一些问题,比如系统的uI界面不够美观,自适应测验模块习题资源等不足之处,后期会对这些方面进行完善。