4:卷积神经网络理论
我们为什么需要CNN?
Section titled “我们为什么需要CNN?”MLP已经可以处理数据了,为什么不直接把图片展开成向量送入MLP,还需要CNN?
1. 参数的断崖式减少
Section titled “1. 参数的断崖式减少”给出一张 的彩色图像,展开后长度为:
假设第一个全连接层有 个神经元,那么参数量为多少?
而一个输入通道为 、输出通道为 、卷积核为 的卷积层,参数量又是多少?
请回答以下问题:
两种方法的参数量分别是多少?
为什么卷积层的参数量与图片宽高无关?
参数过多会带来什么问题?
什么是局部连接、参数共享、卷积核、特征图(?)
2. 空间结构的关联性
Section titled “2. 空间结构的关联性”请回答一个思考题:
将图片展平成一维向量后,原本相邻的像素是否仍然能被模型明确识别为“上下左右相邻”?
3. 猫被移动以后也是一只猫
Section titled “3. 猫被移动以后也是一只猫”现在假设有两张图,第一张图有一只可爱的小茂密🐱在图片的左边,第二张图有一只一模一样的猫出现在了图片的右边。
如果模型已经学会在左上角检测猫耳朵,是否需要重新学习如何在右下角检测相同的猫耳朵?
什么是参数共享、平移等变性、平移不变性(?)
单通道图像中的卷积
Section titled “单通道图像中的卷积”1. 二值图像
Section titled “1. 二值图像”二值图像中的每个像素只有0或1,通常分别代表背景和前景(或者理解为黑和白)。
例如:
可以把它看成一个简单的白色矩形。
2. 互相关与卷积
Section titled “2. 互相关与卷积”给出卷积核:
在不使用填充、步幅为 1 的情况下,请计算 (X) 与 (K) 的互相关结果。
输出特征图的尺寸是多少?
这个卷积核主要用于检测哪种方向的边缘?
数学卷积和互相关有什么简单区别?
3. 填充与步幅
Section titled “3. 填充与步幅”什么是填充和步幅?
写出卷积输出尺寸的计算公式。
动手实现一下conv2d吧!(诶等等什么是conv2d?)
class Conv2d: def __init__(self, ...): # 初始化逻辑 self.weight = ... # 权重怎么初始化? self.bias = ... # 偏置很重要!
def forward(self, ...): # 前向传播的魔法在这里发生 ...4. 池化与感受野
Section titled “4. 池化与感受野”最大池化和平均池化分别会保留什么信息?
什么是感受野?
请你自己动手实现⭐池化层双子星⭐
class MaxPool2d: # 最大值池化:真爱至上!
class AvgPool2d: # 平均池化:尽收眼底!彩色图像与多通道卷积
Section titled “彩色图像与多通道卷积”1. RGB的魔法
Section titled “1. RGB的魔法”一张 RGB 图像可以表示为:
现在输入图像大小为: ,使用 16 个大小为 、步幅为 1、填充为 1 的卷积核。
写出卷积层权重和输出特征图的形状。
计算该卷积层的参数量。
使用示意图或文字说明:一个输出通道是如何由 R、G、B 三个输入通道共同得到的?
2. 麻雀虽小,五脏俱全——1×1 卷积
Section titled “2. 麻雀虽小,五脏俱全——1×1 卷积”给出大小为:的输入特征图,使用输出通道数为 16 的 卷积。
请计算输出尺寸和参数量,并解释:
卷积没有观察相邻像素,为什么仍然有用?
完整CNN的结构
Section titled “完整CNN的结构”1. 庐山真面目?
Section titled “1. 庐山真面目?”下面给出一个简单 CNN 的网络结构。该结构为示意代码,不要求直接运行:
输入:3 × 32 × 32
卷积层:Conv2d(3, 16, kernel_size=3, padding=1)激活层:ReLU池化层:MaxPool2d(kernel_size=2, stride=2)
卷积层:Conv2d(16, 32, kernel_size=3, padding=1)激活层:ReLU池化层:MaxPool2d(kernel_size=2, stride=2)
全局平均池化:GlobalAveragePooling全连接层:Linear(32, 10)请完成:
写出每一层的输出形状。
说明卷积层、激活函数、池化层和全连接层各自承担什么任务。
为什么卷积层之间需要加入激活函数?
全局平均池化与直接使用Flatten展开有什么区别?
2. BatchNorm 与 Dropout
Section titled “2. BatchNorm 与 Dropout”请查阅 BatchNorm 和 Dropout,并简单说明:
它们各自有什么作用?
为什么它们在训练阶段和推理阶段的行为不同?
现代卷积神经网络
Section titled “现代卷积神经网络”现代卷积神经网络进行了很长一段时间的变革,从水下AlexNet的小试牛刀,到ResNet的现代文明,每一步都是智慧的结晶!
AlexNet 🌱 → VGG 🌿 → NiN 🌳 → GoogLeNet 🌲 → ResNet 🚀 → ······完成下面的表格:
| 网络 | 最有代表性的设计 |
|---|---|
| AlexNet | |
| VGG | |
| NiN | |
| GoogLeNet | |
| ResNet(重点!) |
-
代码文件: ml-4-姓名-学号.py
-
文档文件: ml-4-姓名-学号.md
-
压缩后一起提交
-
邮箱: gimmerml401@163.com
-
主题: 4-姓名-学号
出题人:
Parzival
QQ:450621609
