人工智能背景下数据结构课程的教学改革研究

2019-08-15 00:44邹汉斌雷红艳
教育现代化 2019年104期
关键词:数据结构深度人工智能

邹汉斌,雷红艳

人工智能的发展使我们的生活方式发生了改变,人工智能也推动了社会的进步。人工智能技术已成为各信息企业的支柱技术,几大巨头公司都在发展自己的人工智能平台,研究人工智能技术并很好地应用人工智能[1]。人工智能技术已经成为国际竞争的焦点,为了获得更好的竞争力,我们国家正在积极地在中小学开设人工智能课程,许多高校都在建设人工智能学院,培养人工智能方向的专业技术人才。

人工智能的发展肯定离不开教育,教育的发展也离不开人工智能技术,如智慧校园、智慧教室、智能教学辅助平台、智能教学管理等都使用了人工智能技术[2]。通过分析人工智能的本质提出如何将数据结构课程中的知识点与人工智能融合,让学生在数据结构的学习中就可以接触人工智能知识。数据结构课程是信息类专业重要的专业课程,本文将分析大数据信息智能教学平台的特点与功能,引导学生利用智能信息教学平台自主进行线上学习、线上编程,让学生可以根据相关学习指标分析自己的学习状况以及知识的掌握程度。

一 人工智能的本质

人工智能就是通过程序使机器具有人的智慧。人工智能不是万能的,一个呀呀学语的小孩可以很容易识别人、动物、植物,通过简单的学习可以识别哪些东西可以吃哪些不能吃,但机器却很难完成。人工智能发展的最高目标是可以在某些领域代替人完成相应地工作,使其具有无人化、自动化的功能[3]。学习就是人工智能的本质,学习包含无监督学习与有监督学习。有老师教的 学习成为有监督学习,在人工智能中体现在可以利用人工智能算法对指定标签的数据进行学习,学习后该人工智能算法可以对无标签的数据进行分类。而无监督学习就是不需要指定数据的标签,算法可以根据数据的分布以及特征进行自动分类。人工智能应用中燃料使数据、驱动引擎为算法,算法是工智能的核心。算法就是解决问题的步骤与方法,其中涉及到很多的数学、数据结构的问题,所以基础学科的知识是人工智能技术的发展支柱[4]。

人工智能主要有包含人工神经网络、机器学习等,但近年来人工智能的代表技术就是深度学习,深度学习的原型就是浅层的人工神经网络[5]。深度学习模型简单的来说就是在人工神经网络的基础上增加内部层数,最早期的研究模型是10层,后面可增加到50层甚至上100层。深度学习模型层数的增加带来的问题包含学习参数的增加以及学习过程不容易收敛等问题,这些问题的解决需要更对学者参与。而深度学习能刺激人工智能的发展并成为其主流的原因是深度学习中学习方法的突破。

人工智能在学术上的突破使得人工智能技术在应用上获得了全面的关注,人工智能在教育、交通、医疗、安防、金融等领域都获得了成功利用,如无人驾驶、自动翻译、语音识别、人脸识别、人脸表情识别等。人工智能知识的教学现在已经贯穿了我们国家的整个教育体系,从小学到中学,从大学到各研究机构都在学习人工智能、使用人工智能,人工智能技术的研究能为我们提供速度更快、精度跟高的智能算法。

人工智能技术中的深度学习现在最主要的问题是缺乏理论上的支持,也就是为什么要这样设计,其能运 行的原理是什么?现在的深度学习模型无论对使用者还是研究者而言都无法知晓其内部结构会产生怎样的作用,无法从数学的角度解释。人工智能的发展还存在一些约束,如:是深度学习模型的学习驱动需大量的标签数据,标签数据的获取代价很高;二是深度学习收敛慢,学习时间长,一般都以天为单位,其需要强有力的计算能力作为支撑;三是深度学习平台多,相互不兼容,平台配置复杂。四是作为中小学生可以在平台上完成一些简单问题的操作但很难了解人工智能原理及执行过程。

智慧校园、智慧教室、基于线上与线下的混合智能信息教学辅助丰富了人工智能在教学以及教学管理中的应用。在人工智能高速发展的背景下,将人工智能与数据结构的课程教学融合是为了老师更好地教,学生更好地学,在课程的知识中扩展人工智能相关知识点,使学生了解与该课程相关的人工智能新知识。

二 数据结构课程与人工智能的融合

