APP下载

机器学习通识课程建设与教学实践探索

2019-02-26王变琴孙雪冬陈薇薇

计算机教育 2019年12期
关键词:通识机器基础

王变琴,孙雪冬,陈薇薇,刘 陂

(1.中山大学 公共实验教学中心,广东 广州 510006;2.中山大学 图书馆,广东 广州 510275)

0 引言

人工智能技术已经成为国家重要发展战略[1]。机器学习作为人工智能领域的一个重要分支,成为当前数据智能时代的热点领域之一。机器学习是通过计算机模拟或实现人类的学习行为,以获取新的知识或技能,并不断改善自身的性能,它是计算机具有智能的根本途径。通俗来讲,机器学习通过建立计算模型,从已有的数据实例中发现内在规律,并对未知的数据实例进行判断。当今大数据时代背景下,机器学习技术发展迅速,应用场景不断扩宽,日渐渗透到生产和生活服务的各个方面。高校需要与时俱进、顺应时代,加强培养更多具有机器学习理论与应用实践能力的人才。目前高校的机器学习课程多数是面向高年级本科生或研究生的必修课或专业选修课[2-8]。机器学习通识教育亟待探索机器学习通识课程建设和教学模式。

1 机器学习通识课程设计

1.1 Python作为实践教学工具

从实践入手是最有效的教学手段,如何选择机器学习应用实践工具进行操作,直接影响课程的教学效果。教育部已经明确将Python 语言列入我国高中教学内容[9]。Python 语法简单灵活、易学易用,对非计算机专业的人员极为友好,目前国内外众多高校将其作为非计算机类编程基础课的首选语言,也是当前人工智能、机器学习的通用语言实践工具。Python 像其他脚本语言一样,代码精简、易读,具备面向对象语言的各种功能,开源和跨平台的特性为它带来众多的贡献者和使用者,使其有强大的内置库和第三方库,并维持良好的生态环境。

Python 的综合实践平台Anaconda 集成了数据科学和机器学习中常用的软件库,包含Jupyter Notebook、Numpy、Scipy、Matplotlib、Scikit-Learn 等,其中Jupyter Notebooks 是基于Web的交互式开发环境,便于数据分析过程的展示,NumPy 与SciPy 主要用于向量、矩阵和复杂科学计算,Matplotlib 是用于数据可视化的绘图库,Scikit-Learn 内置许多经典机器学习模型,Pandas擅长数据分析处理。此外,在实践教学中还用到Google 的开源深度学习库——TensorFlow。

基于Python 的机器学习应用实践,可以有效降低专业背景、编程基础差异对教学效果的影响。

1.2 通识技能培养目标

根据通识课程,学生来源广泛、基础差异,以及机器学习的特点,并结合技术类通识课程的培养目标[10-11],细化课程在知识、能力、情感方面的具体教学要求:①了解机器学习的魅力、现状与发展动态;②掌握机器学习概念、术语、学习方法;③掌握机器学习建模、模型选择与评估的方法论;④掌握经典有监督机器学习算法的原理与应用实践;⑤掌握经典无监督机器学习算法的原理与应用实践;⑥掌握深度学习经典模型——卷积神经网络(CNN)和循环神经网络(RNN)的原理与应用实践;⑦掌握Python 编程基础及其机器学习应用实践技能,学习Scikit-Learn 和TensorFlow 解决实际问题的方法论,激励学生进行深层探究,并结合自己专业领域创造、拓展新的应用方法;⑧培养兴趣,开阔视野,扩展知识领域,激发跨领域思考,培养学生计算思维与数据分析思维,提高综合能力素养。

1.3 普适化的教学内容

如何建立一个科学、合理的教学内容体系,对于教学效果至关重要。机器学习通识课同样要求具有一定的数学基础和计算机基础,尤其是编程基础。对于数学基础知识点的缺失,通过发布课前阅读资料预习和课堂临时补充可以基本扫除学习障碍,而对于学生普遍薄弱的编程基础,则需要增设专门课时进行学习、训练。内容设计与通识课程的培养目标相结合,使机器学习的专业知识普适化,专业技能通用化,按照照顾基础、保留经典、关注前沿、重在应用实践的原则进行设置。

开展实践教学,首先需要熟练掌握课程实践教学工具。针对编程能力较弱,实践教学困难的现状,在课程内容中增加了约占总课时三分之一的Python 基础编程知识串讲及其科学计算库基础操作训练,为后续的实践教学夯实基础。我们对广泛的机器学习内容进行简化与整合,舍弃一些偏深、偏难、专业性强和存在争议的内容,选取简单易学而又通用、普适化的内容,侧重机器学习基本概念,学习范式、方法论经典算法的原理与应用,并适当涵盖最新技术——深度学习,构成覆盖基础、经典算法、前沿技术的教学内容体系,见图1。

