BP神经网络与Android移动应用开发融合教学的探讨
2021-06-11王耀棱
王耀棱
摘 要: 为了提升学生对人工智能课程的学习兴趣、提高人工智能课程教学质量,尝试将人工智能课程中BP神经网络的内容与Android移动应用开发课程的实训课进行融合教学,借助学生对Android移动应用开发课程的兴趣和实训课的趣味性,来提高其教学质量。教学效果评价显示,学生对两门课程的学习兴趣都有提升,教学质量有大幅度提高,说明将计算机理论课程和开发类课程教学的合理融合,可以取得较好的教学效果。
关键词: 人工智能; BP神经网络; Android移动应用开发; 教学
中图分类号:G642 文献标识码:A 文章编号:1006-8228(2021)05-97-03
Discussion on integration teaching of the "BP Neural Network" and
"Development of Android Mobile Applications" courses
Wang Yaoling
(Enshi Tujia and Miao Autonomous Prefecture University of Radio and Television, Computer Department, Enshi, Hubei 445000, China)
Abstract: In order to enhance students' interest in learning artificial intelligence and improve the teaching quality of the course, this paper attempts to integrate the content of BP neural network in artificial intelligence course with the practical training course of Android mobile application development course, so as to improve the teaching quality with the help of students' interest in learning Android mobile application development course and the interest of practical training course. The evaluation of teaching effect shows that students' interest in learning the two courses has been improved, and the teaching quality has been greatly improved, proving that the reasonable integration of the teaching of computer theory course and development course can achieve better teaching effect.
Key words: artificial intelligence; BP neural network; Android mobile application development; teaching
0 引言
計算机科学与技术专业是一级学科专业,主要为面向计算机行业培养宽口径的人才。它的培养计划涵盖了诸如硬件、软件、网络等很多方向的专业课程,人工智能及应用和Android移动应用开发两门课程是它的选修专业课。
人工智能在计算机科学领域的应用非常有前途、很热门并且广为人们所关注。人工智能主要是研究如何开发出基于智能算法的程序安装到机器设备上来实现模拟人的智能行为和反应[1]。人工智能及应用课程主要是学习和理解这些智能算法。人工神经网络是人工智能中联结主义学派中的一种典型的智能算法,也是目前应用的比较好的一种算法[2]。AlphaGo在2016年大战围棋冠军李世石事件上一举成名,引起人们极大关注。而AlphaGo的核心算法是基于多层的卷积神经网络。
在2013年的Google I/O大会上,Google发布了Android Studio的第一个版本,它是Google推荐的移动应用开发工具,也是现在比较流行的开发工具[3]。Android移动应用开发占据了手机APP的几乎半壁江山,高等院校计算机科学与技术本科专业几乎都开设此课程,也深受学生喜爱。
人工智能及应用课程比较枯燥,理论性较强,如果教师教学上驾驭不好,课堂就会出现“老师口干舌燥,学生放倒一片”的现象。如何提升学生对此类课程的学习积极性,进而提高课程教学质量,是当下计算机教师面临的一大难题。本文试图采用课程融合的教学方法去解决。
1 两门课程的教学现状及融合教学的实现思路
1.1 两门课程的教学现状
人工智能及应用课程主要为学生进入计算机科研领域打下基础,课程内容是研究包括人工神经网络在内的智能算法。人工神经网络有很多类型,如上面提到的较为复杂的卷积人工神经网络,还有进化神经网络等。在实践教学中,基于能让学生容易学习和理解的考虑,我们多采用经典的BP神经网络作为人工神经网络这一章的入门模型。
课堂授课在介绍了生物神经工作原理之后,就会构建它的数学模型,会有大量数学推导和逻辑推理,教学方式也常常是板书式教学。课堂学习往往很单调、枯燥,在这门课程中如何去引导学生产生学习兴趣,让其主动学习和探究是这门课程教学的关键。
Android移动应用开发是职场所需的实用专业课,课程对实践要求高,学生能认识到课程的重要性,学习兴趣强。在实训教学中,部分學生能够超前自学。
1.2 两门课程融合教学的实现思路
奥苏贝尔的认知同化说认为,新知识的学习必须以已有的认知结构为基础。人工智能课程的学习需要高等数学、线性代数、概率论与数理统计等课程基础,Android移动应用开发需要Java程序设计、数据结构等课程基础。普通本科生中除去先修课程基础差的学生外,绝大多数学生具有学好两门课程的基础条件,关键在于学生是否愿意去学习和钻研。布卢姆认为,学生最大的学习动机莫过于对所学知识有求知的兴趣。只有在这种动机下的学习,才会提高自身的主动性与自觉性,达到提高教学质量的目的。
高等教育为了方便教学,把专业学科知识体系的教学内容按照其固有的规律人为的划分成若干课程。由此可见,这些课程之间是有紧密联系的[4]。融合教学就是选用多种课程的联系性内容在课堂中开展专题教学,助力学生对相关课程进行相互促进认知。
学生之所以对人工智能课程的学习兴趣下降,主要在于课程理论性强、长时间进行单调枯燥的数学推导,让学生精神疲惫,难以产生学习兴趣。因此,在这两门课程教学中,笔者尝试将两门课程进行融合教学,教学内容是将简单的BP人工神经网络算法置于到一款Android APP软件中,APP能够借助算法对数字对进行分类。通过学生较为喜欢的Android移动应用开发实训教学带动学生对人工智能课程的兴趣,以此激发了学生的学习探索兴趣,促进学生对两门课程的学习与探究。
2 两门课程融合教学的实现
学生实训平台采用Android Studio2.2.3开发工具,教师演示智能手机采用华为AQM-AL00。由于设备条件限制,要求学生使用开发工具配置的模拟器运行APP。实训项目为设计开发一款数字对分类器APP,在项目中设置BP神经网络类(即:BpNerve.java),在活动组件(即MainActivity.java)中调用BP神经网络类构造对象,在监听器中调用对象完成分类学习,并对检测数字对分类。该APP能将一些数字对按照数字对中两个数字关联程度进行分类。
教师演示开发APP后,在手机端装入该APP,打开APP。键入四组数字对(1,1)、(2,5)、(5,5)、(6,4),其中(1,1)、(5,5)两对数字因为偏差小,我们将它们划为第“1”类,故在对应分类中输入“1”;而(2,5)、(6,4)两对数字因为偏差大,我们将它们划为第“0”类,故在对应分类中输入“0”。再将需要测试的两组数字对(2,3)、(2,4)分别进行测试,结果APP将(2,3)划为第“1”类,将(4,2)划为第“0”类。测试结果达到预期结果,表示APP学习到了分类规律。教师演示APP运行结果参见图1。
在刚开始学习人工网络神经网络时,一般教材都选用BP神经网络让学生入门,因为它具有模型清晰、结构简单、应用性强的特点。为让学生容易入门,采用了{2,9,1}的神经元结构,即输入层二个神经元,中间层九个神经元,输出层一个神经元,详见相关代码。
构造BP神经网络模型类代码:
public class BpNerve { //构造BP神经网络模型类
public double[][] layer; //神经网络各层节点,存储输入值
public double[][] layerErr; //神经网络各节点误差
public double[][][] layer_weight; //各层节点权重
public double[][][] layer_weight_delta; //各层节点权重动量
public double mobp; //动量系数
public double rate; //学习系数
//构造方法
public BpNerve (int[] layernum, double rate,
double mobp) {
...
在活动源代码中,构建并调用BP神经网络对象,完成学习任务并进行检验样本数据。代码如下:
...
BpNerve bp=new BpNerve (new int[]{2,9,1},
0.12, 0.82); //构建BP神经网络对象
...
//迭代训练6000次
for(int n=0;n<6000;n++)
for(int i=0;i bp.handle(data[i], target[i]); //BP神经网络对象进行学习 //根据训练结果来检验样本数据 for(int j=0;j double[] sample=bp.computeOut(data[j]); ... 学生上机进行项目实训属于验证性实验,其目的在于验证理论,加深对理论的理解与掌握,并对学生进行基本实验技能、方法及能力的训练[5]。通过两门课程的融合教学,学生基本上能够完成项目实训课程任务。该款软件代码的编写与调试让学生直观地感受人工神经网络算法的魅力,也对Android移动应用程序开发综合应用有了新的感受。学生的学习氛围变得浓厚,学生主动讨论、请教老师解决问题。教师能够明显感觉到学生对这两门课程,尤其是人工智能课程兴趣的提升,部分学生愿意用更多课余时间来学习和研究智能算法。 3 结束语 将人工智能课程中的BP神经网络内容融合到Android移动应用程序开发实训课中。通过教学实践和教学评估,证实了这种融合教学显著提升了学生对人工智能课程的学习兴趣、提高了两门课程的教学质量。 人工智能这类理论课程或多或少都存在着学生学习兴趣不高、教学质量差的情况。此类课程来源于实践,在教学中将它回归、融合于开发类课程的实践中,这样就会有较好的教学效果。以融合教学的方法来提高人工智能课程的教学质量,还需要高校计算机教师将各种智能算法合理的与开发课程融合,融合的过程要自然,符合学生认知水平,以达到理想的教学效果。 参考文献(References): [1] 王万森.人工智能原理及其应用[M].电子工业出版社,2012. [2] 吕俊杰,陈丽娜,何月涵.人工神经网络课程在生物信息学专业的教学实践与探讨[J].教育教学论坛,2014.17:208-210 [3] 刘凡馨,夏帮贵.Android移动应用开发基础教程[M].人民邮电出版社,2018. [4] 沈卉卉.大数据环境下人工智能与大学数学教育相融合的创新教学研究[J].高等数学研究,2019.7:113-125 [5] 冷余生,解飞厚.高等教育学[M].长江出版社,2017.