《神经网络与深度学习》学习笔记(二):BP网络、CNN基础、视觉应用
一、多层前馈网络与误差反向传播(BP)算法
1.1 多层感知机 MLP
1.1.1 提出背景:XOR 问题
- 单层感知机只能处理线性可分 问题,对异或 XOR这类非线性问题完全失效。
- 1969 年 Minsky 指出该缺陷,直接导致第一次神经网络寒冬。
- XOR 真值表:
- (0,0) → 0
- (0,1) → 1
- (1,0) → 1
- (1,1) → 0
1.1.2 多层感知机结构
- 在输入层与输出层之间加入一层或多层隐层。
- 典型三层结构:输入层 → 隐层 → 输出层。
- 连接规则:
- 层内神经元无连接
- 层间神经元全连接
- 信号单向前向传播
1.1.3 数学表达
- 隐层输出:
y11=f(w111x1+w121x2−θ11) y_{1}^{1}=f\left( w_{11}^{1}x_{1}+w_{12}^{1}x_{2}-\theta {1}^{1}\right) y11=f(w111x1+w121x2−θ11)
y21=f(w211x1+w221x2−θ21) y{2}^{1}=f\left( w_{21}^{1}x_{1}+w_{22}^{1}x_{2}-\theta _{2}^{1}\right) y21=f(w211x1+w221x2−θ21) - 输出层:
y=f(w12y11+w22y21−θ) y=f\left( w_{1}^{2}y_{1}^{1}+w_{2}^{2}y_{2}^{1}-\theta \right) y=f(w12y11+w22y21−θ) - 激活函数 f 常用:阶跃函数、Sigmoid、Tanh。
1.1.4 重要定理
- 若隐层节点可任意设置,三层阈值网络 可实现任意二值逻辑函数。
- 若隐层节点可任意设置,三层 S 型激活网络 能够一致逼近紧集上任意连续函数。
1.2 多层前馈网络与 BP 算法思想
1.2.1 网络定义
- 多层前馈网络 = 多层感知机的推广。
- 每一层只把输出传给下一层,无跨层连接。
- 若每层神经元与上一层全连接 ,称为全连接神经网络 FC。
1.2.2 BP 算法核心流程
BP = 误差反向传播,是有监督学习 ,基于梯度下降。
- 正向传播
- 输入从输入层 → 隐层 → 输出层。
- 计算网络输出与期望输出之间的误差。
- 反向传播
- 误差沿连接通路反向逐层传递。
- 利用梯度下降更新权重与阈值,使误差不断减小。
- 终止条件:输出误差小于阈值或达到最大迭代次数。
1.3 BP 算法详解
1.3.1 基本思想
- 定义损失函数(常用均方误差 MSE):
J=12∑(ytarget−ypredict)2 J=\frac{1}{2}\sum\left(y_{target}-y_{predict}\right)^2 J=21∑(ytarget−ypredict)2 - 对输出层:直接计算误差。
- 对隐层 :利用链式法则,由后一层误差反推当前层误差。
- 按梯度负方向更新权重:
Δwij=−η∂J∂wij \Delta w_{ij}=-\eta\frac{\partial J}{\partial w_{ij}} Δwij=−η∂wij∂J - η:学习率。
1.3.2 训练步骤
- 初始化所有权值 w 与阈值 θ 为小随机数。
- 输入样本,正向计算各层输出。
- 计算输出层误差 δ。
- 反向计算各隐层误差 δ。
- 按误差更新各层权值与阈值。
- 遍历所有样本,反复迭代直到收敛。
1.4 BP 算法评述
1.4.1 优点
- 自主学习,无需人工设计规则。
- 强非线性拟合,可逼近任意复杂函数。
- 结构简单、通用性强,适用于分类、回归、拟合等任务。
1.4.2 缺点
- 非全局收敛,易陷入局部极小值。
- 收敛速度慢,迭代次数多。
- 学习率 η 敏感,过大震荡,过小收敛极慢。
- 网络结构难设计:几层?多少节点?无理论最优解。
- 数据量小时易过拟合。
1.5 常用数据集
1.5.1 MNIST
- 手写数字 0~9,10 分类。
- 28×28 灰度图,60000 训练 + 10000 测试。
1.5.2 Fashion-MNIST
- 服饰分类,10 类。
- 格式与 MNIST 完全一致,用于替代 MNIST 测试算法。
二、卷积神经网络 CNN 基础
2.1 全连接网络的致命缺陷
- 参数爆炸 :1000×1000 图像 → 1M 隐节点 → 参数量达 10^12 量级。
- 问题:
- 计算量巨大,训练极慢。
- 极易过拟合。
- 无法利用图像空间局部相关性。
- 解决思路:局部连接 + 权值共享。
2.2 CNN 核心思想
- 局部连接
每个神经元只与输入图的一小块区域连接,而非全图。 - 权值共享
同一卷积核在整张图上滑动,所有位置共用同一组参数。 - 分层特征提取
- 底层:边缘、角点、纹理。
- 中层:形状、部件。
- 高层:完整物体、语义。
2.3 CNN 基础组件
2.3.1 卷积 Convolution
- 作用:用卷积核提取特征(边缘、纹理等)。
- 多通道卷积:支持 RGB 三通道输入。
- 输出特征图:
zl(x,y)=∑u,val−1(x+u,y+v)⋅wl,k(u,v) z^{l}(x,y)=\sum_{u,v}a^{l-1}(x+u,y+v)\cdot w^{l,k}(u,v) zl(x,y)=u,v∑al−1(x+u,y+v)⋅wl,k(u,v)
2.3.2 填充 Padding
- 在图像边界补 0 或复制像素。
- 作用:
- 保持输出尺寸与输入一致。
- 防止边缘信息丢失。
2.3.3 步长 Stride
- 卷积核每次滑动的像素数。
- 大步长 → 输出尺寸更小,降采样更快。
2.3.4 池化 Pooling(下采样)
- 作用:降低维度,减少计算,保留主要特征,增强鲁棒性。
- 平均池化:取窗口内均值。
- 最大池化:取窗口内最大值(更常用)。
2.4 CNN 中的误差反向传播
2.4.1 池化层反向传播
- 平均池化:误差均匀分配回窗口各位置。
- 最大池化 :误差只回传给最大值位置,其余为 0。
2.4.2 卷积层反向传播
- 误差通过卷积核转置反向传递。
- 权重更新由误差与输入特征图卷积得到。
2.5 经典 CNN 模型
2.5.1 LeNet-5(1998,Yann LeCun)
- 最早成功的 CNN,用于手写数字识别。
- 结构:
- 输入:32×32
- C1 卷积 → S2 池化 → C3 卷积 → S4 池化 → C5 全连接 → F6 全连接 → 输出
- 特点:
- 无 Padding
- 平均池化
- Sigmoid / tanh 激活
- 参数量约 6 万
2.5.2 AlexNet(2012,ImageNet 冠军)
- 开启深度学习时代。
- 8 层可学习层:5 卷积 + 3 全连接。
- 创新点:
- ReLU 激活,解决梯度消失。
- Dropout 防止过拟合。
- 数据增强(裁剪、翻转、光照变化)。
- 双 GPU 并行训练。
- 最大池化。
2.5.3 VGG-16(2014)
- 全部使用 3×3 小卷积核,结构极度规整。
- 16 层可学习参数。
- 参数量约 1.38 亿。
- 通用规律:
- 网络越深 → 特征图宽高越小
- 通道数成倍增加
2.5.4 ResNet 残差网络(2015)
- 解决深度网络难以训练问题:梯度消失 / 爆炸。
- 核心:shortcut 捷径连接
- 浅层输出直接加到深层输出
- 学习残差 F(x) = H(x) − x
- 优势:
- 可训练101 层、152 层超深网络。
- 层数越深,性能越好,不退化。
三、深度学习视觉应用
3.1 常用视觉数据集
3.1.1 MNIST
- 手写数字,10 类,入门必用。
3.1.2 CIFAR-10
- 10 类日常物体,32×32 彩色图。
3.1.3 PASCAL VOC
- 20 类目标。
- 用于:分类、检测、分割。
- 最常用:VOC 2012。
3.1.4 MS COCO
- 80 类,复杂日常场景。
- 标注精度高,是当前目标检测、分割最权威基准。
3.1.5 ImageNet
- 1400 万+ 图像,2 万+ 类别。
- 图像分类里程碑数据集。
3.2 模型评价指标
3.2.1 基础四元组
- TP:真正例
- FP:假正例
- FN:假负例
- TN:真负例
3.2.2 精确率 Precision
P=TPTP+FP P=\frac{TP}{TP+FP} P=TP+FPTP
- 预测为正的样本中,真实正例所占比例。
3.2.3 召回率 Recall
R=TPTP+FN R=\frac{TP}{TP+FN} R=TP+FNTP
- 所有真实正例中,被成功检出的比例。
3.2.4 P-R 曲线
- 横轴:召回率 R
- 纵轴:精确率 P
- 曲线越靠近右上角,模型性能越好。
3.2.5 AP 与 mAP
- AP:单类别 P-R 曲线下面积,平均精度。
- mAP:多类别任务,所有类别 AP 的平均值。
- 目标检测、分割最核心指标。
3.3 核心视觉任务
3.3.1 图像分类
- 输入一张图,输出整个图像的类别。
- 代表模型:LeNet、AlexNet、VGG、ResNet。
3.3.2 目标检测
- 同时完成:定位 + 分类。
- 输出:物体框 + 类别 + 置信度。
- 经典体系:R-CNN → Fast R-CNN → Faster R-CNN → YOLO。
3.3.3 语义分割
- 给每个像素分配类别标签。
- 例:人、车、建筑、道路、背景。
- 代表:FCN、DeepLab v3。
3.3.4 实例分割
- 语义分割 + 区分同类不同个体。
- 例:图中 5 个人,分别标记为不同实例。
3.4 经典视觉方法
3.4.1 YOLO
- One-Stage 目标检测。
- 只看一次:单次前向直接输出框与类别。
- 速度极快,适合实时检测。
3.4.2 FCN 全卷积网络
- 第一个端到端语义分割模型。
- 把全连接层全部换成卷积层。
3.4.3 DeepLab v3
- 带空洞卷积 + 空间金字塔池化。
- 多尺度捕捉特征,分割精度高。
四、本章总结
-
BP 网络
- 多层前馈 + 误差反向传播,是深度学习的基础训练算法。
- 可拟合任意非线性,但易局部最优、收敛慢。
-
CNN
- 用局部连接 + 权值共享解决全连接网络参数爆炸问题。
- 擅长图像类任务,自动提取分层特征。
- 经典路线:LeNet → AlexNet → VGG → ResNet。
-
视觉应用
- 围绕分类、检测、分割三大任务。
- 用 mAP、Precision、Recall 评估性能。
- 代表方法:YOLO、FCN、DeepLab。
本文为工大《深度学习与神经网络》课程要求学习总结,仅供参考,版权归原作者所有,侵权请联系删除,谢谢。