课程内容共计18 讲,第1 讲为机器学习概述(机器学习概念、学习方法、建模流程);第2 讲至第5 讲为机器学习实践基础(实践环境配置、Python 语法基础与其机器学习实践基础、TensorFlow 编程基础);第6 讲至第14 讲为机器学习经典算法(k 近邻、朴素贝叶斯、线性回归、逻辑回归、支持向量机、决策树、集成方法、kMeans 算法、DBSCAN 算法、Apriori 算法);第15 讲为模型评估与选择的方法论;第16 讲至第17 讲为前沿技术(卷积神经网络、循环神经网络);第18 讲为大作业展示和课程总结。整个课程内容由易入难,循序渐进,自然衔接,尽量做到内容系统化,并且有一定的弹性空间,在教学实践中,可以因材施教、按需调整选取。

理论内容与应用实践密切结合。实验根据理论知识点设计,作为理论教学的深化和补充,辅助于加深、拓展对知识点、算法原理的理解和掌握,并提升学生的实践动手能力和应用创新能力。实践环节有每讲一练的单元实验和开放式综合大作业等,具体见2.2、2.3 节。

图1 机器学习基础通识课程内容体系

2 教学模式探索

案例演示教学是直观解释算法原理的一种方式,实践环节是培养能力的重要手段,即时在线课程管理、综合考核方式能够有效辅助教学。

2.1 案例演示教学

课堂理论教学是学生获取知识的直接渠道。机器学习内容的知识点分散,算法原理理论性强、抽象、不易理解,学生普遍对此缺乏学习兴趣和学习热情。如何调动学生的学习积极性和激发学习兴趣,如何把枯燥无味的算法理论原理讲解得深入浅出、生动有趣、易于理解,排除畏难情绪是机器学习理论教学中最具挑战性的问题。

案例演示教学通过实例演示使抽象理论变得直观易懂,使教学过程更加生动活泼,能够启发、引导学生积极思考。从绪论课——有趣的机器学习应用实例开始,例如,手写体数字识别,利用训练好的模型对即时手写数字进行识别分类,给出识别结果,让学生初识机器学习的基本概念、术语、学习方法、建模流程、算法的应用实践等,并通过大量机器学习在图像处理、自然语言处理、语音处理等领域的应用,使学生能够直观感受到机器学习的应用价值和无限的市场前景,从而对课程产生浓厚的兴趣和期待。案例演示教学贯穿整个教学过程,在机器学习算法部分,例如SVM 算法,直接讲解原理太过抽象,存在大量数学公式推导,从有趣的应用案例引入,提出要解决的问题。利用SVM 算法对手写体数字识别,然后通过Jupyter Notebook 演示解决问题的过程,并尽可能对结果可视化,在学生对算法应用获得直观感性认识的基础上,再从案例中抽象、归纳算法的思想原理,涉及的公式等,并进一步分析算法性能、拓展空间及应用场景,形成“实例引入—算法应用实现演示—理论原理分析”的教学模式。通过案例从感性认识入手,讲授、演示、观察、同步操作、解释,达到化难为简、寓教于乐的效果,并直接打通从理论到实践应用的鸿沟,增加内容生动性和趣味性,激发学生的探究兴趣和学习积极性。

配合教学知识点,基于Jupyter Notebook开发了丰富的课堂教学演示案例,用于交互式执行、演示。传统经典算法通过机器学习框架Scikit-Learn 的实现,常用深度学习模型通过深度学习框架TensorFlow 的实现。课堂演示案例利用现成框架建模,简单易实现,代码简洁,效果明显,具即现功能,特别适合初学者的认知学习过程。

2.2 扩展性实验设置

实践教学要着眼于提高学生的应用实践能力,实践教学的重要性已成为许多课程的共识[10]。按照教学目标对实践能力的要求,并配合理论知识点,精心设计每个单元实验,以实践性作业形式发布,要求学生在课外完成(每周课外至少2~3小时)。实验内容包括以下几方面。

(1)实验环境配置,包括安装Anaconda 和TensorFlow 以及开发环境Jupyter Notebook 的基本操作。

(2)Python 机器学习基础,包括基本编程训练和科学计算库Numpy、matplotlib、Pandas 的应用,机器学习库Scikit-Learn 的应用。

(3)综合运用TensorFlow 各种组件,包括Tensor 对象、Graph 对象、Op、Variable 对象、占位符、Session 对象以及作用域,基于虚拟草图创建TensorFlow 数据流图,如何利用TensorBoard做可视化的数据汇总。

(4)经典模型应用实践,包括kNN、Naïve Bayes、Logistic Regression、SVM、Decision Tree、AdaBoot、GBDT、Random Forest、kMeans、Apriori、CNN、LSTM 算法模型。每个算法都设计有独立的单元实验。

实验设置具有如下特色。

(1)大量实验项目。每个单元都设置有实验项,分为必做和选做,通过完成必做实验的基本任务,使学生获得机器学习应用实践的基本技能。在必做完成的基础上,学生可以根据自己的兴趣完成选做实验。

(2)拓展实验操作。每个实验的难度由易到难,层层深入拓展。每个实验的基本任务之后都有设有一定难度和灵活性的实验作业习题,用于拓宽、拓深实验内容,学生可根据自身专业背景、知识层次以及兴趣选做,目的在于个性化培养,挖掘学生个体的潜能。

