APP下载

基于遗传神经网络成绩预测的研究与实现

2016-05-14陈勇

现代电子技术 2016年5期
关键词:BP神经网络遗传算法

陈勇

摘 要: 针对BP神经网络固有的局限性和在应用于成绩预测时出现的问题,运用遗传算法对BP神经网络的权值和阈值进行优化,通过详细设计遗传算法的编码方式、适应度函数,遗传算子使二者结合后的遗传神经网络模型具有更快的学习训练收敛速度,为了提高优化效果,设计了自适应的遗传算法交叉算子和变异算子,并通过与基本BP神经网络和自适应BP神经网络的对比,显示了优化的有效性和可行性。运用Matlab实现了遗传神经网络模型,并完成了模型的训练,运用Java语言完成了模型的调用和成绩预测系统的实现。分析结果表明,该遗传神经网络模型在成绩预测方面具有较高的准确性,具有一定的实用价值。

关键词: 成绩预测; BP神经网络; 遗传算法; Matlab; Java

中图分类号: TN711?34; TP183 文献标识码: A 文章编号: 1004?373X(2016)05?0096?05

0 引 言

近年来,神经网络的研究被广泛应用于如生物、医学、经济等诸多领域,基于神经网络进行成绩预测的研究也逐渐开始受到人们的关注[1]。有效的学生成绩统计分析和预测在指导学校合理分配教学资源,全面提高教学质量方面都发挥着至关重要的作用。因此,将神经网络技术应用于学生课程成绩预测具有很强的现实意义与研究价值[2]。目前,在为数不多的课程成绩预测实践中,绝大部分的学者采取应用最为广泛的BP神经网络模型进行实现,这在取得一定成果的同时暴露了BP神经网络算法收敛速度慢,效率低下等弊端和对课程成绩预测领域的不适应性。本文通过与基本BP神经网络和自适应BP神经网络的对比,验证模型的收敛速度,体现出算法改进的效果[3]。运用Matlab实现了设计好的遗传神经网络模型,并完成了模型的训练,运用Java语言完成了模型的调用和成绩预测系统的实现。研究结果能有效地指导学校合理分配教学资源,预防可能发生的重大教学事故,对于全面提高教学质量发挥着至关重要的作用。

1 遗传算法结合BP神经网络的设计

遗传算法具有较强的全局搜索能力和很强的鲁棒性,非常适合对BP神经网络进行优化[4]。将二者结合起来,可大大减少网络陷入局部极小的概率,同时进一步提高网络的收敛速度,能较快的获得所求问题的全局最优解。遗传算法优化BP神经网络的基本原理就是将BP神经网络的权值交给遗传算法来控制,即将BP神经网络各隐层的节点权值和阈值作为遗传算法的输入,将它们进行编码,生成初始种群,利用遗传算法的选择交叉和变异来产生新的后代,即新的神经网络权值和阈值,再交还给BP神经网络,由神经网络进行后续的求解过程。

从算法的角度上讲就是先通过遗传算法在目标问题的解空间中进行搜索[5],当搜索到一个较优的网络形式时,再利用BP算法进行定位,确切地找到这个较优的解空间中的最优解或满意解。遗传算法结合BP算法的主要流程如图1所示。

2 成绩预测系统的实现

2.1 数据预处理及相关度分析

本文所进行的成绩预测数据均来自学校网络中心的真实学生成绩数据,获取的数据规格为:每一行为一组输入,内容包括学号、学年、学期、课程名称、课程代码、课程性质、成绩等项,预计输入项在100 000以上。针对原始的学生课程成绩数据,首先要做的是数据的预处理,主要内容为数据的清洗,删除与成绩预测无关的课程代码等数据。主要步骤包括:去除空项,去除非正常考试项,去除非专业课成绩,处理成绩数据,处理课程名称等。预处理后的学生课程成绩数据格式如表1所示。

采取Apriori算法对课程进行相关度分析。在横向比较所有学生成绩历史数据的过程中将随目标课程成绩的优秀而同样取得高分、随目标课程成绩过低而同样取得低分的课程称为该课程的相关课程。即便有很多与目标课程成绩相关的课程,也存在相关度的高低,如果将所有的相关课程都作为神经网络的输入项,不但使算法的参数变得复杂,收敛速度缓慢,而且也影响了预测的结果,成为了干扰项。因此,只选择五门相关课程进行成绩的预测。

经过Apriori算法对数据进行预处理后,大量原始数据被简化为只有5门相关课程和目标课程成绩的数据表,保存为一个文本文档供神经网络模型训练使用,格式如表2所示。同时预留另一部分数据作为成绩预测效果的验证数据。

2.2 遗传神经网络模型的实现

根据遗传算法与神经网络相结合的遗传神经网络模型的总体设计,运用Matlab实现遗传神经网络模型的过程需要将BP神经网络函数与遗传算法的编码解码函数和适应度函数分别进行实现,主函数为gabpMain.m[6],实现BP神经网络的创建和神经网络参数的设计。同时,gabpMain函数还需实现神经网络与遗传算法的对接工作,因此还要实现遗传算法种群的初始化和基本参数的设定。

Matlab实现神经网络模型后,开始用大量的数据对模型进行训练。经过训练的模型才能够被应用于成绩预测系统,通过调用该模型,输入预测课程的5门相关课程成绩数据,进行目标课程的成绩预测。通过对模型的训练,进行算法和参数的调整,同时比较各个算法的收敛曲线,验证基于遗传算法对BP神经网络进行优化的效果。比较的对象选择为一个没有遗传算法进行改进,基本BP神经网络参数设置完全相同的神经网络模型,采用同样的数据源进行训练,两个模型分别进行仿真训练各五次,分别选出其中目标进化函数收敛效果最好的结果图进行比对,其中,采用基本BP神经网络的模型收敛图如图2所示。而本文设计的采用遗传算法进行优化的BP神经网络模型收敛图如图3所示。

