神经网络与深度学习课程总结:卷积神经网络基础

神经网络与深度学习课程总结:卷积神经网络基础


📚 课程全景概览

课程主题:哈尔滨工业大学《神经网络与深度学习》第五讲
核心内容:CNN基础理论、经典网络架构、数据集应用实践
技术亮点:LeNet-5手写实现、AlexNet双GPU策略、ResNet残差思想
适合读者:CV方向研究生/算法工程师/深度学习爱好者


第一部分:深度学习的必要性

1.1 全连接网络的致命缺陷

问题类型具体表现数学量化
参数爆炸输入1000×1000图像,隐含层1M节点时参数量级达 1 0 12 10^{12} 1012
计算效率低下权值矩阵过大导致GPU显存溢出单层计算复杂度 O ( n 2 ) O(n^2) O(n2)
梯度消失Sigmoid激活函数导致深层网络梯度指数衰减 ∏ i = 1 L σ ′ ( z i ) w i \prod_{i=1}^L \sigma'(z_i)w_i i=1Lσ(zi)wi
过拟合风险高维空间中模型复杂度过高VC维理论证明

1.2 局部连接与参数共享

# 全连接 vs 局部连接对比
class FullyConnected(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc = nn.Linear(1000*1000, 1000000)  # 1e12参数

class ConvNet(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv = nn.Conv2d(3, 64, kernel_size=3)  # 3x3x3x64=1,728参数

第二部分:CNN 核心组件详解

2.1 卷积操作的数学本质

离散卷积公式
( f ∗ g ) ( x , y ) = ∑ u = − k k ∑ v = − k k f ( x − u , y − v ) ⋅ g ( u , v ) (f * g)(x, y) = \sum_{u=-k}^{k} \sum_{v=-k}^{k} f(x - u, y - v) \cdot g(u, v) (fg)(x,y)=u=kkv=kkf(xu,yv)g(u,v)

  • f:输入特征图
  • g:卷积核(需翻转后计算相关操作)
  • 输出尺寸
    N o u t = ⌊ N i n + 2 p − k s ⌋ + 1 N_{out} = \left\lfloor \frac{N_{in} + 2p - k}{s} \right\rfloor + 1 Nout=sNin+2pk+1

多通道卷积

  • 输入:6x6x3(RGB三通道)
  • 卷积核:3x3x3(每个通道独立卷积后求和)
  • 输出:4x4x1(单通道特征图)

2.2 池化层的降维魔法

池化类型计算公式特点
Max Pooling( a_{pool} = \max(a_{ij}) )保留纹理特征,抑制噪声
Average Pooling( a_{pool} = \frac{1}{k^2} \sum a_{ij} )平滑特征,LeNet-5采用此方式

2.3 反向传播的梯度计算

卷积层梯度公式

∂ L ∂ w u v l = ∑ x , y δ l ( x , y ) ⋅ a l − 1 ( x + u , y + v ) {\frac{\partial L}{\partial w^l_{uv}} = \sum_{x,y} \delta^l(x, y) \cdot a^{l-1}(x + u, y + v)} wuvlL=x,yδl(x,y)al1(x+u,y+v)

  • δ ′ \delta' δ:当前层误差信号
  • a l − 1 a^{l-1} al1:上一层激活值
池化层梯度示例
  • 假设2x2最大池化前向输出为 [5, 2; 3, 1]
  • 反向传播时梯度分配:
  • 梯度矩阵 → [δ, 0; 0, 0](仅最大值位置传递梯度)

第三部分:LeNet-5 手写数字识别实战

3.1 网络结构分解

Input(32x32)
├── Conv1(5x5, 6@28x28) → 122,304连接
├── AvgPool1(2x2) → 6@14x14
├── Conv2(5x5, 16@10x10) → 16,000连接
├── AvgPool2(2x2) → 16@5x5
├── FC1(120) → 48,120参数
├── FC2(84) → 10,164参数
└── Output(10) → RBF分类

3.2 关键参数计算

C1层参数示例:

  • 每个神经元参数:5×5权重 + 1偏置 = 26
  • 总连接数:26 × 6 × 28×28 = 122,304

现代改进方向:

  • 使用ReLU替代Sigmoid
  • 增加Padding保持尺寸
  • 引入Batch Normalization

第四部分:经典CNN架构演进

4.1 AlexNet:深度学习的黎明

里程碑式创新
  • ReLU激活函数:解决梯度消失,加速训练
    → 对比实验证明,ReLU vs Sigmoid训练速度提升6倍
  • Dropout正则化:全连接层以0.5概率随机失活
  • 多GPU并行:GTX 580双卡训练,互相优化卷积核
  • 数据增强:输入图片翻转、水平偏移、光照扰动等

网络结构细节
层类型参数设置输出尺寸
Conv111×11, stride4, 96 filters55×55×96
MaxPool13×3, stride227×27×96
Conv25×5, pad2, 256 filters27×27×256
MaxPool23×3, stride213×13×256
FC Layers3层全连接(4096→4096→1000)1000维分类

4.2 VGG-16:深度统一的典范

结构特点
  • 小卷积核:全部使用3×3卷积,堆叠获得大感受野
    → 两个3×3卷积感受野 ≈ 一个5×5卷积(参数减少28%)
  • 通道增强策略:每次池化后通道数翻倍(64→128→256→512)
  • 全连接替代:最后三层FC替换为全局平均池化

参数量分布

Total params: 138 million

  • Conv Layers: 14.7M (约11%)
  • FC Layers: 123M (约89%)
    → 现代网络通常移除全连接层以降低参数量

4.3 ResNet:跨越深度的鸿沟

残差块设计
class ResidualBlock(nn.Module):
    def __init__(self, in_channels):
        super().__init__()
        self.conv1 = nn.Conv2d(in_channels, in_channels, 3, padding=1)
        self.conv2 = nn.Conv2d(in_channels, in_channels, 3, padding=1)

    def forward(self, x):
        residual = x
        x = F.relu(self.conv1(x))
        x = self.conv2(x)
        x += residual  # 跳跃连接
        return F.relu(x)
性能对比
网络深度训练误差(Top-1)测试误差(Top-5)
ResNet-3418.4%6.7%
ResNet-15216.9%5.2%

第五部分:CV领域核心数据集

5.1 数据集全景图

数据集规模任务类型特点
MNIST70k (28×28)手写数字分类入门级,快速验证模型
CIFAR-1060k (32×32)物体分类小尺寸彩色图像基准
PASCAL VOC11k检测/分割20类,XML标注格式标准化
COCO330k实例分割/关键点检测复杂场景,80类,Mask标注
ImageNet1.2M大规模分类1000类,推动深度学习革命

5.2 数据加载示例(PyTorch)

# COCO数据集加载
from torchvision.datasets import CocoDetection

dataset = CocoDetection(
    root='path/to/images',
    annFile='path/to/annotations.json',
    transform=transforms.ToTensor()
)

# 输出示例
print(f"图像总数量:{len(dataset)}")
print(f"标注字段:{dataset.coco.dataset['categories']}")

第六部分:关键问题深度思考

Q1:浅层网络已足够,为什么需要深度模型?

  • 理论层面:深层网络具有更强的特征抽象能力(参考:Cover定理)
  • 实验证据:ImageNet竞赛中,ResNet-152错误率比AlexNet降低80%
  • 生物类比:人类视觉皮层V1→V4的多级处理机制

Q2:如何设计交通监控系统数据集?

  1. 数据来源:路口摄像头实况流 + 公开数据集(Cityscapes)
  2. 标注要求:行人/车辆边界框 + 运动轨迹标注
  3. 增强策略:雨天/雾天模拟、遮挡物合成
  4. 评估指标:mAP(平均精度)、FPS(检测速度)

附录:学习资源导航

扩展阅读清单

  1. 经典论文

    • [AlexNet] ImageNet Classification with Deep Convolutional Neural Networks
    • [ResNet] Deep Residual Learning for Image Recognition
  2. 实战代码

  3. 在线课程

    • Coursera《Deep Learning Specialization》
    • 斯坦福CS231n《卷积神经网络视觉识别》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值