(3)配套实验指导。每个实验的基本任务部分都编写有详细的实验过程指导和提供部分代码,便于学生操作验证、模仿、快速得到结果,从而获得成就感,而产生继续探究的兴趣和欲望。实验指导内容包括实验目的、实验简介、实验步骤(数据描述、准备数据、分析数据、建模、测试模型、模型应用实践)和实验操作习题等内容。

2.3 开放式综合大作业

综合性应用实践能力是课程的高层培养目标。大作业属于机器学习综合应用实践环节。课程中期,在完成基础实践训练、经典算法应用实践之后,会发布大作业具体要求:学生自由组队(2~3 人),根据自己的专业和兴趣自选题目(图像数据、文本数据,序列数据等),通过查阅相关资料,确定任务、设定目标,利用课程涉及的实践工具完成一个包括数据准备、建模、模型评估、模型应用的机器学习项目,期末前提交项目报告(包含代码),并择优进行课堂展示。报告内容包括选题背景、开发环境、数据源及数据处理、模型设计、模型训练、模型评测、结果分析、结论、创新点、参考文献等。在展示环节,学生不仅从形式各样的选题中获得机器学习应用的乐趣,还能了解其他同学奇思妙想的解决问题思路方法。

大作业的目的在于培养、考查学生的协作交流、知识互补、激发思辨、知识的学以致用、查阅资料和阅读文献、寻找问题、解决问题、机器学习与实践问题对接的综合创新应用能力,也为有潜质的学生尽情展示自己所能提供机会。

2.4 即时在线管理课程

利用即时通讯工具管理课程是一种与时俱进的有效途径,创建课程QQ 群辅助教学。教师通过QQ 群分发教案、实验、参考资料等资源,发布重要通知、作业(通过FTP 服务器接受作业),向学生推荐网络视频教学、技术专题、补充阅读、电子书、论文、数据集、开源工具箱、学术论坛等共享资源,引导学生有效地使用这些资源,丰富和充实教学内容,并能及时查收学生的提问、反馈信息等。学生通过QQ 群可以进行自主学习、在线提问,并及时获得老师和同学的答疑解惑。学生不会因为遇到问题不能及时解决而产生挫败感,失去继续学习的信心而导致学习中断。学生可以自主参与讨论,分享经验知识,在其完成课外实验的过程中起到重要的作用。学生在QQ 群中的表现也融入考核,目的在于激发学生主动提问、参加讨论、发现问题,形成了良好的师生互动、学生互学氛围。

2.5 重过程的考核方式

由于学生专业背景、课程基础差异,对课程的预期和对知识理解、掌握不尽相同。单一的闭卷考试不能真实地反映学生的学习效果。课程考核方式注重实践应用能力的评价与对学习过程的评价相结合,将考核渗透到整个教学过程。采用综合考查,成绩按百分制计算,综合评定成绩的方法,见表1。

表1 综合评定考核项与权重 %

根据平常布置的必做单元实验作业的提交情况和完成质量(代码文件和完成实验报告)给出单元实验成绩,选做实验作为参考酌情加分,通过单元实验考核,使学生意识到实验环节的重要性,从而积极认真地对待每次实验。开放式综合大作业成绩按照提交的项目报告(含代码文件)是否完整(包括实验目的、实验原理、实验内容、实验步骤和实验中遇到的问题及解决思路等内容、参考文献等),是否能够融会贯通、学以致用,是否有创新、有亮点等给予评定。课程表现包括上课主动提问、参加课程讨论以及在QQ群中的在线活跃度、分享知识情况等;课程报告要求对课程内容知识点进行梳理归纳、体系化,对教学中存在的问题进行反馈、建议等。这些在一定程度上能够反映学生的学习态度、学习积极性以及知识掌握情况。

3 结语

中山大学从2017 年春季开始,面向本科生开设机器学习基础通识课程,总学时数为36,2学分,属校级科技类核心通识课,从课程目标定位、内容设置、教学方法、课程管理、考核方式等方面进行系列探索和尝试,摸索机器学习通识课程建设与教学模式。课程教学更加关注机器学习算法的应用实践,加强理论与应用实践的紧密结合。经过多轮教学实践,课程不断完善,从课堂反馈、课程报告以及学校征集的评课结果表明,大部分学生受益匪浅,基本实现了预期培养目标,教学效果良好,课程广受学生欢迎。该课程有相对完整的配套教学资源,包括通俗易懂的课件、丰富的教学演示案例、翔实的实验过程指导以及用于随堂测试和课后复习、涵盖知识点、重点、难点的习题。这些教学资源在深度、广度上皆可伸缩,实际教学中可以针对性的对其内容进行调整、优化,并进一步丰富教学方法和手段,提高教学效果。教学中仍存在许多问题,如课堂气氛不够活跃,今后考虑加入翻转课堂等元素,让学生多一些参与,营造更加活跃的课堂气氛。

猜你喜欢

通识机器基础
机器狗
机器狗
夯实基础,举一反三
夯实基础,举一反三
未来机器城
“防”“治”并举 筑牢基础
通识少年小课堂 无线电寻宝之旅
通识少年“种”石油
通识少年小课堂 血液之旅
通识少年·拿破仑