🎙️ 语音朗读
当前: 晓晓 (温柔女声)
CNN卷积神经网络原理详解
卷积神经网络(Convolutional Neural Network,CNN)是深度学习中最成功的架构之一,尤其在计算机视觉领域取得了突破性的成果。
卷积操作
卷积是CNN的核心操作,通过卷积核在输入特征图上滑动,提取局部特征:
1 | import numpy as np |
CNN的核心组件
1. 卷积层(Convolutional Layer)
卷积层通过可学习的卷积核提取特征。关键参数包括:
- 卷积核大小(Kernel Size):通常使用3×3或5×5
- 步长(Stride):卷积核每次移动的像素数
- 填充(Padding):在输入边缘补零,控制输出尺寸
2. 池化层(Pooling Layer)
池化层用于降低特征图的空间维度,减少参数量和计算量:
1 | def max_pool2d(input_matrix, pool_size=2, stride=2): |
3. 全连接层(Fully Connected Layer)
全连接层将提取的特征映射到最终输出空间,通常用于分类任务。
经典CNN架构
LeNet-5
LeNet-5是最早的CNN架构之一,由Yann LeCun于1998年提出:
1 | import torch |
感受野与特征层次
CNN的一个重要特性是层次化的特征提取:
- 浅层:提取边缘、纹理等低级特征
- 中层:提取部件、形状等中级特征
- 深层:提取语义、对象等高级特征
1×1卷积的作用
1×1卷积看似简单,但有着重要的作用:
- 实现跨通道信息的组合与交互
- 进行降维或升维,减少计算量
- 增加非线性表达
用PyTorch实现图像分类
1 | import torch |
总结
CNN通过卷积操作的局部连接和权值共享,大幅减少了参数量,同时保持了空间局部性。从LeNet到现代的ResNet、EfficientNet,CNN架构不断演进,但其核心原理始终不变。理解卷积、池化和反向传播是掌握CNN的关键。