传统的BP神经网络在应用的过程中,常常面临无法确定合适的网络节点问题。网络规模小,则运算时间长;而网络规模过大,容易产生过学习现象,影响泛化能力。在传统的BP神经网络学习的基础上,采用卡尔曼滤波算法对神经网络中的权值向量进行修剪,实现对神经网络结构的简化,提高泛化能力。它不同于以往的边修剪、边训练,而是在神经网络一次完整的学习完成之后,一次性修剪。方法在入侵检测数据集测试中表明,修剪比例较高,精确度好,修剪完成的网络能够很好地保持修剪前的测试识别率,提高了学习速度和泛化能力。
In the application of traditional BP neural networks, a problem often faced is how to determine the appropriate numbers of the neurons. If the scale of the network is too small, it will cause long training time. On the contrary, if the scale is too big, the networks will lead to over fitting which plays an important role to generalization a- bility of NN. In this paper, a Kalman Filter algorithm is applied to prune the weights of Neural Networks in order to improve the speed of learning and the generalization ability of Neural Networks. Compared with traditional pruning al- gorithm, this method is different. While the traditional pruning algorithm prunes while training, this method prunes the weights after a complete training. Tests in IDS dataset show that Kalman Filter algorithm can prune with a higher rate and accuracy. Furthermore, the pruned Neural Networks can keep the detection rate of unpruned ones.