# CNN的相关知识点有哪些
## 一、卷积神经网络(CNN)概述
卷积神经网络(Convolutional Neural Network, CNN)是一种专门用于处理**网格状数据**(如图像、视频、音频等)的深度学习模型。其核心思想是通过**局部连接**、**权值共享**和**空间下采样**来高效提取数据的层次化特征。
### 1.1 CNN的起源与发展
- **1980年**:福岛邦彦提出Neocognitron模型(CNN雏形)
- **1998年**:Yann LeCun提出LeNet-5(首个成功应用于手写数字识别的CNN)
- **2012年**:AlexNet在ImageNet竞赛中夺冠(CNN复兴标志)
- **2015年**:ResNet提出残差学习(解决深层网络退化问题)
### 1.2 与传统神经网络的对比
| 特性 | 传统神经网络 | CNN |
|------------|------------------|-------------------|
| 连接方式 | 全连接 | 局部连接 |
| 参数共享 | 无 | 卷积核共享 |
| 输入顺序 | 无关 | 空间信息敏感 |
| 适用场景 | 结构化数据 | 网格化数据 |
## 二、CNN核心组件详解
### 2.1 卷积层(Convolutional Layer)
**数学表达**:
$$
(f * g)(t) = \int_{-\infty}^{\infty} f(\tau)g(t-\tau)d\tau
$$
离散形式:
$$
(f * g)[n] = \sum_{m=-\infty}^{\infty} f[m]g[n-m]
$$
**关键参数**:
- 卷积核大小(Kernel Size):常见3×3、5×5
- 步长(Stride):控制滑动步幅
- 填充(Padding):
- Valid:不填充
- Same:保持输出尺寸不变
**特征可视化**:
```python
# PyTorch示例
conv = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, stride=1, padding=1)
类型 | 计算方式 | 特点 |
---|---|---|
Max Pooling | 取窗口内最大值 | 保留显著特征,抑制噪声 |
Average Pooling | 计算窗口均值 | 平滑特征,降低方差 |
Global Pooling | 全局池化 | 替代全连接层,减少参数 |
数学表达式(Max Pooling): $\( y_{i,j} = \max_{p,q \in \mathcal{N}(i,j)} x_{p,q} \)$
ReLU(Rectified Linear Unit): $\( f(x) = \max(0,x) \)$
Sigmoid: $\( \sigma(x) = \frac{1}{1+e^{-x}} \)$
Softmax: $\( \text{Softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}} \)$
graph LR
Input-->C1[Conv5x5]-->S2[AvgPool]-->C3[Conv5x5]-->S4[AvgPool]-->FC5-->Output
创新点: - 使用ReLU替代Sigmoid - 引入Dropout(0.5概率) - 数据增强(随机裁剪、水平翻转) - 双GPU并行训练
核心贡献: - 证明小卷积核(3×3)的堆叠有效性 - 16~19层统一架构:
# VGG16特征提取部分
[64, 64, 'M', 128, 128, 'M', 256, 256, 256, 'M',
512, 512, 512, 'M', 512, 512, 512, 'M']
残差块结构: $\( \mathcal{F}(x) + x \)$
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
out = F.relu(self.conv1(x))
out = self.conv2(out)
return F.relu(out + residual)
方法 | 实现效果 |
---|---|
Random Crop | 增加位置鲁棒性 |
Color Jittering | 增强色彩泛化能力 |
CutMix | 区域混合增强 |
AutoAugment | 自动学习增强策略 |
SGD with Momentum: $\( v_t = \gamma v_{t-1} + \eta \nabla_\theta J(\theta) \)\( \)\( \theta = \theta - v_t \)$
Adam:
R-CNN系列:
YOLO系列:
FCN(Fully Convolutional Network):
U-Net:
graph TB
Input-->Down1-->Down2-->Down3-->Down4-->Up1-->Up2-->Up3-->Up4-->Output
Down4-->Up1
Down3-->Up2
Down2-->Up3
Down1-->Up4
模型 | 参数量 | 核心创新 |
---|---|---|
MobileNet | 4.2M | 深度可分离卷积 |
ShuffleNet | 1.4M | 通道混洗+组卷积 |
EfficientNet | 5.3M | 复合缩放(深度/宽度/分辨率) |
时域卷积等价于频域乘积: $\( \mathcal{F}\{f * g\} = \mathcal{F}\{f\} \cdot \mathcal{F}\{g\} \)$
对于卷积层: $\( \frac{\partial L}{\partial w_{l}^{k}} = \sum_{i,j} \frac{\partial L}{\partial z_{l}^{k}} \frac{\partial z_{l}^{k}}{\partial w_{l}^{k}} = \sum_{i,j} \delta_{l}^{k} * a_{l-1}^{k} \)$
递推公式: $\( RF_{l} = RF_{l-1} + (k_l - 1) \times \prod_{i=1}^{l-1} s_i \)$
神经架构搜索(NAS):
Transformer融合:
可解释性研究:
参考文献: 1. LeCun Y, et al. “Gradient-based learning applied to document recognition.” Proceedings of the IEEE 1998. 2. Krizhevsky A, et al. “Imagenet classification with deep convolutional neural networks.” NeurIPS 2012. 3. He K, et al. “Deep residual learning for image recognition.” CVPR 2016. “`
注:本文约2300字,包含CNN的核心概念、数学模型、典型架构及实践应用。可根据需要调整各部分篇幅。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/zhouxinfei/blog/4922604