跳转到内容

4:卷积神经网络理论

机器学习Banner

MLP已经可以处理数据了,为什么不直接把图片展开成向量送入MLP,还需要CNN?

给出一张 32×32×332×32×3 的彩色图像,展开后长度为:32×32×3=307232×32×3=3072

假设第一个全连接层有 512512 个神经元,那么参数量为多少?

而一个输入通道为 33、输出通道为 1616、卷积核为 3×33×3 的卷积层,参数量又是多少?

请回答以下问题:

两种方法的参数量分别是多少?

为什么卷积层的参数量与图片宽高无关?

参数过多会带来什么问题?

什么是局部连接、参数共享、卷积核、特征图(?)

请回答一个思考题:

将图片展平成一维向量后,原本相邻的像素是否仍然能被模型明确识别为“上下左右相邻”?

现在假设有两张图,第一张图有一只可爱的小茂密🐱在图片的左边,第二张图有一只一模一样的猫出现在了图片的右边。

如果模型已经学会在左上角检测猫耳朵,是否需要重新学习如何在右下角检测相同的猫耳朵?

什么是参数共享、平移等变性、平移不变性(?)

二值图像中的每个像素只有0或1,通常分别代表背景和前景(或者理解为黑和白)。

例如:

X=[0000000110001100011000000]X= \begin{bmatrix} 0&0&0&0&0\\ 0&0&1&1&0\\ 0&0&1&1&0\\ 0&0&1&1&0\\ 0&0&0&0&0 \end{bmatrix}

可以把它看成一个简单的白色矩形。

给出卷积核:

K=[101101101]K= \begin{bmatrix} -1&0&1\\ -1&0&1\\ -1&0&1 \end{bmatrix}

在不使用填充、步幅为 1 的情况下,请计算 (X) 与 (K) 的互相关结果。

输出特征图的尺寸是多少?

这个卷积核主要用于检测哪种方向的边缘?

数学卷积和互相关有什么简单区别?

什么是填充和步幅?

写出卷积输出尺寸的计算公式。

动手实现一下conv2d吧!(诶等等什么是conv2d?)

class Conv2d:
def __init__(self, ...):
# 初始化逻辑
self.weight = ... # 权重怎么初始化?
self.bias = ... # 偏置很重要!
def forward(self, ...):
# 前向传播的魔法在这里发生
...

最大池化和平均池化分别会保留什么信息?

什么是感受野?

请你自己动手实现⭐池化层双子星

class MaxPool2d:
# 最大值池化:真爱至上!
class AvgPool2d:
# 平均池化:尽收眼底!

一张 RGB 图像可以表示为:XR3×H×WX\in\mathbb{R}^{3×H×W}

现在输入图像大小为:3×32×323×32×32 ,使用 16 个大小为 3×33×3、步幅为 1、填充为 1 的卷积核。

写出卷积层权重和输出特征图的形状。

计算该卷积层的参数量。

使用示意图或文字说明:一个输出通道是如何由 R、G、B 三个输入通道共同得到的?

2. 麻雀虽小,五脏俱全——1×1 卷积

Section titled “2. 麻雀虽小,五脏俱全——1×1 卷积”

给出大小为:64×56×5664×56×56的输入特征图,使用输出通道数为 16 的 1×11×1 卷积。

请计算输出尺寸和参数量,并解释:

1×11×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展开有什么区别?

请查阅 BatchNorm 和 Dropout,并简单说明:

它们各自有什么作用?

为什么它们在训练阶段和推理阶段的行为不同?

现代卷积神经网络进行了很长一段时间的变革,从水下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

邮箱:450621609@qq.com