数据结构属于计算机硬件、计算机软件与数学三门学科之间的一门信息类专业课程,内容包含数据结构的基本概念、数据的逻辑结构、数据的物理结构以及对应的操作[6]。数据结构课程分为三个部分,理论课,实验课以及课程设计,这三个部分本身是一个整体,但由于课程本身具有一定的难度,部分学生学习困难,学习积极性不高,导致实验内容很难开展,课程设计也很难完成。针对这门课程学习中出现的问题,提出了人工智能背景下数据结构的教学改革方法。此项改革又可能引起新的问题,学生数据结构课程都学不好,又在学习中引入更难的人工智能知识是否合适?部分学生学习效果不是理想的原因很多,但一个主要的原因是没有目标,没有感受到知识带来的成就感。理论上讲,学生通过老师的课堂教学掌握学习的基本知识,并能利用编程解决实际问题就会使学生有成就感,会增强学生自主学习的动力,若能了解前沿的新技术,会进一步激发自我学习兴趣,更好地去主动学习课内甚至是课外知识。数据结构与人工智能的融合不是知识相加,而是将数据结构中的部分知识点升华到人工智能的对应知识中。

(一)在课程中引入人工智能背景

在数据结构的课程中要引入人工智能背景对老师的要求较高,要求老师要熟悉人工智能知识并熟悉相关智能算法的原理以及应用领域。老师在课堂上利用图片、视频资源展现人工智能的应用成果,解释其发展过程以及应用效果,其过程要能给学生带来视觉上的冲击,让学生感受人工智能带来的震撼与科技的魅力,引发学生的学习兴趣。

人工智能包含的技术很多,在引入人工智能背景时老师要使用学生能接触到的人工智能成果,让学生了解什么是人工智能,在哪些领域可以使用人工智能。以基于人工智能的人脸识别系统为例,该系统可以应用在汽车站、火车站以及机场等地的安防,警察也可以应用它进行犯罪嫌疑人身份确认,支付宝使用人脸识别进行刷脸支付,银行可以支持客服在ATM上刷脸支付等[7]。在了解其应用的前提下熟悉人工智能技术的使用流程,主要包含基于标签数据的学习以及无标签数据的测试,在学习过程的人工智能学习算法是核心,可简单介绍其基本原理,引导有兴趣有能力的学生进一步去学习探索。

(二)知识点的融合

数据结构主要研究的数据对象之间的关系以及对数据对象的操作,数据结构中的线性结构比较简单,主要是一些基本的算法与应用,非线性结构中树、图比线性结构难,主要涉及到数据的存取与一些经典算法。数据结构中与人工智能相关的知识主要是树与图[8]。数据结构中的树的知识点可以与人工智能中的决策树、随机森林融合,在讲完树的基本概念与基本操作后,讲树的应用可以引入新的知识:决策树的创建与使用。随机森林本质上就是多个决策树分类器的组合,其知识也属于树的范畴。

在机器学习中,决策树可以完成数据的分析与预测,其结构为树形结构。数据对象用树中节点表示,对象的某个可能的属性值用分叉路径则表示,而叶结点对应从根节点到此叶节点所经历的路径所表示的对象的值,它由它的分支来对该类型的对象依靠属性进行分类。每个决策树可以依靠对源数据库的分割进行数据测试。这个过程可以递归式的对树进行修剪。当不能再进行分割或一个单独的类可以被应用于某一分支时,递归过程就完成了。

数据结构中图也称为网,包含图的存取结构、图的遍历、图的最小生成树、关键路径、最短路径等,数据结构中图可以与人工神经网络、深度学习融合。在人工神经网络、深度学习中知识利用图的概念,其知识是延伸的新的知识。大脑中的神经元的连接相当复杂,现有一门学科称为脑科学专门研究大脑的结构组成。人工神经网络模拟了人的大脑结构,属于一种重要的机器学习算法。人工神经网络具输入输出层、中间层,我们把要学习的数据输入到神经网络的第一层。通过层之间的连接把输入数据通过神经元传递到第二层。第二层的神经元同样利用神经元把数据传递到第三层,以此类推,直到最后的输出层生成结果。每一个神经元都有权重与偏差值,这个权重与偏差值就是学习所得到的参数,其正确与否与其学习任务直接相关,最终的输出由这些权重与偏差值利用函数求和来决定。深度学习(DL,Deep Learning)是神经网络的改进,增加了网络中间层的数目,按照层进行学习,是机器学习(ML,Machine Learning)领域中一个重要的技术里程碑。深度学习使其更接近于人的大脑学习,它的最终目标是使机器能够具有像人一样的学习能力,能够识别文字、图像和声音等数据。深度学习由于中间层数目的增加也增加了系统的复杂性与学习的难度,是一个复杂的机器学习算法,在图像识别和语音识别中取得了很高的精度,远远突破了原有技术精度的极限。

(三)人工智能案例的实现

Caffe是利用C++开发的第一个深度学习的框架,系统配置比较复杂。但Caffe中的模型的定义、最优化 参数设置都使用文本格式说明,只需要搞清楚模型每层之间的逻辑关系就可以设置,无需编程,新手可以很容易上手。Tensor-Flow是一个使用数据流编程的符号数学系统,是在谷歌的神经网络算法库Dist-Belief的基础上开发的,在各类机器学习算法被广泛使用。Tensorflow使用多层级结构,在谷歌内部的各领域的科学研究品和产品开发中被广泛使用,可部署于PC终端与各类服务器是上,并支持TPU与和GPU的高性能数值计算。PyTorch是Facebook利用Python语言在深度学习框架Torch的基础上重写的一个全新的深度学习框架,具有了NumPy的众多优点,且支持GPUs计算,在计算效率上优势要比NumPy明显。利用PyTorch的API接口,可以快速进行深度神经网络模型的搭建和训练。

