APP下载

BP神经网络的优化研究与应用

2019-05-17潘文婵刘尚东

计算机技术与发展 2019年5期
关键词:均方权值精度

潘文婵,刘尚东

(南京邮电大学 计算机学院,江苏 南京 210023)

0 引 言

网络中存在大量复杂的攻击行为,这些攻击已经成为网络和信息安全的主要威胁。防火墙技术、VPN技术等安全技术立足于防,并不能完全阻止入侵的发生。入侵检测是防火墙之后的第二道“安全闸门”,这种动态主动防御技术弥补了传统安全技术的不足。入侵检测系统(intrusion detection system,IDS)通过检查操作系统的审计数据或捕获网络数据包信息,检测网络或系统中违反安全策略的行为,防止系统数据的泄漏、篡改和破坏[1]。IDS能够对系统中未经授权的访问或异常现象、活动与事件进行跟踪、审计、识别和检测。

随着人工智能技术的发展,神经网络技术开始应用于入侵检测系统中。神经网络具有并行计算、自适应学习和调整,可以处理不完整有失真的数据,抗干扰能力强等特性,在入侵检测领域应用广泛[2]。1986年,Rumelhart和McClelland提出了BP神经网络的概念,机器学习进入快速发展时期。在这一阶段,不断涌现出更优秀的算法,推动了人工智能在语音识别、图形图像处理以及自然语言处理方面的进展。

神经网络算法有很多种,其中比较常用的是反向传播(back propagation,BP)神经网络。但是随着应用范围的逐步扩大,BP神经网络也暴露出一定的缺点和不足,比如处理复杂问题时易陷入局部最小、BP算法学习收敛速度慢等[3]。对此,文中提出一种BP神经网络的改进算法,以改变传统固定学习率,提高BP网络收敛速度和入侵检测准确度。

BP算法作为传统训练多层网络的典型算法,易出现局部最优。2006年,加拿大多伦多大学教授机器学习领域的泰斗Geoffrey Hinton等提出了深度学习(deep learning)的概念,开启了深度学习在学术界和工业界的浪潮。深度学习本质上是深层人工神经网络,通过构建具有很多隐层的机器学习模型和海量的训练数据,以更少的参数与更深的结构来学习更有用的特征,从而提升分类或预测的准确性[4-6]。

1 BP神经网络

BP神经网络是一种多层前馈网络,连接权值调整采用反向传播学习算法,BP神经网络算法即误差逆传播算法。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小[7-8]。BP神经网络模型的拓扑结构包括输入层(input)、隐含层(hide layer)和输出层(output layer)。

BP神经网络模型一般由三层构成,隐含层可以是一层或多层。令X代表输入矢量,Y代表输出矢量,定义各层间连接权矩阵,ω、W分别代表相邻两层间各节点的连接权矩阵。ωij表示输入层神经元与隐含层神经元之间的连接权值,Wjk表示隐含层神经元和输出层神经元之间的连接权值。网络的学习过程,通过对连接权值和阈值进行调整修正,减小输出误差,使网络实现给定的输入输出映射关系[9-10]。

一般而言,只需包含一个足够多神经元的隐层,就能以任意精度逼近任意复杂度的连续函数。BP神经网络从输入到输出,具有很强的非线性映射能力。理论研究证明,可以用三层神经网络以任意精度逼近任意非线性连续函数,这使得其特别适合于解决内部机制复杂的问题。

2 BP神经网络算法

由于BP算法存在一定的局限性,降低了BP神经网络在实际应用中的效率,因此许多专家学者提出了多种改进的措施[11-12],从学习率、误差函数、激励函数、网络结构以及优化算法等方面进行研究。

标准BP算法的学习率固定不变,通常将学习率定为常量,因此其收敛速度慢,易陷入局部最小值。选择一个合理的学习率,需要根据学习情况来调整学习率。学习率控制着沿反梯度方向下降的步长,一般常把学习率设置为0.1,有时更新权重时会将输出层与隐含层设置为不同的学习率。如果学习率过小,收敛速度会很慢,如果学习率过大,可能引起震荡而使网络不稳定。

在均方误差变化较平坦的区域,为了加快收敛速度,则增大学习率。而在误差变化剧烈的区域,训练出现振荡,则减小学习率,有助于使网络从误差曲面的局部极小值中跳出。

