陆雅楠 谢作如 丛培珊 上海人工智能实验室
国务院《新一代人工智能发展规划》的印发,促使面向中小学生的人工智能教育活动应运而生,但这些活动几乎都没有涉及新一代人工智能技术的核心——深度学习。几年前,笔者曾与多位担任过国家级大赛评委和组织者的专家就这个问题进行交流,得到的反馈是深度学习太难了,中学生不具备相关知识水平和能力,而且已经开展“深度学习”教学的中学也不多,再加上这类活动会涉及数据、算力和算法三大要素,规则设计比较困难。
《义务教育信息科技课程标准(2022年版)》的发布,标志着人工智能开始成为国家课程的一部分。那么,能否在中学组织一个以深度学习为内容的AI活动呢?笔者非常熟悉并喜欢面向成人的AI竞赛——Kaggle,因而希望参考Kaggle的规则,设计一个吸引广大中学生参加的深度学习活动,探索青少年AI科创活动的新形式。
Kaggle的比赛形式是参赛选手通过组委会给定的训练集,设计算法并训练模型,再利用测试集算出结果来比较算法的性能。要想在比赛中获奖,选手需要有较强的数据分析和编程能力,并深刻理解深度学习的原理。那么,组织面向中学生的Kaggle比赛是否可行?下面从三个方面进行分析。
这一轮人工智能的兴起,就在于深度学习的成功,因而深度学习的重要性不言而喻。但深度学习的网络模型非常复杂,在中小学开展深度学习技术教学颇具挑战性。因此,面向中学生的人工智能课程定位应和高校有所不同,关注的重点不是理解深度学习背后的数学原理,而是引导学生以深度学习为工具解决真实问题。随着AI技术的普及,越来越多的“低技术门槛”的AI开发工具相继出现,学生只要具备Python语法基础,就能熟练使用这些AI开发工具。
“低技术门槛”AI开发工具的出现,又带来了新的问题。例如,MMEdu工具内置很多SOTA模型,如果学生都使用MMEdu来参加,是不是就无法区分学生的水平了?
实际上,使用MMEdu的SOTA模型来训练,也需要做好三个重要的环节。首先是数据预处理,学生需要对数据集进行预处理,如缺失值处理等。数据特征会直接影响模型的预测性能,因此这个步骤对结果非常重要,可以作为衡量学生水平的要素。其次是模型的选择和参数调整,学生需对不同模型进行比较,通过调整超参数优化改进模型,如学习率、优化器等。最后,Kaggle比赛一般还会涉及一个后处理步骤,就是对模型预测的结果做进一步处理,如分类问题中调节分类决策界限,达到让预测结果拟合实际数据的目的,或者是检测任务中nms策略的选择,因此后处理环节也可作为选拔高水平学生的一个加分项。
不同的框架可以实现相同的算法,但是复杂程度不同,上手难度也有较大差异。从趋势上看,AI开发框架的使用门槛终将越来越低,方便中学生上手的工具也会越来越多。AI活动应该崇尚开放,不限制学生使用的开发框架,做到“八仙过海各显神通”,结果一般和开发框架无关,取决于学生对数据集的整理、算法模型的选择、参数的微调等。因此即使使用不同的AI开发框架,依然能区分水平。
活动流程主要包括试题理解、数据预处理、模型的选择、参数调整、训练模型、改进模型、预测结果、导出结果等步骤。每组学生(2~4人一组)根据任务描述,通过建立模型对试题发布的数据集进行分析,数据集分训练集、验证集和测试集三个部分,其中训练集用于训练,验证集供学生进行验证和模型调整,测试集仅提供图片,不提供标注,需要学生通过训练好的模型为测试集标注,并提交结果,结果的准确率将作为评分的一部分。每组最终提交的作品需包括导出的数据预测结果、报告、源代码和运行方式。
每份作品将根据评估指标进行评分和排名。准确率的评价指标为预测正确的准确率(准确率=正确的分类个数/测试集图片个数),再对准确率排名进行分数转化,第一名获得100分,第二名98分,以此类推2分递减。如果出现平局,优先提交的作品将获得更高的排名。
提交的报告由专业评委进行评分。最后综合准确率排名得分、提交的报告、现场答辩评分以及使用方法创新性计算出最终得分。
最终得分计算方式为:准确率排名(70%)+报告撰写&答辩评分(20%)+使用方法创新性(10%)。
体验试题1:
陈老师是一位美术老师,有收集学生手绘作品的习惯。每年都有新的同主题的作品加入,陈老师觉得应该按照主题重新分类整理,可是因为数量庞大导致整理困难。因此,将试题设定为帮助陈老师给学生手绘作品分类。发布的手绘图案数据集为自制数据集,有超过1000张图片,包括4个大分类,每个大分类里有4个子分类,共16种手绘图案,要求学生利用人工智能技术,自动识别图片中的图案属于何种分类,完成测试集的分类。
数据集具体介绍:
①训练集,供学生训练数据使用,已经为学生完成标注,所有图片命名方式为“类别名称+id.jpg”,如“kaixin0.jpg”。每个大分类1个文件夹,共4个文件夹,每个文件夹内有4个子文件夹,命名为子分类的作品类别,如“kaixin”,同类别的图片存放在同一个文件夹下。
②验证集,供学生进行验证和模型调整,和训练集整理方式一致。
③测试集,共256张图,分为4个文件夹,是4个大分类的待整理的手绘作品,每个文件夹64张图,命名方式是“id.jpg”,如“1.jpg”。
体验试题2:
“生物多样性保护”一直是一项重要而艰巨的任务。随着人工智能技术的发展,人工智能在工业、农业、医疗、教育等领域广泛应用,人工智能助力生物多样性保护的研究也渐受关注。陈先生是动物园百鸟园的一名新饲养员,他正苦于分不清楚各种鸟。因此,以帮助陈先生为鸟类分类为目标,动员学生参与到人工智能应用的探索中。发布的鸟类图像数据集为网上相关数据集的组合,是一个鸟类20分类数据集,有超过3000张图片,学生利用人工智能技术,自动识别图片中的鸟属于何种分类,完成测试集的分类。
数据集具体介绍:
①训练集,共20个子文件夹,所有图片命名方式为“类别名称+id.jpg”,如“ABBOTTS BABBLER0.jpg”,同类别的图片存放在同一个文件夹下。
②验证集介绍同试题1。
③测试集,共100张图,命名方式是“id.jpg”,如“1.jpg”。
笔者邀请了数十名有Python编程基础,并学习过“深度学习入门”和“深度学习之图像分类”相关课程的学生,分组参加模拟试题体验。分析学生提交的预测结果、报告和代码可知,大部分学生都是在CPU上训练2~3天完成的测试,因此没有GPU环境也不用担心。数据预测结果的准确率差距还是较大的,手绘图案测试集准确率在85.55%和60%之间,鸟类图像测试集准确率在92%和85%之间。完成率非常高,大部分学生能够运用所学知识完成整个流程。
很多学生考虑到了需要扩充数据集,使用平移、翻转、裁剪、亮度等数据增强操作对图像进行处理,这样做能够有效提高模型的泛化能力。在模型的选择和调参方面,学生的做法也都不一样。例如,手绘图案分类任务,有的学生认为属于灰度图,可以直接使用MMEdu的demo程序,选择“LeNet”模型,修改了“num_classes”“save_fold”等参数,“lr”设置为0.01,“epochs”设为50,但是验证集准确率比较一般,仅稍稍超过50%,在最佳准确率的权重文件基础上,调低“lr”继续训练了若干轮准确率也没有太大提升。有的学生想到更换模型为“MobileNet”模型,“lr”仍然设置为0.01,训练后记录验证集最佳准确率可以超过88%,甚至物理符号的验证集准确率达97%。还有的学生在报告中提到训练鸟类数据集时设置相同的参数,“ResNet50”模型的训练时长比“MobileNet”模型缩短了一半,可见学生能主动尝试各种算法模型的比较。
根据可行性分析和模拟试题的测试反馈,笔者认为中学生有能力参加此类活动,在活动中提高数据分析能力、算法设计和代码编写相关的技术技能。概而言之,设计一个深度学习活动对青少年人工智能教育有重要的推进作用,能让学生亲历使用深度学习技术解决问题的过程,体会新一代人工智能技术的强大功能。