正在加载图片...
116 智能系统学报 第8卷 数,然后设计各层神经元个数,包括输入层、隐层、输 f(x)=1/(1+e) (3) 出层的神经元个数,最后是神经网络的激活函数. 2.3神经网络分类器的训练流程 本文的神经网络分类器采用单隐层结构,因为 神经网络分类器设计完成后,即可利用训练数 如果隐层较多,神经网络的训练会比较慢,尤其数据 据对神经网络进行训练.BP神经网络的训练过程是 量比较大时,单隐层有较快的训练速度,且不会对网 不断迭代的过程,其训练算法流程图如图5所示. 络精度影响很大.考虑到网络流量一般较大,本文的 神经网络模型采用单隐层。 开始 本文的单隐层BP神经网络模型结构如图4所 示.对应主机对的特征向量是六维的,因此输入层设 初始化参数 置了六个神经元,分别是:1)TCP流个数flowCount; 州主机对的特征 给输入节点赋值 2)前后2个TCP流的时间间隔的平均值avgInter- val;3)时间间隔变化的平均值avgItvChange;4)TCP 根据是否是僵尸网络计算 神经网路的期望输出 流的字节数平均值avgByte:5)TCP流的数据包个数 平均值avgPktCount;:6)TCP流的持续时间平均值 计算各层输 avgDuration. 计算误差E (x) fx) 反向计算误差信号 TCP流个数+● 时间间隔平均值,。 调整权值 时间问隔变化的平均值+● 非隔尸网络 字节数平均值 腐尸网络 训练次数加1 数据包个数平均值● 持续时间平均值·。 误差满足 要求或达到最大 N E=0 输入层隐层输出层 训练次数」 图4单隐层BP神经网络模型结构 Y Fig.4 Model structure of BP neural network with a 结束 hidden layer 图5BP神经网络分类器训练算法流程 隐层神经元个数根据式(2)可取3~12的值,实 Fig.5 Flow chart of BP neural network training algo- 验中对不同隐层神经元个数进行测试,选取最优值. rithm 式(2)为文献[12]指出的最佳隐层神经元个数,其 具体步骤如下: 中,k为隐层神经元个数,m为输入层神经元个数,n 1)初始化神经网络所需的各个参数.参数包括 为输出层神经元个数,α为1~10的常数: 输入层到隐层的权值和偏置、隐层到输出层的权值 k m +n a. (2) 和偏置、权值和偏置的初始值是[-0.05,0.05]的 输出层的神经元个数设置为2.第1个输出神 随机值.另外,还需要设置神经网络的期望误差和最 经元用于表示非僵尸主机对,第2个输出神经元用 大训练次数.本文设置的期望误差是0.001,最大循 于表示僵尸主机对.如果是僵尸网络主机对,则第1 环次数是1000,即在1000次循环内,误差小于等 个神经元的输出为0,第2个神经元输出为1;如果 于0.001,则BP神经网络分类器训练结束,否则循 环1000次后结束. 不是僵尸网络主机对,则第1个神经元输出为1,第 2)从训练样本中选1组主机对,给神经网络的 2个神经元输出为0.实际训练过程中,输出神经元 输人节点赋值为主机对的6个特征. 的取值是[0,1].训练时,若第1个神经元的值大于 3)计算神经网络的期望输出,如果是僵尸网络 第2个,则将第1个神经元取值置为1,将第2个神 主机对,则输出层的第1个节点赋值为0,第2个节 经元取值置为0,并标记为非僵尸网络主机对.若第 点赋值为1,如果不是僵尸网络主机对,则输出层的 1个神经元的值小于第2个,则将第1个神经元取 第1个节点赋值为1,第2个节点赋值为0. 值置为0,将第2个神经元取值置为1,并标记为僵 4)计算出输人层到隐层再到输出层各节点的 尸网络主机对. 输出. BP神经网络的激活函数采用S型函数,如式(3):
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有