通过比较不难发现,单一BP算法和遗传算法优化神经网络的混合算法在收敛速度方面的差别十分巨大,两者在训练次数的上限均为500次,目标误差平局方差均为10-3的情况下,基本BP神经网络模型收敛速度缓慢,在进行了500次训练后,误差停留在了0.032 915,仍然没有达到目标值,而遗传神经网络模型的收敛速度大大加快,仅在第56次训练就达到了目标值。

为了进一步加强对比,再次建立基于自适应学习算法改进后的BP神经网络模型,用同样的样本数据进行训练,以验证是否是特殊原因造成二者差距过大的现象,同时验证遗传算法相对其他算法优化BP神经网络的优势,训练的结果如图4所示。

网络模型函数收敛效果图

由图中可以看出,在500次训练后,函数的误差均收敛于0.024 146,效果较之于基本的BP神经网络模型大有提高,前期的收敛速度也有所加快,但是仍然没有在500次训练以内达到目标。在基于对两种BP算法模型进行了对比之后,可以总结造成这种差距的原因是输入的样本数据数量相对较少,同时课程成绩数据的特点是离散但是重复度很高,训练的效果更加依赖隐层节点和权值的设计,而这正是遗传算法对BP神经网络优化的核心,因此体现出的效果比较显著[7]。由此可见遗传算法优化BP神经网络确实在应用于成绩预测等类似领域的时候具有一定的优越性。

3 预测结果分析

完成神经网络模型的实现后,此处通过Java语言实现一个调用神经网络模型[8],允许使用者自行选择目标课程,并直观查看从数据预处理到成绩预测结果的软件系统。如图5所示,该系统界面简洁明了,进入软件界面后,分别选择年级、学院、科目等3项参数,并连续点击“下一步”,即可直观地看到用数据预处理开始到成绩预测结果的全部中间数据。

成绩预测的结果可以采取两种查看方式,即列表方式与图表方式。其中列表方式显示了学生的学号和系统预测该目标课程取得的成绩。能够以红颜色标记成绩预测结果过低的学生,方便使用系统的用户了解学生的成绩和课程情况,如果成绩过低的学生过多,则证明该课程存在发生教学事故的风险,需要采取严格管理等措施来防范。通过这种方式,成绩预测系统达到了通过成绩预测协助进行学生管理和教学事故预防的目的,成绩预测的列表方式显示如图6所示。

为了验证成绩预测系统的预测准确度,需要以一些已经有成绩的历史数据进行预测。图表方式以红色的“*”标记目标课程的预测成绩;以圆圈标记目标课程的实际成绩;“*”和圆圈的距离形象地显示了预测成绩与实际成绩之间的差距。成绩预测的图表方式显示如图7所示。

为了通过分析成绩预测结果得知遗传神经网络应用于成绩预测的实际效果,使用系统预测2009级软件学院学生“软件工程实践”这门课程的成绩,并以其中的16条数据进行误差比对,测试的结果如表3所示。

由于预测的分数全部进行取整,所以精度有所影响,因此规定实际输出与预计输出相差小于或者等于3分的情况下,输出的结果为正确,反之为错误。统计得知,使用遗传神经网络的成绩预测系统对学生的学习成绩进行预测,正确率为87.5%,证明遗传神经网络算法在应用于成绩预测时确实取得了比较好的效果。

4 结 论

本文在对神经网络和遗传算法的基本理论和优劣势的研究基础上,设计了遗传算法与BP神经网络相结合的遗传神经网络模型,通过详细设计遗传算法的编码方式、适应度函数、遗传算子使二者结合后的遗传神经网络模型具有更快的学习训练收敛速度,并通过与基本BP神经网络和自适应BP神经网络的对比,显示了优化的有效性和可行性。进一步充分运用Matlab实现了设计好的遗传神经网络模型,并完成了模型的训练,运用Java语言完成了模型的调用和成绩预测系统的实现,以直观的方式显示了预测结果,经过分析,预测结果具有较高的准确率和效率。但是,将RBF神经网络应用于成绩预测领域,是不是会取得比BP神经网络更好的效果,需要通过实验进行进一步的验证。

参考文献

[1] 周凌翱.改进BP神经网络在模式识别中的应用及研究[D].南京:南京理工大学,2010.

[2] SOCHA K, BLUM C. An ant colony optimization algorithm for continuous optimization: application to feed?forward neural network training [J]. Neural computing and applications, 2007, 16(3): 239?247.

[3] 黄庆斌.BP算法的改进及其应用研究[D].西安:西安交通大学,2010.

[4] 尹然,丁晓明,李小亮,等.基于SA?BP神经网络的软件缺陷预测模型的研究[J].西南师范大学学报(自然科学版),2013,38(8):147?152.

[5] 康珺,孟文俊.一种基于改进神经网络的系统辨识方法[J].计算机与数字工程,2012,40(1):31?33.

[6] 邹丽娜,丁茜.基于BP算法的成绩预测模型[J].沈阳师范大学学报(自然科学版),2011,29(2):226?229.

[7] 陈文,庞琳娜.GABP神经网络在交通流预测中的应用研究[J].微计算机信息,2009,25(14):245?247.

[8] 易安.基于神经网络的模糊推理模型和算法研究[D].重庆:西南大学,2010.

猜你喜欢

BP神经网络遗传算法
基于自适应遗传算法的CSAMT一维反演
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于遗传算法和LS-SVM的财务危机预测
复杂背景下的手势识别方法
BP神经网络在软件质量评价中的应用研究 
BP神经网络算法在数值预报产品释用中的应用
基于改进的遗传算法的模糊聚类算法