基于神经网络的网络入侵检测
- 格式:docx
- 大小:1.06 MB
- 文档页数:16
基于深度学习的网络入侵检测系统研究摘要:网络入侵日益成为网络安全领域的重要问题,传统的入侵检测系统往往无法有效应对复杂多变的网络攻击。
本文通过引入深度学习技术,研究了一种基于深度学习的网络入侵检测系统。
该系统利用深度神经网络对网络流量数据进行分析和判断,能够实现实时、准确地检测网络入侵行为。
实验结果表明,该系统在检测精度和处理速度上显著优于传统的入侵检测系统。
1. 引言网络入侵行为对网络安全造成了严重威胁,传统的入侵检测系统往往采用基于规则的方法,但这种方法存在规则维护困难、无法应对未知攻击等问题。
深度学习作为一种基于数据驱动的方法,可以自动从大量数据中学习特征,并能够适应各种复杂多变的攻击手段。
因此,基于深度学习的网络入侵检测系统成为了当前研究的热点之一。
2. 深度学习在网络入侵检测中的应用深度学习通过构建深层次的神经网络模型,不仅可以自动学习到网络流量中的复杂非线性特征,还可以通过端到端的方式对输入数据进行分类和判断。
在网络入侵检测中,我们可以借助深度学习对网络流量中的异常行为进行建模和识别。
2.1 数据预处理在进行深度学习之前,我们需要对原始的网络流量数据进行预处理。
首先,我们需要对数据进行清洗和去噪,去除无用的特征和异常数据。
其次,我们需要对数据进行归一化处理,将数据映射到合适的范围内,以加快网络模型的训练速度和提高模型的鲁棒性。
2.2 深度神经网络模型设计在网络入侵检测中,我们可以构建各种不同的深度神经网络模型。
常用的模型包括卷积神经网络(CNN)、循环神经网络(RNN)和长短期记忆网络(LSTM)。
这些模型可以自动从数据中提取特征,并将特征映射到合适的维度上,以便进行后续的分类和判断。
2.3 深度学习模型的训练与优化深度学习模型的训练需要大量的标注数据和计算资源。
在网络入侵检测中,我们可以利用已知的入侵样本进行有监督的训练,同时也可以利用未知的正常样本进行无监督的训练。
为了提高模型的泛化能力和鲁棒性,我们可以采取一系列的优化策略,如正则化、批量归一化、随机失活等。
基于深度学习的网络入侵检测系统部署方案研究一、引言随着互联网和网络技术的不断发展,网络安全问题越来越受到人们的关注。
网络入侵成为威胁网络安全的一个重要问题,给个人和组织带来了严重的损失。
因此,构建一套有效的网络入侵检测系统对于确保网络安全至关重要。
本文基于深度学习技术,对网络入侵检测系统的部署方案进行研究。
二、深度学习在网络入侵检测中的应用深度学习是一种基于人工神经网络的机器学习方法,具有强大的学习能力和模式识别能力。
在网络入侵检测中,深度学习可以通过学习大量的网络数据,自动提取特征并进行入侵检测,相比传统的规则或特征基于方法,具有更高的准确率和适应性。
三、网络入侵检测系统的架构设计网络入侵检测系统的架构包括数据采集、特征提取、模型训练和入侵检测四个环节。
其中,数据采集负责监控网络流量,获取原始数据;特征提取将原始数据转化为可供深度学习模型处理的特征向量;模型训练使用深度学习算法对提取的特征进行训练,并生成入侵检测模型;入侵检测将实时流量与模型进行匹配,判断是否存在入侵行为。
四、数据采集数据采集是网络入侵检测系统的基础,可使用流量转发、网络监听或代理等方式获取网络流量数据。
采集的数据应包括网络包的源IP地址、目的IP地址、协议类型、传输端口等信息,用于后续的特征提取和训练。
五、特征提取特征提取是网络入侵检测系统中的关键环节,决定了后续模型训练和入侵检测的准确性。
常用的特征提取方法包括基于统计、基于模式匹配和基于深度学习等。
基于深度学习的方法通过卷积神经网络或循环神经网络等结构,自动学习网络流量中的高级特征,提高了入侵检测的准确率。
六、模型训练模型训练基于深度学习算法,使用已经提取的特征向量作为输入,通过多层神经网络进行训练。
常用的深度学习算法包括卷积神经网络(CNN)、长短时记忆网络(LSTM)和深度信念网络(DBN)等。
模型训练过程中需要使用大量标记好的入侵和非入侵数据,通过反向传播算法不断调整网络参数,提高模型对入侵行为的识别能力。
基于神经网络的网络安全评估方法研究随着互联网在国内的普及和应用范围的不断扩大,网络安全问题愈加凸显。
各类安全威胁层出不穷,传统安全技术已经难以满足安全需求,网络安全的研究和保障任务日益繁重。
针对当前网络安全问题,国内外的学者和专家们不断探索新的安全技术和方法,其中基于神经网络的网络安全评估方法备受关注。
一、基于神经网络的网络安全评估方法原理神经网络是一种机器学习的算法,其模型受到人类神经系统的启发,可以用于模拟人脑对信息的处理过程。
网络安全评估是指对网络系统的安全性能进行评估,包括安全需求、安全目标、安全策略等多个方面。
基于神经网络的安全评估方法,其核心就是将大量的安全数据输入到神经网络中,通过训练使神经网络自动学习网络安全模式,从而建立网络安全评估模型。
该模型可用于对网络安全问题进行预测、检测和防御。
二、基于神经网络的网络安全评估方法的优劣势分析1. 优势:(1)基于神经网络的网络安全评估方法具有强大的数据处理能力,可以处理大量的网络安全数据,将数据转化为可供评估的信息。
(2)该方法的自适应性和自学习能力强,可以动态更新网络安全模型,提高对新兴网络安全威胁的检测和防御能力。
(3)基于神经网络的网络安全评估方法不受网络结构的限制,适用于各种不同的网络结构和设备。
2. 缺陷:(1)基于神经网络的网络安全评估方法需要大量的安全数据进行训练,缺乏充足的安全数据会影响模型的准确性。
(2)该方法虽然可以适应新的安全威胁,但模型泛化能力有限,可能会存在误判问题。
(3)基于神经网络的网络安全评估方法需要专门的算法和技术支持,技术门槛较高,需要专业人员进行研究和开发。
三、基于神经网络的网络安全评估方法在实际应用中的场景1. 基于神经网络的入侵检测入侵检测是指对网络系统进行检测和识别,判断是否遭到入侵。
基于神经网络的入侵检测可以更加准确地识别入侵行为,并及时进行防御。
2. 基于神经网络的网络威胁分析网络威胁分析是指对网络系统中安全威胁情况进行分析和评估,以及对威胁进行预测和抵御。
基于深度学习的网络安全监测与入侵检测系统随着网络的广泛应用和互联网的快速发展,网络安全问题引起了越来越多的关注。
恶意攻击者利用各种手段对网络系统进行入侵和攻击,给数据的安全性和隐私造成了严重威胁。
为了有效保护网络系统的安全,开发一种基于深度学习的网络安全监测与入侵检测系统成为了迫切需求。
深度学习是一种机器学习的方法,其基本思想是通过建立多层神经网络模型,实现对大规模数据的自动学习和抽象表达。
在网络安全领域,基于深度学习的网络安全监测与入侵检测系统可以通过自动学习网络流量的模式和特征,从而实现对网络系统中潜在威胁的监测和检测。
首先,基于深度学习的网络安全监测与入侵检测系统可以利用深度学习算法对网络流量进行分析和处理。
通过建立多层的神经网络模型,系统可以对网络流量进行分类和识别。
系统可以学习正常网络流量的模式和特征,当遇到异常流量或可疑行为时,系统可以及时发出警报并采取相应的安全措施,如关闭相关服务或阻止恶意访问。
其次,基于深度学习的网络安全监测与入侵检测系统可以进行实时的入侵检测。
传统的入侵检测系统依赖于预定义的规则和特征库,对已知的攻击进行检测。
然而,新的攻击和零日漏洞往往无法被传统的入侵检测系统所识别。
基于深度学习的入侵检测系统可以通过学习网络流量的高级特征和非线性模式,发现未知的攻击和潜在威胁。
此外,系统还可以利用深度学习模型的迁移学习能力,将已有模型的知识应用于新的网络环境中,提高系统的准确性和鲁棒性。
另外,基于深度学习的网络安全监测与入侵检测系统还可以通过自动提取和分析网络流量的特征,进行网络威胁情报的分析和预测。
系统可以通过学习各种网络攻击的模式和行为,对未来的网络攻击进行预警和防范。
此外,系统还可以利用深度学习模型的迁移学习能力,将已有的威胁情报应用于新的网络环境中,提高系统的威胁识别和响应能力。
在实际应用中,基于深度学习的网络安全监测与入侵检测系统面临一些挑战。
首先,系统需要处理大规模的网络流量数据,对计算资源和存储空间的要求较高。
基于深度学习的网络入侵检测研究网络安全已经成为当下信息化社会面临的重要问题之一。
随着网络攻击日益普及,网络入侵检测逐渐升温成为热点研究领域。
而深度学习作为近年来发展最快的人工智能领域之一,其在网络入侵检测中的应用也成为研究热点。
本文将分为三个部分来探讨基于深度学习的网络入侵检测研究。
一、传统网络入侵检测技术简介网络入侵检测是指通过检测网络流量中异常行为,从而判断网络是否被入侵。
在传统技术中,入侵检测主要分为两种方式:基于特征分析的方法和基于规则的方法。
基于特征分析的方法需要先确定正常的网络流量行为,然后根据异常流量行为进行异常检测。
常用的技术包括统计分析、网络流量分析和机器学习等。
基于规则的方法则是通过预先定义的规则对网络流量进行检测。
当网络流量符合某种规则时,将其警报或阻断。
但是,这种传统入侵检测技术存在一些缺点,例如无法对未知攻击类型产生高质量的检测结果、易受攻击者的规避手段和欺骗、管理困难等。
二、深度学习在网络入侵检测中的应用深度学习技术是利用神经网络模型来学习数据的内在表征,具有很好的自适应性和泛化能力。
由于其自适应和自学习能力,深度学习在网络入侵检测有许多创新性的应用。
其中最重要的是使用卷积神经网络(CNN)和循环神经网络(RNN)来处理网络数据。
1. 卷积神经网络在网络入侵检测中的应用卷积神经网络是一种专门用于处理图像的神经网络模型。
但是它同样可以用于处理网络包的载荷(Payload)数据。
一般卷积神经网络结构包括输入层、卷积层、池化层和全连接层。
在网络入侵检测领域,卷积神经网络使用卷积和池化技术来对流量的载荷数据进行特征提取和降维,然后将其传输到全连接层进行分类。
2. 循环神经网络在网络入侵检测中的应用循环神经网络是一种专门处理序列数据的神经网络模型,可以对时间序列或文本序列进行处理,但它同样也可以用于处理网络流量。
循环神经网络通过一个反馈机制来实现,因此可以将上一个时间步的输出传送到下一个时间步的输入中。
基于深度学习的网络入侵检测与防御技术在当前网络安全威胁不断增加的背景下,网络入侵已经成为一个不容忽视的问题。
为了保护网络系统的安全,人们研发出了多种入侵检测与防御技术。
而在这些技术中,基于深度学习的网络入侵检测与防御技术。
本文将详细介绍该技术的原理、方法和应用。
1. 深度学习在网络安全中的应用深度学习作为一种机器学习的方法,可通过模仿人脑神经系统的工作方式来进行数据处理和模式识别。
近年来,深度学习在诸多领域取得了显著的突破,包括语音识别、图像处理和自然语言处理等。
在网络安全领域,深度学习也展现出了巨大的潜力。
其通过对网络数据进行深层次的特征学习和模式识别,能够更准确地检测和防御各类网络入侵行为。
2. 基于深度学习的网络入侵检测技术基于深度学习的网络入侵检测技术主要分为两个步骤:特征学习和入侵检测。
特征学习阶段利用深度神经网络从原始网络数据中提取有用的特征。
在网络入侵检测中,通常采用卷积神经网络(CNN)和循环神经网络(RNN)等网络结构来实现特征学习。
这些网络结构能够自动地学习网络数据的空间和时间关系,提取出更具辨识度的特征。
入侵检测阶段,基于深度学习的网络入侵检测技术将学习到的特征传入分类器进行分类。
分类器可以是支持向量机(SVM)或者多层感知器(MLP)等。
通过训练数据集的标记信息,深度学习网络可以不断调整参数,提高入侵检测的准确性和鲁棒性。
3. 基于深度学习的网络入侵防御技术网络入侵防御是指通过技术手段保护网络系统免受恶意攻击和入侵行为的侵害。
基于深度学习的网络入侵防御技术主要包括入侵行为预测和入侵行为响应两个方面。
入侵行为预测是指通过分析网络数据和用户行为,预测潜在的入侵行为。
基于深度学习的网络入侵行为预测技术通过学习网络数据的模式和规律,能够较早地发现和预测入侵行为的发生。
这种预测能力可以帮助网络管理员及时采取相应的防御措施,保护网络的安全。
入侵行为响应是指在发现入侵行为后,通过技术手段对入侵者进行应对和阻止。
基于深度学习的网络入侵检测系统随着互联网的飞速发展,网络安全问题日益突出。
网络入侵已成为威胁网络安全的一大问题,给个人、企业和政府带来了巨大的损失。
为了解决这一问题,学者们不断研究并提出了各种网络入侵检测的方法。
其中,基于深度学习的网络入侵检测系统引起了广泛的关注。
深度学习是一种模仿人脑神经网络的人工智能技术,具有强大的数据处理和模式识别能力,适用于处理大规模复杂数据。
网络入侵检测系统利用深度学习的特点,通过学习网络数据的模式和规律,能够有效地识别和报警网络中的异常行为。
首先,深度学习网络入侵检测系统需要构建一个强大的模型。
通常采用的是卷积神经网络(CNN)和递归神经网络(RNN)。
卷积神经网络主要用于处理网络数据的空间特征,而递归神经网络则主要用于处理数据的时间特征。
这两种网络结合起来可以全面地分析网络数据,在检测入侵行为时具有很高的准确性。
其次,深度学习网络入侵检测系统需要进行大规模的数据训练。
深度学习算法需要大量的样本数据进行学习和训练,以提高检测模型的准确率。
这些数据包括正常网络流量和各种恶意网络流量,通过对这些数据进行分类和分析,可以建立一个完备的入侵检测模型。
此外,深度学习网络入侵检测系统还需要进行特征工程。
特征工程是指通过对原始数据进行处理和提取,得到更加有用的特征。
在网络入侵检测中,特征工程的目标是将网络数据转化为模型可以理解的数据,以便进行准确的分类和识别。
常用的特征工程方法包括统计特征提取、时间序列分析等。
在实际应用中,基于深度学习的网络入侵检测系统具有很高的准确率和稳定性。
与传统方法相比,深度学习网络入侵检测系统在处理复杂网络数据和识别新型入侵行为方面具有更好的效果。
同时,深度学习网络入侵检测系统还可以不断地进行模型更新和优化,提高检测效果和抵御新型入侵的能力。
总结起来,基于深度学习的网络入侵检测系统是一种高效、准确的网络安全防护工具。
它借鉴了人脑神经网络的思想,利用深度学习算法对网络数据进行全方位分析和识别,能够及时发现和报警入侵行为,保障网络安全的稳定性和可靠性。
基于深度学习的实时网络入侵检测方法研究与实现基于深度学习的实时网络入侵检测方法研究与实现摘要:随着网络的普及和发展,网络安全问题日益凸显,特别是网络入侵威胁不断增加。
传统的入侵检测方法往往依赖于特定规则和统计模型,这些方法受限于规则库的实时更新和统计模型的表达能力,往往无法有效地识别新型的入侵行为。
基于深度学习的实时网络入侵检测方法通过利用深度神经网络自动学习特征表示,能够提高入侵检测的准确率和实时性。
本文将对基于深度学习的实时网络入侵检测方法进行研究与实现。
一、引言网络入侵行为指的是未经授权的对计算机网络进行非法访问、操控和破坏的行为。
网络入侵行为对网络安全和用户隐私造成了严重威胁,因此网络入侵检测成为了网络安全领域的重要研究方向。
传统的网络入侵检测方法主要基于规则和统计模型,这些方法在识别新型入侵行为和提升实时性方面存在一定的局限性。
随着深度学习方法的发展,基于深度学习的实时网络入侵检测方法开始受到研究者的关注。
二、基于深度学习的实时网络入侵检测方法2.1 数据预处理在深度学习方法中,数据的预处理是非常重要的一步。
网络入侵检测中的数据往往包含大量的冗余信息和噪声,对数据进行合理的预处理可以提高模型的训练效果。
常见的数据预处理方法包括标准化、PCA降维和特征选择等。
通过数据预处理,可以降低输入数据的维度,提高训练速度和模型的泛化能力。
2.2 深度神经网络模型深度学习方法主要依赖于深度神经网络模型对数据进行特征学习和表示学习。
常用的深度神经网络模型包括卷积神经网络(CNN)、循环神经网络(RNN)和长短期记忆网络(LSTM)。
这些模型可以有效地学习数据中的相关特征,提取有用的信息进行分类和识别。
2.3 实时入侵检测系统基于深度学习的实时入侵检测系统主要由数据采集、特征提取、模型训练和检测四个模块组成。
首先,系统需要采集网络流量数据,并对数据进行预处理。
然后,通过深度神经网络模型提取数据中的相关特征。
基于深度学习的网络入侵检测技术网络安全一直是当今社会中的重要议题,随着互联网的迅猛发展和普及,网络入侵问题也越来越严重。
为了保护网络安全,各种网络入侵检测技术应运而生。
本文将介绍基于深度学习的网络入侵检测技术,探讨其原理和应用。
I. 深度学习简介深度学习是机器学习领域的一个分支,通过构建多层神经网络,模拟人类大脑的工作原理,从而实现对复杂数据的高级抽象和分析。
深度学习在计算机视觉、自然语言处理等领域取得了巨大成功,也被应用于网络入侵检测技术的研究中。
II. 基于深度学习的网络入侵检测技术原理基于深度学习的网络入侵检测技术主要分为两个阶段,即训练阶段和测试阶段。
1. 训练阶段在训练阶段,首先需要构建一个深度学习模型,常用的模型包括卷积神经网络(CNN)和循环神经网络(RNN)。
然后,使用带有标签的入侵数据和正常数据对模型进行训练,让模型学习到入侵和正常数据之间的差异。
2. 测试阶段在测试阶段,将训练好的深度学习模型应用于实际网络流量数据的检测。
通过将网络流量数据输入到模型中,模型将输出该数据属于入侵或正常的概率。
根据概率的阈值,可以将网络流量判定为是否存在入侵行为。
III. 基于深度学习的网络入侵检测技术应用基于深度学习的网络入侵检测技术可以应用于各种网络环境中,包括企业内部网络、云计算环境和工业控制系统等。
它能够检测出各种类型的网络入侵行为,如拒绝服务攻击、恶意代码传播等。
1. 企业内部网络在企业内部网络中,基于深度学习的网络入侵检测技术可以帮助企业堵塞网络安全漏洞,防范内部员工的恶意行为,并提升网络的整体安全性。
2. 云计算环境在云计算环境中,基于深度学习的网络入侵检测技术可以检测出由于多租户共享资源而带来的潜在安全风险,并对入侵行为进行实时响应和阻断。
这对于云计算服务提供商来说非常重要,能够提高云计算平台的安全性和可靠性。
3. 工业控制系统工业控制系统是指用于监控和控制工业生产过程的系统,如电力系统、石化系统等。
基于深度学习的网络入侵检测技术研究随着互联网的不断发展和普及,网络安全问题越来越受到重视。
网络入侵是指非法的、未经授权的第三方进入计算机网络系统,通过攻击和破坏网络资源和数据。
为了应对这一威胁,研究人员积极探索各种网络入侵检测技术。
而基于深度学习的网络入侵检测技术因其卓越的性能和可扩展性而备受关注。
一、传统网络入侵检测技术存在的问题传统的网络入侵检测技术主要基于特征匹配的方法,手动构建特征集合来识别已知的入侵模式。
然而,这种方法依赖于人工选择特征和编写规则,需要专业知识和经验。
同时,随着网络流量增长和攻击手法的复杂化,传统方法在准确性和实时性方面面临挑战。
为了解决这些问题,基于深度学习的网络入侵检测技术应运而生。
二、基于深度学习的网络入侵检测技术原理深度学习是一种模拟人脑神经网络的计算模型,通过多层次的非线性变换,从输入数据中学习并提取出高层次的抽象特征。
基于深度学习的网络入侵检测技术利用神经网络的优势,可以自动从原始数据中学习特征表示,无需手动构建特征集合,大大提高了网络入侵检测的准确性和实时性。
三、常用的深度学习模型在网络入侵检测中的应用1. 卷积神经网络(CNN)卷积神经网络是一种经典的深度学习模型,主要用于处理图像数据。
在网络入侵检测中,可以将网络数据视为图像,用CNN模型提取特征并进行分类。
例如,可以使用卷积层提取局部特征,池化层减小数据维度,全连接层进行分类。
2. 递归神经网络(RNN)递归神经网络是一种能够处理序列数据的深度学习模型。
在网络入侵检测中,可以将网络流量序列化后输入RNN模型进行特征提取和分类。
RNN模型能够考虑到前后数据的依赖关系,能够更好地捕捉到入侵行为的规律。
3. 长短期记忆网络(LSTM)长短期记忆网络是一种改进的递归神经网络,主要解决了传统RNN模型在处理长序列数据时出现的梯度消失和梯度爆炸的问题。
LSTM模型在网络入侵检测中具有很好的应用潜力,能够处理更长的网络流量序列,并有效地提取关键特征。
基于神经网络的网络入侵检测 本章从人工神经网络的角度出发,对基于神经网络的网络入侵检测系统展开研究。在尝试用不同的网络结构训练和测试神经网络后,引入dropout层并给出了一种效果较好的网络结构。基于该网络结构,对目前的神经网络训练算法进行了改进和优化,从而有效避免了训练时出现的过拟合问题,提升了训练效率。
4.1 BP神经网络相关理论 本章从学习算法与网络结构相结合的角度出发,神经网络包括单层前向网络、多层前向网络、反馈神经网络、随机神经网络、竞争神经网络等多种类型。构造人工神经网络模型时主要考虑神经元的特征、网络的拓补结构以及学习规则等。本文选择反向传播神经网络(Back Propagation Neural Network, BPNN)作为基本网络模型。 BP神经网络是一种通过误差逆传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络模型形式之一。网络中每一层的节点都只接收上一层的输出,而每一层节点的输出都只影响下一层的输入,同层节点之间没有交互,相邻两层节点之间均为全连接模式。BP神经网络在结构上分为输入层、隐含层与输出层三部分,其拓扑结构如图4-1所示。
图4-1 BP神经网络拓扑结构 Figure 4-1 Topological Structure of BP Neural Network 这里隐含层既可以是一层也可以是多层,数据在输入后由隐含层传递到输出层,通过各层的处理最终得到输出结果。 传统的BP网络算法可分为两个过程:神经网络中信号的前向传播和误差函数的反向传播。算法在执行时会不断调整网络中的权值和偏置,计算输出结果与期望结果之间的误差,当误差达到预先设定的值后,算法就会结束。 (1)前向传播 隐含层第J个节点的输出通过式(4-1)来计算:
(4-1) 式中ωij代表输入层到隐含层的权重,αj代表输入层到隐含层的偏置,n
为输入层的节点个数,f(.)为激活函数。输出层第k个节点的输出通过式(4-2)来计算:
(4-2) 式中ωjk代表隐含层到输出层的权重,bk代表隐含层到输出层的偏置,l为隐含层的结点个数。 根据实际输出与期望输出来计算误差,见式(4-3)。
(4-3) 式中(Yk-Ok)用ek来表示,Yk代表期望输出,m为输出层的结点个数。 当E不满足要求时,就会进入反向传播阶段。 (2)反向传播 反向传播是从输出到输入的传播过程。从式((4-1)至式(4-3 )中,可以发现网络误差E是与各层权值和偏置有关的函数,所以如果想减小误差,需要对权值和偏置进行调整。一般采取梯度下降法反向计算每层的权值增量,令权值的变化量同误差的负梯度方向成正相关,调整的原则是令误差沿负梯度方向不断减少。 权值的更新公式见式(4-4),偏置的更新公式见式(4-5)。 (4-4) (4-5) 式中η为学习速率。 BP算法的整体流程如图4-2所示。
图4-2 BP算法流程图 Figure 4-2 Flow Chart of Back Propagation Algorithm
4.2 网络结构的设计 4.2.1 设计思路 设计网络结构时确定隐含层的层数以及隐含层的节点数是非常重要的。增加隐含层的层数有利于提高精度同时降低网络误差,但是BP神经网络的隐含层层数越多,所需的训练时间也就越长。对于单隐层神经网络而言,隐含层的神经元数量过少会导致网络的学习能力不足。相反,神经元数量越多,网络的学习能力就越强,越容易达到预期的精度,但是相对地会削弱网络的泛化能力,使网络容易达到过拟合状态。为了保证网络拥有足够强的性能及泛化能力,尽量避免在训练时出现过拟合现象,本文在设计网络结构时主要遵循以下原则: (1)在保证神经网络检测精度的前提下,尽量减少神经元的数量; (2)通过仿真实验试探查找隐含层节点数的最优值。 本文中网络结构选择的是多层前馈神经网络,它的结构虽然简单,但是能够实现任意精度逼近任意连续函数,并且可以获得复杂的处理能力,因此分类能力和模式识别能力一般都会强于反馈网络。激活函数选择的是线性整流函数( Rectified Linear Unit, ReLU),也叫作修正线性单元,函数曲线如图4-3所示,其公式见式(4-6)。
图4-3 ReLU函数曲线 Figure 4-3 Function Curve of ReLU (4-6) ReLU激活函数定义了神经元在线性变换wTx+b以后的非线性输出。换句话说,来自上一层网络的输入向量x在进入神经元后,将输出max(0, wTx + b)至下一层神经元。采用ReLU激活函数可以使梯度下降和反向传播的过程更加高效,同时避免了梯度爆炸与梯度消失的问题。此外,该函数没有其他复杂激活函数如Sigmoid函数中指数的影响,并且活跃度较为分散,使得神经网络整体的计算成本减少,从而简化计算过程。 目标函数选择的是Softmax函数。Softmax函数是式(4-7)取负对数后得到的损失函数,其公式见式((4-8)。
(4-7) (4-8) 式中Sj表示j上的得分,Yi表示真实类别。 4.2.2 网络结构及对应实验分析 本文利用生长法来设计神经网络的网络结构,即设计网络结构时,首先确定一种较为简单的网络结构,然后通过增加隐含层数和隐含层节点数来形成其他的网络结构。根据4.2.1中的设计思路,设计并训练了五种不同的神经网络模型,对应的网络结构如图4-4所示。 在图4-4的网络结构中,输入层均由41个神经元构成,输出层由5个神经元构成。x为输入向量,数据输入后通过隐含层最终输出分别属于五个类别的概率,然后将概率最大的类别作为最终的判断结果。其中网络结构a,b,c包含一个隐含层,分别由50, 100, 500个神经元构成;网络结构d, e由两个隐含层构成,前者每个隐含层包含50个神经元,后者每个隐含层包含100个神经元。
a)网络结构a b)网络结构b a) Network Structure a b) Network Structure b c)网络结构c d)网络结构d c) Network Structure c d) Network Structure d
e)网络结构e e) Network Structure e 图4-4神经网络的网络结构 Figure 4-4 Structure of Neural Network 本章训练和测试神经网络时使用了Google推出的Tensorflow深度学习框架,Tensorflow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。它的灵活性和可延展性让用户可以在各种平台上展开计算,例如台式计算机中的单个或多个CPU(GPU)、服务器、移动设备等等,因此主要用于机器学习和深度神经网络方面的研究。本章实验部分的机器配置,显卡采用的是GeForceGT 750M,显存大小为2G,网络训练和测试时使用GPU模式。 用完整训练集分别训练图4-4中的五种网络结构,训练时的参数batch size(每次从训练集中取的数据量)和epochs(使用完整训练集训练的轮数)将影响模型的精度和训练时间。在合理范围内增大batch size对训练有一定好处,可以提高训练的速度,并且batch size越大其确定的下降方向越准确,引起的训练震荡越小。但受显存的限制,不能无限地增大batch size,因此在本实验中batch size设为50。Epochs代表使用完整训练集训练的轮数,由于训练集共包含494021条数据,在batch size = 50的情况下,训练一次完整的数据集就需要9881轮迭代,而完成全部训练过程的总迭代数=9881×epochs。考虑到完整训练集的数据量过于庞大,因此用完整训练集训练时epochs设为50。模型参数采用高斯分布初始化(Gaussian)方法进行初始化,训练时使用随机梯度下降法,基础学习率设置为base_1r=0.01调整策略使用step策略,stepsize=5000,学习率按照式(4-9)进行更新,其中gamma=0.1,iter是当前的训练迭代次数。在以上参数条件下,本文所设计的几种网络结构均可以达到收敛。
(4-9) 训练完成后用测试集分别对这五个模型进行测试,得到的结果见表4-1和4-2。表4-1不同网络结构每种类别的检测率 Table 4-1 Detection Rate of Different Network Structures for Each Category
表4-2不同网络结构的整体效果 Table 4-2 Overall Effect Using Two Training Sets to Train the Structure a 从表4-1中可以看出使用网络结构a训练的模型在四种攻击类别上的检测率都比较高。虽然网络结构c在Normal类别上的检测率高于网络结构a,但是对入侵检测系统来说,检测出攻击流量是最为重要的,并且从表4-2中可以看到网络结构a对整体攻击流量的检测率最高,同时训练和检测时间要少于其他四种结构,这是由于网络结构a的复杂度最低,因此使用它进行训练和测试所需要的时间也就比较少。综上所述,本章选取网络结构a作为神经网络的一个基础候选网络结构,后续的研究也主要是在网络结构a的基础上进行一系列的改进。 4.2.3 Dropout层的引入 训练BP神经网络时经常会遇到的一个问题是容易达到过拟合状态,过拟合是指模型在训练集上损失函数较小,但是在测试集上损失函数较大,预测准确率较低的现象。而dropout的出现可以很好地解决这些问题。dropout是指在神经网络的训练过程中,对于网络中的神经元,按照一定的概率暂时将其从网络中丢弃, 即在每个batch中,让一部分隐层节点值为0。由于是随机丢弃,所以每一个batch都在训练不同的网络,这种方式可以减少神经元之间的相互作用。Hinton在论文中证实了dropout对于全连接网络有防止过拟合的效果。 图4-5为dropout的可视化表示,其中图a)为应用dropout前的神经网络,图b)是应用dropout后的同一个网络,虚线代表临时删除的神经元。