差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| 深度学习:卷积神经网络 [2026/03/02 22:07] – [1.4 经典CNN架构] 张叶安 | 深度学习:卷积神经网络 [2026/03/02 22:15] (当前版本) – [4. 答案与解析] 张叶安 | ||
|---|---|---|---|
| 行 207: | 行 207: | ||
| 计算:第$l$层的感受野 | 计算:第$l$层的感受野 | ||
| + | |||
| $$RF_l = RF_{l-1} + (k_l - 1) \times \prod_{i=1}^{l-1} s_i$$ | $$RF_l = RF_{l-1} + (k_l - 1) \times \prod_{i=1}^{l-1} s_i$$ | ||
| 行 213: | 行 214: | ||
| **特征层次:** | **特征层次:** | ||
| - | - **浅层**(低层):边缘、角点、纹理等低级特征 | + | |
| - | - **中层**:纹理模式、简单形状 | + | - **中层**:纹理模式、简单形状 |
| - | - **高层**:物体部件、语义概念 | + | - **高层**:物体部件、语义概念 |
| 这种层次结构使CNN能够从简单特征构建复杂表示。 | 这种层次结构使CNN能够从简单特征构建复杂表示。 | ||
| 行 233: | 行 234: | ||
| 用于上采样,是卷积的逆操作(非数学逆): | 用于上采样,是卷积的逆操作(非数学逆): | ||
| - | - 别名:反卷积(Deconvolution)、分数步长卷积 | + | |
| - | - 应用:图像生成、语义分割的上采样 | + | - 应用:图像生成、语义分割的上采样 |
| **1.6.3 可分离卷积(Separable Convolution)** | **1.6.3 可分离卷积(Separable Convolution)** | ||
| 将标准卷积分解为深度卷积(Depthwise)和逐点卷积(Pointwise): | 将标准卷积分解为深度卷积(Depthwise)和逐点卷积(Pointwise): | ||
| - | - 深度卷积:对每个输入通道单独卷积 | + | |
| - | - 逐点卷积:$1 \times 1$卷积混合通道 | + | - 逐点卷积:$1 \times 1$卷积混合通道 |
| 计算量大幅减少,MobileNet的核心技术。 | 计算量大幅减少,MobileNet的核心技术。 | ||
| 行 247: | 行 248: | ||
| 将输入通道分组,每组独立卷积: | 将输入通道分组,每组独立卷积: | ||
| - | - AlexNet中使用(GPU内存限制) | + | |
| - | - ResNeXt的核心 | + | - ResNeXt的核心 |
| - | - 当组数等于通道数时,即为深度可分离卷积 | + | - 当组数等于通道数时,即为深度可分离卷积 |
| ==== 1.7 CNN的训练与优化 ==== | ==== 1.7 CNN的训练与优化 ==== | ||
| 行 255: | 行 256: | ||
| **1.7.1 权重初始化** | **1.7.1 权重初始化** | ||
| - | - **Xavier/ | + | |
| - | $$W \sim U\left[-\frac{\sqrt{6}}{\sqrt{n_{in}+n_{out}}}, | + | $$W \sim U\left[-\frac{\sqrt{6}}{\sqrt{n_{in}+n_{out}}}, |
| - | - **He初始化**:专为ReLU设计 | + | |
| - | $$W \sim N(0, \sqrt{2/ | + | $$W \sim N(0, \sqrt{2/ |
| **1.7.2 学习率调度** | **1.7.2 学习率调度** | ||
| - | - 阶梯衰减(Step decay) | + | |
| - | - 指数衰减 | + | - 指数衰减 |
| - | - 余弦退火(Cosine annealing) | + | - 余弦退火(Cosine annealing) |
| - | - 学习率预热(Warmup) | + | - 学习率预热(Warmup) |
| **1.7.3 正则化策略** | **1.7.3 正则化策略** | ||
| - | - L2权重衰减 | + | |
| - | - Dropout | + | - Dropout |
| - | - 数据增强 | + | - 数据增强 |
| - | - 标签平滑 | + | - 标签平滑 |
| - | - 早停 | + | - 早停 |
| ==== 1.8 CNN的应用领域 ==== | ==== 1.8 CNN的应用领域 ==== | ||
| 行 310: | 行 311: | ||
| **局限性:** | **局限性:** | ||
| 1. 缺乏全局建模能力(局部感受野限制) | 1. 缺乏全局建模能力(局部感受野限制) | ||
| + | |||
| 2. 对旋转、尺度变化鲁棒性有限 | 2. 对旋转、尺度变化鲁棒性有限 | ||
| + | |||
| 3. 需要大量标注数据 | 3. 需要大量标注数据 | ||
| + | |||
| 4. 难以处理非网格数据 | 4. 难以处理非网格数据 | ||
| **发展趋势:** | **发展趋势:** | ||
| + | |||
| 1. **Vision Transformer(ViT)**:用注意力机制替代卷积 | 1. **Vision Transformer(ViT)**:用注意力机制替代卷积 | ||
| + | |||
| 2. **ConvNeXt**:结合CNN与Transformer的优点 | 2. **ConvNeXt**:结合CNN与Transformer的优点 | ||
| + | |||
| 3. **神经架构搜索(NAS)**:自动设计网络结构 | 3. **神经架构搜索(NAS)**:自动设计网络结构 | ||
| + | |||
| 4. **轻量化设计**:MobileNet、ShuffleNet、EfficientNet-Lite | 4. **轻量化设计**:MobileNet、ShuffleNet、EfficientNet-Lite | ||
| + | |||
| 5. **自监督学习**:减少标注依赖 | 5. **自监督学习**:减少标注依赖 | ||
| 行 326: | 行 335: | ||
| **题目**:计算以下卷积层的参数量: | **题目**:计算以下卷积层的参数量: | ||
| - | - 输入特征图:$64 \times 64 \times 3$(3通道彩色图像) | + | |
| - | - 卷积核大小:$5 \times 5$ | + | - 卷积核大小:$5 \times 5$ |
| - | - 输出通道数:64 | + | - 输出通道数:64 |
| - | - 使用偏置项 | + | - 使用偏置项 |
| **分析过程**: | **分析过程**: | ||
| 行 339: | 行 348: | ||
| 权重参数总数 = 输出通道数 $\times$ 卷积核大小 | 权重参数总数 = 输出通道数 $\times$ 卷积核大小 | ||
| + | |||
| $$= C_{out} \times k \times k \times C_{in}$$ | $$= C_{out} \times k \times k \times C_{in}$$ | ||
| + | |||
| $$= 64 \times 5 \times 5 \times 3$$ | $$= 64 \times 5 \times 5 \times 3$$ | ||
| + | |||
| $$= 64 \times 75$$ | $$= 64 \times 75$$ | ||
| + | |||
| $$= 4800$$ | $$= 4800$$ | ||
| **偏置参数**: | **偏置参数**: | ||
| + | |||
| 每个输出通道有一个偏置值 | 每个输出通道有一个偏置值 | ||
| + | |||
| 偏置参数总数 = 输出通道数 = 64 | 偏置参数总数 = 输出通道数 = 64 | ||
| **总参数量**: | **总参数量**: | ||
| + | |||
| $$4800 + 64 = 4864$$ | $$4800 + 64 = 4864$$ | ||
| **对比全连接层**: | **对比全连接层**: | ||
| + | |||
| 如果将输入展平为$64 \times 64 \times 3 = 12288$维向量,输出64维,则全连接层参数为: | 如果将输入展平为$64 \times 64 \times 3 = 12288$维向量,输出64维,则全连接层参数为: | ||
| + | |||
| $$12288 \times 64 + 64 = 786496$$ | $$12288 \times 64 + 64 = 786496$$ | ||
| 行 358: | 行 376: | ||
| **输出特征图尺寸**: | **输出特征图尺寸**: | ||
| + | |||
| 假设使用same填充($P=2$)和步长$S=1$: | 假设使用same填充($P=2$)和步长$S=1$: | ||
| + | |||
| $$H_{out} = \left\lfloor \frac{64 + 2 \times 2 - 5}{1} \right\rfloor + 1 = 64$$ | $$H_{out} = \left\lfloor \frac{64 + 2 \times 2 - 5}{1} \right\rfloor + 1 = 64$$ | ||
| 行 367: | 行 387: | ||
| **题目**:计算以下网络的感受野(从输入到最后一层卷积层): | **题目**:计算以下网络的感受野(从输入到最后一层卷积层): | ||
| | 层 | 类型 | 核大小 | 步长 | | | 层 | 类型 | 核大小 | 步长 | | ||
| - | |---|------|--------|------| | ||
| | 1 | 卷积 | 3×3 | 1 | | | 1 | 卷积 | 3×3 | 1 | | ||
| | 2 | 池化 | 2×2 | 2 | | | 2 | 池化 | 2×2 | 2 | | ||
| 行 434: | 行 453: | ||
| 更深层的理论解释: | 更深层的理论解释: | ||
| - | - 残差函数$F(x)$通常比原始映射$H(x)$更接近零,具有更小的数值范围 | + | |
| - | - 这缓解了深层网络的梯度消失问题 | + | - 这缓解了深层网络的梯度消失问题 |
| - | - 实验表明,添加残差连接后,深层网络(100+层)可以比浅层网络训练得更好 | + | - 实验表明,添加残差连接后,深层网络(100+层)可以比浅层网络训练得更好 |
| **(2) 维度不匹配的处理** | **(2) 维度不匹配的处理** | ||
| 行 469: | 行 488: | ||
| 关键观察:梯度由两部分组成: | 关键观察:梯度由两部分组成: | ||
| - | - 第一部分$\frac{\partial L}{\partial y}$直接传递梯度(捷径) | + | |
| - | - 第二部分通过残差路径传递 | + | - 第二部分通过残差路径传递 |
| 这意味着即使$\frac{\partial F}{\partial x}$很小,梯度仍能通过恒等连接有效传播,缓解了梯度消失问题。 | 这意味着即使$\frac{\partial F}{\partial x}$很小,梯度仍能通过恒等连接有效传播,缓解了梯度消失问题。 | ||
| 行 479: | 行 498: | ||
| 1. 卷积神经网络中,权值共享的主要目的是: | 1. 卷积神经网络中,权值共享的主要目的是: | ||
| - | A. 增加模型容量 | + | |
| - | | + | A. 增加模型容量 |
| - | | + | |
| - | | + | B. 减少参数量 |
| + | |||
| + | C. 提高计算速度 | ||
| + | |||
| + | D. 增加非线性 | ||
| 2. 对于$7 \times 7$的输入,使用$3 \times 3$卷积核、步长2、无填充,输出尺寸为: | 2. 对于$7 \times 7$的输入,使用$3 \times 3$卷积核、步长2、无填充,输出尺寸为: | ||
| - | A. $5 \times 5$ | + | |
| - | | + | A. $5 \times 5$ |
| - | | + | |
| - | | + | B. $4 \times 4$ |
| + | |||
| + | C. $3 \times 3$ | ||
| + | |||
| + | D. $2 \times 2$ | ||
| 3. ResNet中解决深层网络训练困难的关键技术是: | 3. ResNet中解决深层网络训练困难的关键技术是: | ||
| - | A. 批归一化 | + | |
| - | | + | A. 批归一化 |
| - | | + | |
| - | | + | B. 残差连接 |
| + | |||
| + | C. Dropout | ||
| + | |||
| + | D. 数据增强 | ||
| 4. 空洞卷积(Dilated Convolution)的主要优势是: | 4. 空洞卷积(Dilated Convolution)的主要优势是: | ||
| - | A. 减少计算量 | + | |
| - | | + | A. 减少计算量 |
| - | | + | |
| - | | + | B. 扩大感受野 |
| + | |||
| + | C. 增加参数量 | ||
| + | |||
| + | D. 提高精度 | ||
| 5. 在VGGNet中,使用两个$3 \times 3$卷积替代一个$5 \times 5$卷积的好处不包括: | 5. 在VGGNet中,使用两个$3 \times 3$卷积替代一个$5 \times 5$卷积的好处不包括: | ||
| - | A. 参数量减少 | + | |
| - | | + | A. 参数量减少 |
| - | | + | |
| - | | + | B. 非线性增加 |
| + | |||
| + | C. 感受野不变 | ||
| + | |||
| + | D. 计算量增加 | ||
| ==== 二、填空题 ==== | ==== 二、填空题 ==== | ||
| 行 533: | 行 572: | ||
| 1. **答案:B** | 1. **答案:B** | ||
| - | 解析:权值共享使同一个卷积核在输入的不同位置使用相同参数,大幅减少参数量。 | + | |
| + | 解析:权值共享使同一个卷积核在输入的不同位置使用相同参数,大幅减少参数量。 | ||
| 2. **答案:C** | 2. **答案:C** | ||
| - | 解析:$H_{out} = \lfloor \frac{7 + 0 - 3}{2} \rfloor + 1 = \lfloor 2 \rfloor + 1 = 3$ | + | |
| + | 解析:$H_{out} = \lfloor \frac{7 + 0 - 3}{2} \rfloor + 1 = \lfloor 2 \rfloor + 1 = 3$ | ||
| 3. **答案:B** | 3. **答案:B** | ||
| - | 解析:残差连接(Skip Connection)是ResNet的核心创新,允许梯度直接传播,解决深层网络的退化问题。 | + | |
| + | 解析:残差连接(Skip Connection)是ResNet的核心创新,允许梯度直接传播,解决深层网络的退化问题。 | ||
| 4. **答案:B** | 4. **答案:B** | ||
| - | 解析:空洞卷积在卷积核中插入空洞,可以在不增加参数的情况下扩大感受野。 | + | |
| + | 解析:空洞卷积在卷积核中插入空洞,可以在不增加参数的情况下扩大感受野。 | ||
| 5. **答案:D** | 5. **答案:D** | ||
| - | 解析:两个$3 \times 3$卷积参数量为$2 \times 3 \times 3 = 18$,一个$5 \times 5$为25,参数量减少而非增加。 | + | |
| + | 解析:两个$3 \times 3$卷积参数量为$2 \times 3 \times 3 = 18$,一个$5 \times 5$为25,参数量减少而非增加。 | ||
| **二、填空题答案:** | **二、填空题答案:** | ||
| 6. **答案:1** | 6. **答案:1** | ||
| - | 解析:标准卷积输出尺寸公式。 | + | |
| + | 解析:标准卷积输出尺寸公式。 | ||
| 7. **答案:**降维(或减少通道数);通道混合(或特征融合) | 7. **答案:**降维(或减少通道数);通道混合(或特征融合) | ||
| - | 解析:$1 \times 1$卷积在Inception中用于减少计算量和混合不同通道的信息。 | + | |
| + | 解析:$1 \times 1$卷积在Inception中用于减少计算量和混合不同通道的信息。 | ||
| 8. **答案:**深度(Depthwise);逐点(Pointwise) | 8. **答案:**深度(Depthwise);逐点(Pointwise) | ||
| - | 解析:深度可分离卷积先对每个通道单独卷积,再用$1 \times 1$卷积混合通道。 | + | |
| + | 解析:深度可分离卷积先对每个通道单独卷积,再用$1 \times 1$卷积混合通道。 | ||
| 9. **答案:**ReLU;Dropout | 9. **答案:**ReLU;Dropout | ||
| - | 解析:AlexNet首次在大规模CNN中使用ReLU和Dropout。 | + | |
| + | 解析:AlexNet首次在大规模CNN中使用ReLU和Dropout。 | ||
| 10. **答案:**$1 \times 1$(或1×1) | 10. **答案:**$1 \times 1$(或1×1) | ||
| - | | + | |
| + | 解析:全局平均池化对整个特征图取平均,输出单个值。 | ||
| **三、计算题答案:** | **三、计算题答案:** | ||
| 11. **解答:** | 11. **解答:** | ||
| - | | + | |
| - | $= 512 \times 3 \times 3 \times 256$ | + | 权重参数 = $C_{out} \times k \times k \times C_{in}$ |
| - | $= 512 \times 9 \times 256$ | + | |
| - | $= 1179648$ | + | $= 512 \times 3 \times 3 \times 256$ |
| + | |||
| + | $= 512 \times 9 \times 256$ | ||
| + | |||
| + | $= 1179648$ | ||
| | | ||
| - | | + | 偏置参数 = 512 |
| | | ||
| - | | + | 总参数量 = $1179648 + 512 = 1180160$(约118万) |
| 12. **解答:** | 12. **解答:** | ||
| - | | + | |
| - | - 初始:$RF_0 = 1$ | + | 逐层计算感受野: |
| - | - 第一层:$RF_1 = 1 + (3-1) \times 1 = 3$ | + | - 初始:$RF_0 = 1$ |
| - | - 第二层:$RF_2 = 3 + (3-1) \times 1 = 5$ | + | - 第一层:$RF_1 = 1 + (3-1) \times 1 = 3$ |
| - | - 第三层:$RF_3 = 5 + (3-1) \times 1 = 7$ | + | - 第二层:$RF_2 = 3 + (3-1) \times 1 = 5$ |
| + | - 第三层:$RF_3 = 5 + (3-1) \times 1 = 7$ | ||
| | | ||
| - | | + | 最终感受野为$7 \times 7$。 |
| | | ||
| - | | + | 验证:三个$3 \times 3$卷积的堆叠等价于一个$7 \times 7$卷积的感受野。 |
| 13. **解答:** | 13. **解答:** | ||
| - | | + | |
| - | 输出尺寸:$64 \times 64$,输出通道256 | + | **标准卷积计算量**: |
| - | 每个输出点的计算:$3 \times 3 \times 128$次乘加 | + | |
| - | 总计算量 = $64 \times 64 \times 256 \times 3 \times 3 \times 128$ | + | 输出尺寸:$64 \times 64$,输出通道256 |
| - | $= 4096 \times 256 \times 9 \times 128$ | + | |
| - | $= 1207959552$(约12亿次乘加) | + | 每个输出点的计算:$3 \times 3 \times 128$次乘加 |
| + | |||
| + | 总计算量 = $64 \times 64 \times 256 \times 3 \times 3 \times 128$ | ||
| + | |||
| + | $= 4096 \times 256 \times 9 \times 128$ | ||
| + | |||
| + | $= 1207959552$(约12亿次乘加) | ||
| | | ||
| - | | + | **深度可分离卷积计算量**: |
| - | 深度卷积:$64 \times 64 \times 128 \times 3 \times 3 = 4718592$ | + | |
| - | 逐点卷积:$64 \times 64 \times 128 \times 256 = 134217728$ | + | 深度卷积:$64 \times 64 \times 128 \times 3 \times 3 = 4718592$ |
| - | 总计算量 = $138936320$(约1.39亿次) | + | |
| + | 逐点卷积:$64 \times 64 \times 128 \times 256 = 134217728$ | ||
| + | |||
| + | 总计算量 = $138936320$(约1.39亿次) | ||
| | | ||
| - | | + | 深度可分离卷积计算量约为标准卷积的11.5%,显著降低了计算开销。 |