基于人工智能的大学计算机基础综合实验设计
2020-09-26张立民张兵强
刘 凯,张立民,张兵强
(1. 海军航空大学 航空基础学院,山东 烟台 264001;2. 海军航空大学 信息融合所,山东 烟台 264001)
作为新一轮科技革命的重要方面,人工智能理论与技术是当今科技领域最受重视、最值得关注的技术前沿[1-2]。军事院校是培养高素质军事人才的主要平台,所培养的学生都要面对未来战场,需要适应未来战场环境,满足未来战争需求[3-4]。因此,军校的教育需要应对新军事变革要求,积极引入国内外先进科学技术,不断更新教学内容与教学方式,培养学生的探索创新能力。大学计算机基础是军校计算机类的公共基础课程,任务是向学生传授计算机技术的基础知识与基本技术,是学生入校后接触的第一门新技术课,也是学生未来岗位必须要掌握的技能。在新的人工智能时代,探索如何将大学计算机基础课程内容与人工智能理论有机结合,如何设计基于人工智能的大学计算机基础综合实验方案,对于激发学生兴趣,开阔学生视野,提升学生使用计算机解决复杂军事问题的能力,具有十分重要的意义。
1 大学计算机基础综合实验设计目标
依据军队院校非计算机专业计算机基础课程教学基本要求,其教学目标是:从培养学生科学认知能力出发,让学生理解和建立“信息、计算、智能”三大核心科学概念;培养学生掌握以“合理抽象、高效实现”为特征的构造计算机解决实际问题过程的能力;让学生了解计算机学科的发展,向学生展示计算之美[5]。由此可见,大学计算机基础综合实验的设计目标是提升学生计算机使用能力、计算机系统认知能力以及使用计算机解决实际问题的能力[6]。结合实战化教学需求,应从以下四个方面对学生进行训练:
(1)计算机理解与程序编写。结合军事背景,对计算机工作流程与程序控制进行模拟。采取CPU工作模拟、指令解释模拟以及数据流控制仿真手段,完成实验任务。加深学生对计算机工作原理的理解,并锻炼学生程序编写、调试能力[6]。
(2)数据思维。对军事任务数据进行分析、求解,采取数据采集、数据预处理、数据分析以及数据解释等步骤,完成实验任务。帮助学生建立实际问题数字化、计算化的思维,即把实际问题译成数据问题或把数据问题译成实际现象的多维分析思维[7]。
(3)逻辑思维。对军事任务数据进行归纳总结,采取数据统计、模型选择、参数调节以及结果分析等步骤,完成实验任务。提高学生依据实际问题选择合适思维模式进行判断、推理活动的能力,以及比较、分析、综合、抽象、概括等思维水平[8]。
(4)系统思维。对军事任务数据进行有效管理,采取任务规划、需求分析、概念模型设计、逻辑模型设计、系统运行及维护等步骤,完成实验任务。促进学生运用系统观点,将对象互相联系的各个方面及其结构和功能进行系统认识,从而认识和把握整体[9]。
2 大学计算机基础综合实验设计方案
2.1 实验体系架构
综合实验以课程知识点为基础,按照计算机理解与程序编写、数据思维、逻辑思维、系统思维等四层进行组织。综合实验知识点架构如图1所示。
从图1可以看出,综合实验均以Python基础为出发点,通过不同的实验任务,对大学计算机基础课程的知识点进行涵盖,最终达成实验目标。
2.2 综合实验任务描述
针对四层综合实验体系,以实际军事任务为驱动,设置四个相关实验,其中每个实验均分为基本任务与扩展任务,以供不同层次的学生完成。
2.3 机载计算机模拟实验
机载计算机依据自身指令集与计算指令,对雷达送达的目标方位进行计算,获得其危险等级,并将结果输出至平视显示器中。
图1 综合实验知识点架构
2.3.1 基本任务
(1)对compile.py文件进行补充,该文件将target.s计算指令编译为exe文件;
(2)对target_calc.py文件进行补充,该文件读取data.txt文件,获取雷达检测目标距离,判断危险等级,并进行排序;
(3)对cpu_sim.py文件进行补充,该文件读取exe文件字节与目标序列文件,并控制显示输出;
(4)编写 main函数,完成机载计算机目标危险等级计算以及输出流程。2.3.2 扩展任务
(1)更新雷达检测目标危险等级判断方法,增加雷达检测目标属性,判别依据由原有的单一距离变为多维度属性融合(距离、方位、速度),引导学生对target_calc.py进行完善;
(2)应用朴素贝叶斯方法,在给定先验概率的前提下,计算不同目标的危险等级,并进行排序。
2.4 飞行质量判定实验
读取飞行数据文件并依据飞行分析指标对飞行质量进行判定,给出飞行训练优化方案。
2.4.1 基本任务
(1)对read_csv.py文件进行补充,该文件读取飞行数据,并进行数据预处理;
(2)对calc_weights.py文件进行补充,该文件依据飞行分析指标对飞行数据进行计算,得到飞行质量评判等级;
(3)对show_plot.py文件进行补充,该文件根据飞行数据进行实际飞行曲线与标准飞行曲线绘制;
(4)编写main函数,完成飞行质量判定流程。
2.4.2 扩展任务
(1)更新飞行质量分析指标计算方法,增加飞行质量分析指标,由速度、高度、航线扩展为航迹、上升/下降率、俯仰、滚转等,将原有的固定权重进行扩展,设计基于数据相似度的聚类权重计算方法,引导学生对calc_weight.py进行完善;
(2)应用knn聚类方法,针对扩展指标,通过计算指标间相似度,进行聚类分析,从而获得新的权重指标。
2.5 航空装备故障诊断实验
读取发动机传感器数据,并依据数值变化阈值对发动机状态进行判定。
2.5.1 基本任务
(1)对read_csv.py文件进行补充,该文件读取发动机传感器数据,并进行数据预处理;
(2)对calc_index.py文件进行补充,该文件计算传感器数据均值、标准差指标;
(3)对judge_index.py文件进行补充,该文件依据预先设定的逻辑判别准则,计算得出发动机故障状态概率;
(4)编写 main函数,完成航空发动机故障诊断流程。
2.5.2 扩展任务
(1)更新故障诊断方法,使用机器学习模型对发动机正常与故障状态进行分类,引导学生对 BP_baseline.py进行完善;
(2)应用机器学习模型,通过设定学习速率、L2正则化因子系数等模型参数,建立发动机各性能参数与故障之间的非线性映射关系,实现发动机状态的智能化检测。
2.6 航空装备器材管理实验
采用 MySQL构建航空装备器材管理系统,实现器材库存数量的增加、减少、查询等操作。
2.6.1 基本任务
(1)对login.py文件进行补充,该文件实现系统登录功能,通过验证用户名、密码以及权限启动器材管理系统;
(2)对equipment_table.py文件进行补充,该文件包括了器材表格数据的添加、删除、修改以及查询操作;
(3)对mySQLutil.py文件进行补充,该文件是对MySQL数据操作的封装,负责提供数据库连接、数据表创建等SQL语言的执行;
(4)编写 main函数,完成航空装备器材管理系统的启动。
2.6.2 扩展任务
(1)增加器材数量录入方式,实现手写数字识别功能;
(2)应用深度学习方法,通过构建多层神经网络,对手写器材数字进行识别,并完成数据库相关操作。
3 航空装备故障诊断实验案例
下面以前述“航空装备故障诊断实验”为例,详细论述基于案例式教学的综合实验环节。
3.1 实验内容与任务
航空发动机故障是诱发飞行事故的重要隐患,也是影响飞行安全的主要威胁[10]。本实验通过“计算思维”和人工智能理论,解决部队日常机务维护与保障中发动机的定损问题,需要综合运用 Python语言设计、机器学习、数值分析、概率论等相关知识与技术,体现数据思维、系统思维能力与需求分析、系统设计等软件工程理念[11]。
(1)补充完善航空发动机数据准备模块代码,从发动机故障数据集中提取正负样本,用于模型训练;
(2)补充完善航空发动机数据预处理模块代码,运用数据归一化与主成分分析,对样本进行降维等处理,提取主要特征;
(3)补充完善故障识别模型训练模块代码,运用支持向量机(support vector machines,SVM)建立发动机故障识别模型,通过参数调节并结合交叉验证方法,对模型进行校验;
(4)补充完善数据可视化模块代码,运用Matplotlib绘制接受者操作特性(receiver operating characteristic,ROC)曲线,并计算曲线下面积(area under curve,AUC),显示模型训练效果;
(5)补充航空发动机故障诊断程序代码,基于Tkinter实现航空发动机故障诊断窗口可视化界面,能够输入实际数据,并进行故障识别,识别准确率高于80%。
3.2 实验过程
针对实验的基本任务与扩展任务,将实验过程分为两个层次,其实验流程如图2所示。
图2 实验流程
3.2.1 基本任务
在基本任务阶段,引导学生分析已有Python代码并补充,使学生掌握本次实验的基础知识,能够使用Python计算数据的统计学度量,并能依据简单判别准则对发动机状态进行逻辑判断,完成实验任务。
3.2.2 扩展任务
在扩展任务第 1阶段,首先引入人工智能模型SVM,并讲解模型结构和训练方法;然后引导学生分析 SVM 的实现代码,并补充完善;最后指导学生完成SVM的基准模型,扩展学生人工智能知识。
在扩展任务第 2阶段,学生完成基准模型设计并获得实验结果后,设置实验结果对比环节,比较不同模型参数对实验结果的影响,帮助学生设置合理的模型参数和训练参数,解决发动机故障状态检测问题。
在扩展任务第3阶段,通过分析不同模型参数对实验结果的影响,讲解人工智能理论特点与参数设置原则,训练过拟合与欠拟合问题,提升学生使用人工智能理论解决实际问题的能力。
3.3 实验方案
在密切联系部队需求的基础上,指导学生通过较为完整的项目实现,掌握SVM、数据可视化、窗口消息响应等技术,以及应用人工智能理论进行航空发动机故障诊断的方法,熟悉实际问题数字化、计算化的实践路线。
3.3.1 模型实现阶段
首先通过数据准备和数据预处理,获得模型训练数据集与标签集;然后构建 SVM 模型,设置模型参数;随后进行模型训练,待模型训练完成后,检验是否满足AUC不低于0.9的要求,如果否,则返回参数设置环节,对参数进行调节,重新训练模型;最后,若达到模型验证要求,则保存模型文件 Model.pkl至本地。整个过程均在百度AI Studio平台进行。
3.3.2 系统实现阶段
首先分析航空发动机故障诊断程序界面需求,设计窗口界面,添加控件与消息响应函数;然后读取模型文件Model.pkl,编写接口代码;随后输入验证数据,待程序输出预测结果后,进行统计分析。整个过程在本机完成,Python IDE平台为Spyder。
3.3.3 实现方案
结合实践流程,实验实现所需要的Python模块与核心函数如图3所示。系统主要包括数据准备模块、数据预处理模块、模型训练模块、数据可视化模块、界面实现模块与预测分析模块。
图3 实验实现方案
(1)数据准备模块完成数据提取任务,将数据集合中发动机生命周期的第一条数据作为正常样本(正样本),最后一条数据作为故障样本(负样本),整理所得样本总数为2832。所使用模块为Pandas、Numpy,其中 Pandas读取数据,Numpy将数据转换为矩阵形式,以供后续模块使用。
(2)数据预处理模块完成数据预处理任务,包括数据归一化与PCA降维处理,所使用的模块为sklearn,两个主要方法为StandardScaler和PCA,其中PCA过程中需要度量的累计方差贡献率通过 pca.explained_variance_ratio_方法获得。
(3)模型训练模块完成 SVM模型训练任务,包括 SVM 模型对象创建、训练集分割、模型训练等,所使用的模块为 sklearn,两个主要方法为 KFold和SVC;
(4)数据可视化模块完成ROC曲线绘制与AUC面积计算,所使用的模块为sklearn和matplotlib,其中sklearn.metrics.roc_curve返回ROC曲线的假正率与真正率坐标,sklearn.auc返回AUC值,matplotlib.pyplot完成曲线绘制。
(5)界面实现模块完成航空发动机故障诊断系统窗口实现,所使用的模块分别为 tkinter与 sklearn,其中 tkinter进行界面设计与消息响应函数实现,sklearn.externals.joblib读取SVM模型文件,用于后续验证数据的故障诊断。
(6)预测分析模块完成验证数据的故障诊断实现,所使用的模块为 sklearn,其中 SVC.predict用于输出验证数据的模型诊断结果。图4为ROC曲线示例,图5为窗口界面示例。
图4 接受者操作特性(ROC)曲线示例
图5 窗口界面示例
3.4 实施效果
本大学计算机基础综合实验设计,与军用实际需求结合,具有较强的实用性和综合性。实验通过需求牵引、理论讲解、自主设计、调试验证等环节,让学生从感性认识到理性认识,层层深入,帮助学生综合运用计算机理论知识与人工智能方法解决现存的实际问题,切实体现了计算思维能力培养[12]。
(1)基础理论与实战化需求深度结合。军校大学计算机基础课程的改革难点在于,所授知识难以与真实作战案例结合,在有效的课时内无法实现理论与实践、理论与实战的有机结合。通过以任务为驱动的综合实验设计,能够引导学生利用所学计算机知识解决实战化问题,提升学生利用计算机解决实际军事问题的能力。
(2)利用案例式教学实践方式促进教学相长。所设实验均通过需求牵引、理论讲解、自主设计、调试验证等环节展开,在自主设计环节,学生可以对讲解内容提出异议,教师提供的模型仅仅是基准,参数需要学生自己调整,学生通过实践可获得更优成绩,教师也可通过收集学生实验结果获得最优模型,极大地激励了学生的学习信心和动力。
(3)可满足不同岗位需求和人才培养目标。计算机基础类课程的教学对象涵盖大学本科、任职培训等多个层次学员,不同层次教学的课程内容差异较大。通过综合实验的分层设计,可以有效控制实验深度,提高知识针对性,灵活调整教学深度与广度,满足不同层次学员的学习需求。
4 结语
本文针对人工智能时代军校大学计算机基础课程的实战化教学需要,探讨了课程综合实验设计问题,论述了战场电磁环境教学系统建设目的及具体建设方案;结合课程案例式教学需求,介绍了基于设计方案的案例式教学实验思路,并初步在本科教学中进行了应用。
实践表明,综合实验有利于学生掌握大学计算机基础课程内容。在实验课上,学生能够积极主动完成实验任务,并能主动对其他实验小组的实验过程发表自身见解,实验课堂实践氛围浓厚;在课下,学生能够组建学习小组,对感兴趣的人工智能问题进行探索,学习的自主性和创造性得到很大提高。