1. 核心基础:LeNet-5网络原理详解
LeNet-5作为卷积神经网络的开山之作,最初由Yann LeCun在1998年提出用于手写数字识别。我们将这个经典架构改造用于网络入侵检测任务,需要深入理解其每一层的设计逻辑。
1.1 适配后LeNet-5网络结构(入侵检测专用)
我们调整后的网络结构如下:
- 输入层:32×32×1(匹配预处理后的流量特征图)
- C1层:6个5×5卷积核,步长1,ReLU激活
- S2层:2×2最大池化,步长2
- C3层:16个5×5卷积核,步长1,ReLU激活
- S4层:2×2最大池化,步长2
- C5层:120个5×5卷积核(实际为全连接层)
- F6层:84个神经元的全连接层
- 输出层:5个神经元(对应KDD99的5类流量)
关键调整:原始LeNet-5输入为32×32的手写数字图像,我们将其通道数改为1以匹配流量特征的单通道特性。输出层从10类改为5类以适应KDD99数据集的分类需求。
1.2 核心层作用补充(新手必看)
卷积层设计原理:
- 5×5卷积核:相比3×3能捕获更大范围的流量特征关联性
- 通道数递增:通过6→16→120的通道扩展逐步提取深层特征
- 步长1:保留更多空间信息,这对检测攻击特征至关重要
池化层特殊考量:
- 最大池化:相比平均池化更能保留异常流量的显著特征
- 2×2窗口:在降维和保留特征间取得平衡
- 步长2:将特征图尺寸减半,控制计算量
1.3 实验环境准备(衔接第一篇)
确保环境与预处理阶段一致:
bash复制Python 3.8+
TensorFlow 2.6+
matplotlib 3.4+
numpy 1.19+
验证预处理数据是否可用:
python复制import numpy as np
X_train = np.load('preprocessed/X_train.npy')
print(f"训练集形状:{X_train.shape}") # 应输出(样本数, 32, 32, 1)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. LeNet-5模型构建与训练全流程
2.1 步骤1:导入依赖库与加载预处理数据
python复制import tensorflow as tf
from tenso