飞桨(PaddlePaddle)提供了基于产业实践的开源深度学习平台,初学者可以利用该平台开展人工智能的学习之旅。飞桨(PaddlePaddle)无需用户搭建平台,直接在WEB页面选择练习案例,下载实验数据,利用简单的命令就可完成深度模型的训练与测试。如线性回归:使用真实的数据集合创建一个房价预测模型。数字识别:在我们开始学习编程时,编写的第一个程序一般是实现输出“Hello World”。而机器学习(或深度学习)的入门教程一般采用MNIST数据库进行手写数字的识别,原因是手写数字识别在图像分类问题属于比较简单的问题。飞桨(PaddlePaddle)系统中的案例还包含了个性化推荐、分词系统、语义标注、情感分析、机器翻译等。其它平台需要用户自己对系统进行配置安装,需要编程才能完成深度模型的学习与测试,对于有兴趣且编程能力强的学生可以在老师的指导下尝试编译学习平台案例并将其应用到实际的工程项目中。

三 基于智能信息平台的的数据结构教学实践

随着人工智能与信息技术的发展,智能辅助教学平台百花齐,教育部在线精品课程申请时认可的平台如爱课程(中国大学MOOC)、学堂在线、智慧树、北京高校优质课程研究会、优课联盟、好大学在线、网易云课堂、华文慕课等。这些平台主要提供的功能包含用户管理,教学计划、教学视频资源以及课后测试管理等功能。学生可以根据老师布置的任务在系统中通过课程知识点视频进行预习、自测,在线下课堂教学中根据自测结果理解老师精讲部分较难的知识点。我们借助智慧树平台进行数据结构的线上线下混合式教学,在平台中提供老师自己录制的数据结构课程的视频。视频内容分为两个层次,一是线上预习内容,学生可以在课前预习课堂知识,了解其相关的基本概念并把自己搞不清的问题提出来,便于老师在课堂上能根据学生的情况有针对性讲解;二是课程中的经典核心算法的讲解视频,可以让上课没有完成掌握的学生在课后进行再学习。利用线上习题对学生进行测试,了解所学知识的掌握程度,督促学生积极学习掌握课程的知识点。

数据结构不仅理论抽象,而且实践性也很强,要求学生具有扎实的C/C++高级程序设计语言编程知识,利用编程完成数据结构各部分的基本操作并应用到具体的实际问题中。学生在上好数据结构理论课的同时还需要扎实的程序设计知识来完成上机实践。与数据结构实训相关的智能平台有国防科技大学的Educoder网络教学平台[9]与浙江大学的拼题系统[10]。Educoder有实践课程、翻转课堂、实训项目、在线竞赛、教学案例、从包创新、交流问答等模块。我们以班级为单位组织学生,在Educoder平台上发布实训作业并提供测试用例,让学生在线编程答题,系统会自动检测学生答题是否过关,并根据学生的答题时间给出排名。根据学生的学习情况选择优秀的学生参加系统里组织的绿色计算的相关比赛。将数据结构中的知识点与人工智能技术融合,让学生了解什么是人工智能,怎么学习人工智,在Educoder系统里也提供了相关人工智能课程的课程与实训内容,学生可以自主学习。

拼题系统是一个程序设计类实验辅助教学平台,现有515所高校的1166000多名注册用户使用该系统,2800多位老师共同建设,系统中有56000多高质量题目。我们老师在拼题系统中的题目集中选择数据结构相关的题目进行筛选、分类整理成自己的题目集,向学生提供数据结构题目集的共享码让学生使用。系统可以检测学生的编码是否正确、代码的提交时间以及在班级中得分排名,系统还可以对学生的代码进行查重,防止学生复制代码。

四 结语

在人工智能的背景下数据结构的课程教学改革主要分为两个层次,第一是在数据结构课程的教学过程中引入人工智能背景让学生了解哪些地方使用了人工智能,什么是人工智能。让学生思考在自己的大学学习中哪些会与人工智能相关,自己能为人工智能做点什么?第二是在课程教学中将数据结构与人工智能的知识点融合,让学生尝试去学习、实现人工智能的相关算法,在编程实践环节利用智能信息平台进行管理。

猜你喜欢
数据结构深度人工智能
数据结构线上线下混合教学模式探讨
深度理解一元一次方程
为什么会有“数据结构”?
深度观察
深度观察
2019:人工智能
人工智能与就业
深度观察
数读人工智能
下一幕,人工智能!