3 改进的BP神经网络优化算法

对BP神经网络的有效改进是一个值得研究的问题。为了提高BP神经网络的收敛速度和预测精度,选择合适的学习率很重要[13-14]。文中从以下几个方面来探究改进BP神经网络的方法。

3.1 学习率的改进

在训练开始时,随机设置初始学习率,使用误差反向传播算法来训练权值参数,寻找误差函数的最小值。以隐含层节点与输出层节点的连接权值调整为例,用动态学习速率法来缩短训练时间。具体步骤如下:在更新权值之前,设置初始学习率η。如果均方误差减小,则学习率的取值偏小,学习率将乘以一个大于1的因子α。如果均方误差在权值更新后增加,且该值超过了预设的某个百分数,如:1%~5%,则需要减小学习率,学习率乘以一个大于零且小于1的因子β。如果均方误差增加,但是增加值小于预设的数值区域ξ,则学习率保持不变。

将对动态学习速率η的调整公式定义如下:

(1)

其中,er为最大误差率。

用同样的算法来调整输入层与隐含层各节点间的连接权,找到最优学习率,使得网络输出更符合实际。

3.2 采用带有可调因子的激活函数

BP神经网络的重点是网络误差与权值调整。网络误差E(n)是各层权值ωij、Wjk的函数,因此调节权值可改变误差。

隐含层至输出层权值调整量为:

(2)

4 仿真实验和结果分析

运用MATLAB仿真来验证改进之后的BP神经网络的性能。文中采用美国麻省理工学院林肯实验室提供的KDD Cup99数据集,以其中的corrected.gz数据集为研究对象。数据集中每个网络连接记录有41个属性值,利用信息熵理论,最终选取所含信息量较大的前14维特征用于实验。

数据预处理分为两步:数值标准化和数值归一化。在实验中,最大迭代次数3 000,初始学习率0.01,精度值0.001,输入节点数为10,输出节点数为1,并设置不同的隐含层节点、参数进行对比实验。

从2 000组样本数据中随机提取1 900组作为训练数据,另外100组作为测试数据,用于测试网络的性能。分别对传统BP神经网络以及改进算法进行比较,BP网络学习率的优化模型采用动态学习率与参数可调激活函数相结合的方法对网络进行训练。

从迭代次数与误差精度两个方面来分析传统BP神经网络与改进后的BP神经网络的拟合性能。

标准BP算法的误差曲线如图1所示,可以看出逼近效果不理想,训练3 000次还未达到所要求的误差精度,MSE=0.026。采用不同的参数对改进后的算法进行了多次对比实验,结果发现当学习率增长比为1.05,学习率下降比为0.75,误差函数增加为迭代前的1.02,隐含层节点数为11时,训练效果最佳。

如图2所示,系统目标均方误差为0.001时,改进后的BP神经网络迭代118次就达到了均方误差精度的要求,MSE=0.000 6。改进后的BP神经网络与传统神经网络相比,可以提高收敛速度,避免陷入局部极小,而且较为明显地改善了学习精度。

图1 标准BP算法的误差性能曲线

图2 改进学习率算法的误差性能曲线

5 结束语

学习率是影响神经网络训练速度和性能的重要因素。针对传统BP神经网络收敛速度较慢,预测精度不高,极易陷入局部最小点等缺陷,提出了一种动态学习率与参数可调激活函数相结合的改进方法。实验结果表明,该算法提高了BP网络的收敛速度和误差精度,避免陷入局部极小值。下一步的研究将考虑深度学习,在应用方面,深度学习在图像识别、语音识别等领域展现出巨大的优势,以进一步推动人工智能技术的发展。

猜你喜欢

均方权值精度
基于不同快速星历的GAMIT解算精度分析
高斯白噪声激励下微悬臂梁的瞬态均方响应研究
一种融合时间权值和用户行为序列的电影推荐模型
幂分布的有效估计*
热连轧机组粗轧机精度控制
构造Daubechies小波的一些注记
基于5G MR实现Massive MIMO权值智能寻优的技术方案研究
一种基于互连测试的综合优化算法∗
程序属性的检测与程序属性的分类
一类随机微分方程的均方渐近概自守温和解