动手学深度学习——卷积层详解:卷积核是怎么被学出来的?

一、前言

在上一节"图像卷积"中,我们已经知道了卷积最基本的计算方式:

  • 卷积核在输入图像上滑动

  • 每次取一个局部区域

  • 做逐元素相乘再求和

  • 最后得到输出特征图

到这里,我们已经明白了:

卷积本质上是在做局部特征提取。

但是,前一节更多还是在讲"卷积这个操作本身"。

接下来更关键的问题是:

卷积层和普通卷积操作有什么关系?
卷积核是谁给的?是手工设计的吗?
为什么神经网络里的卷积层能够自己学出边缘、纹理这些特征?

这就是"卷积层"这一节要解决的核心内容。

如果说上一节是在讲"卷积怎么计算",

那么这一节就是在讲:

卷积为什么可以成为神经网络中的可学习层。

这一点非常关键,因为它是后面整个卷积神经网络成立的基础。


二、什么是卷积层

所谓卷积层,可以先简单理解成:

把卷积操作做成一个带可学习参数的神经网络层。

这里最关键的词是:

  • 卷积操作

  • 可学习参数

前面我们手写卷积时,卷积核是自己给定的,例如:

这个核可以检测边缘。

但在深度学习里,通常不会让人手工去设计这些核,而是:

把卷积核中的数值也当成模型参数,让网络自己学。

所以卷积层本质上就是:

  • 前向传播时做卷积

  • 反向传播时更新卷积核参数

也就是说,卷积层和全连接层一样,都是:

带参数、可训练、可反向传播的层


三、卷积层和全连接层有什么共同点

虽然卷积层看起来和全连接层很不一样,但本质上二者有很多共同点。

1. 都有可学习参数

  • 全连接层有权重矩阵和偏置

  • 卷积层有卷积核参数和偏置

2. 都是线性变换的一种

本质上都在做加权求和。

3. 都可以接激活函数

例如卷积层后面也常接:

  • ReLU

  • Sigmoid

  • Tanh

4. 都通过反向传播更新参数

训练时,损失函数会指导参数不断优化。

所以从神经网络角度看,卷积层不是一种"完全不同的生物",而是:

更适合图像结构的一种特殊线性层。


四、卷积层和普通卷积操作的区别

这一点一定要区分清楚。

1. 普通卷积操作

更偏向数学或图像处理中的一个固定运算。

例如:

  • 给定输入

  • 给定卷积核

  • 算出输出

这里卷积核往往是固定的。

2. 神经网络中的卷积层

不仅会做卷积运算,而且卷积核本身是可以学的。

也就是说:

  • 前向传播:卷积核参与计算

  • 反向传播:卷积核被更新

所以卷积层真正厉害的地方,不只是"会卷积",而是:

会自己学出适合当前任务的卷积核。


五、为什么说卷积层是"可学习的特征提取器"

前面我们提到,卷积核可以看成一个局部模式探测器。

例如某些卷积核可能学到:

  • 水平边缘

  • 垂直边缘

  • 某种纹理

  • 某种角点模式

那么卷积层的本质其实就是:

让这些"探测器"不再由人手工设计,而是由数据和任务自动决定。

例如在图像分类任务中:

  • 如果识别猫狗最重要的是毛发纹理,卷积层就会倾向学这种模式

  • 如果识别数字最重要的是笔画边缘,卷积层就会倾向学这种模式

所以卷积层的真正价值在于:

它能自动学习怎样提取局部特征,而不是让人写死规则。


六、用一个例子理解卷积层怎么"学"

假设有一个简单任务:

输入一张图,输出其中是否存在明显的垂直边界。

如果我们手工设计,可能会直接给一个卷积核:

但如果交给神经网络做,通常流程是:

1. 初始化

卷积核随机初始化,比如:

2. 前向传播

用这个核去卷积输入图像,得到预测结果。

3. 计算损失

看预测和真实标签差多远。

4. 反向传播

根据损失对卷积核参数求梯度。

5. 更新参数

不断把卷积核调整到更适合当前任务的方向。

训练很多轮之后,这个卷积核可能就逐渐变成接近边缘检测器的形式。

所以:

卷积核不是天生就懂边缘,而是在训练中学会"怎样检测有用特征"。


七、卷积层中的参数到底是什么

在最简单的二维卷积层中,参数通常包括:

1. 卷积核权重

也就是小窗口中的那些数值。

例如一个 (2 \times 2) 核:

这 4 个值就是参数。

2. 偏置 bias

卷积输出通常还可以加一个偏置项。

所以一个最简单的卷积层在某个位置上的输出可以写成:

其中:

  • (X) 是局部输入区域

  • (K) 是卷积核

  • (b) 是偏置

  • (\odot) 表示逐元素乘法

所以卷积层和全连接层一样,也有"权重 + 偏置"的结构。


八、卷积层为什么参数少得多


九、卷积层中的"层"体现在哪里

很多同学会问:

卷积不是一个操作吗,为什么叫卷积层?

因为在神经网络里,"层"不只是一个静态公式,而是一个完整的模块。

一个层通常包括:

  • 输入

  • 参数

  • 前向计算规则

  • 输出

  • 参与训练更新

卷积层恰好满足这些条件:

输入

图像或上一层特征图

参数

卷积核和偏置

前向规则

对输入做卷积

输出

新的特征图

训练

通过反向传播更新卷积核

所以它当然是一个标准的神经网络层。


十、PyTorch 中的卷积层

在 PyTorch 中,最常见的二维卷积层就是:

复制代码
nn.Conv2d

例如:

复制代码
import torch
from torch import nn

conv2d = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=2, bias=True)
print(conv2d.weight)
print(conv2d.bias)

这里的含义是:

  • in_channels=1:输入通道数为 1

  • out_channels=1:输出通道数为 1

  • kernel_size=2:卷积核大小为 (2 \times 2)

  • bias=True:使用偏置

这个层一创建出来,权重和偏置就是随机初始化的。

后面训练时,它们会自动更新。


十一、卷积层学习边缘检测的经典实验

李沐这部分课程里有一个很经典的小实验,就是:

让卷积层自己学出边缘检测器。

例如,我们构造一个输入矩阵,左边全是 1,右边全是 0,中间有明显竖直边界:

复制代码
import torch
from torch import nn

X = torch.ones((6, 8))
X[:, 2:6] = 0
print(X)

对应的目标输出是边界响应:

复制代码
Y = torch.zeros((6, 7))
Y[:, 1:5] = -1
Y[:, 5] = 1
print(Y)

然后定义一个卷积层:

复制代码
conv2d = nn.Conv2d(1, 1, kernel_size=(1, 2), bias=False)

让它去拟合这个目标。

这意味着:

  • 输入是一张"有边界的图"

  • 输出希望是"边界检测结果"

  • 卷积核从随机开始

  • 最后学出类似 ([1, -1]) 或 ([-1, 1]) 的边缘核

这个实验特别经典,因为它直观展示了:

卷积层不是人手工写规则,而是通过训练自己学会规则。


十二、一个适合 CSDN 展示的代码示例

下面给你一版适合博客放的代码:

复制代码
import torch
from torch import nn

# 1. 构造输入图像:中间有明显竖直边界
X = torch.ones((6, 8))
X[:, 2:6] = 0

# 2. 构造目标输出:表示边界响应
Y = torch.zeros((6, 7))
Y[:, 1] = 1
Y[:, 5] = -1

# 3. 调整形状,符合 Conv2d 输入要求
X = X.reshape((1, 1, 6, 8))
Y = Y.reshape((1, 1, 6, 7))

# 4. 定义卷积层
conv2d = nn.Conv2d(1, 1, kernel_size=(1, 2), bias=False)

# 5. 训练卷积层
lr = 0.03
for i in range(10):
    Y_hat = conv2d(X)
    loss = (Y_hat - Y) ** 2
    conv2d.zero_grad()
    loss.sum().backward()
    conv2d.weight.data[:] -= lr * conv2d.weight.grad
    if (i + 1) % 2 == 0:
        print(f'epoch {i+1}, loss {loss.sum():.4f}')

# 6. 查看学到的卷积核
print("学到的卷积核:")
print(conv2d.weight.data.reshape((1, 2)))

运行后你通常会发现,最终卷积核会接近:

\[1, -1

]

或者符号相反但功能相同的形式。


十三、为什么这个实验这么重要

因为它用最简单的方式说明了三个核心事实:

1. 卷积核是参数

不是固定规则,而是可以训练的。

2. 卷积层可以从数据中学特征

不是人告诉它边缘长什么样,而是它自己学。

3. 卷积层是神经网络的一部分

它和其他层一样,可以前向传播、反向传播、更新参数。

这意味着从这一节开始,我们对 CNN 的理解就真正从"图像处理操作"进入到"可训练神经网络层"的层面了。


十四、卷积层输出的本质是什么

卷积层输出的仍然是一个特征图。

但和前一节相比,这里要更进一步理解:

这个特征图不只是某个固定卷积核的响应图,而是"当前任务下,模型学出来的局部模式响应图"。

也就是说:

  • 如果卷积层学的是边缘核,那么输出就强调边缘

  • 如果学的是纹理核,那么输出就强调纹理

  • 如果学的是更复杂局部模式,那么输出就会对这种模式有较强响应

所以卷积层输出可以理解成:

当前网络对输入局部结构的一种可学习表示。


十五、卷积层和全连接层再做一次本质对比

全连接层

  • 参数很多

  • 不利用空间结构

  • 适合一般向量输入

卷积层

  • 参数共享,参数更少

  • 强调局部结构

  • 非常适合图像输入

更关键的是,卷积层不是简单"参数少",而是:

用更符合图像规律的方式来建模。

这也是为什么在图像任务中,卷积层几乎成为基础配置。


十六、卷积层的局限是什么

学习时也要注意,卷积层并不是完美无缺。

1. 更依赖局部模式

它天然强调局部区域,但全局关系需要靠更深层或更大感受野来捕获。

2. 对几何变化的适应性有限

比如旋转、尺度变化,普通卷积并不天然完全鲁棒。

3. 需要后续结构配合

例如:

  • 多层堆叠

  • 池化

  • 多通道

  • 更深网络结构

所以卷积层很重要,但它通常只是整个 CNN 的基本构件之一。


十七、这一节其实在回答什么问题

如果把这一节抽象一点看,它其实在回答的是:

为什么卷积不只是一个图像处理技巧,而能成为深度学习中的基础层。

答案就在于:

  • 卷积核可以参数化

  • 参数可以学习

  • 学习过程可以纳入反向传播

  • 因此卷积层可以自动适配任务

这一步非常关键。

因为从这时开始,CNN 就不再只是"用固定滤波器处理图像",而是变成了:

一个能自动学会特征提取规则的神经网络。


十八、这一节最核心的一句话

如果让我用一句话总结"卷积层"这一节,我会写成:

卷积层 = 可学习卷积核 + 卷积运算,它能通过训练自动学出适合任务的局部特征提取器。

这句话你可以直接记住。

它把卷积层最关键的三件事都说清楚了:

  • 有卷积核

  • 卷积核可学习

  • 学到的是局部特征提取规则


十九、我对这一节的理解

学这一节之前,我对卷积核的理解还停留在"一个滑动的小模板"。

但学完卷积层之后,我才真正意识到:

真正厉害的不是这个模板会滑动,而是这个模板里的数值可以自己学。

这一下就把"图像处理"和"深度学习"区分开了。

传统图像处理中,很多核是人为设计的;

而在卷积神经网络里,模型会根据任务自己学出这些核。

所以卷积层真正强大的地方,不是卷积这个动作本身,而是:

把卷积变成了可训练模块。


二十、结语

"卷积层"是学习卷积神经网络过程中非常关键的一节。

前一节"图像卷积"让我们弄懂了卷积怎么算,而这一节则进一步让我们明白:

  • 卷积层为什么是一个神经网络层

  • 卷积核为什么能自动学出来

  • 卷积层为什么能成为图像任务中的基础模块

当你真正理解这一层之后,后面再去学:

  • 填充和步幅

  • 多输入多输出通道

  • 池化层

  • 更深的 CNN 结构

都会顺很多。


二十一、重点速记版

1. 什么是卷积层

带可学习卷积核的神经网络层。

2. 卷积层和普通卷积操作有什么区别

普通卷积核通常固定,卷积层的卷积核可以训练更新。

3. 卷积层的参数包括什么

卷积核权重和偏置。

4. 卷积层为什么参数少

因为使用了局部连接和参数共享。

5. 卷积层输出是什么

特征图,即对某种局部模式的响应图。

6. 卷积核是怎么来的

通常随机初始化,然后通过训练自动学习。

7. 卷积层最核心的价值是什么

能自动学习适合当前任务的局部特征提取器。


二十二、适合 CSDN 的结尾模板

以上就是我对《动手学深度学习》中 卷积层 这一节的学习整理。

这一节让我真正理解了:卷积神经网络的关键不只是"用卷积处理图像",而是"让卷积核也能参与学习"。也正因为这样,卷积层才从一个普通的图像处理操作,变成了深度学习中强大的特征提取模块。

我觉得这一节最值得反复体会的一点就是:卷积核不是人工写死的,而是模型根据任务自动学出来的。把这一点想透,后面学习 CNN 的很多内容都会自然很多。


按你这个顺序,下一篇最自然就是:
《动手学深度学习------填充和步幅》

相关推荐
沸点小助手4 小时前
「百虾大战 & 晒晒你的Token账单」沸点获奖名单公示|本周互动话题上新🎊
人工智能·ai编程·沸点
cyyt4 小时前
深度学习周报(3.23~3.29)
人工智能·深度学习
badhope4 小时前
10个高星GitHub项目推荐
python·深度学习·计算机视觉·数据挖掘·github
科威舟的代码笔记4 小时前
OpenClaw 权限风险深度剖析与 AI Agent 授权治理的技术思考
人工智能·openclaw
DeepModel4 小时前
【特征选择】嵌入法(Embedded)
人工智能·python·深度学习·算法
云烟成雨TD4 小时前
Spring AI 1.x 系列【14】三月双版本连发!Spring AI 最新功能全掌握
java·人工智能·spring
LaughingZhu4 小时前
Product Hunt 每日热榜 | 2026-03-28
数据库·人工智能·经验分享·神经网络·chatgpt
nimadan125 小时前
**Minimax写小说软件2025推荐,AI辅助创作提升故事流畅度与情节合理性**
人工智能·python
码农三叔5 小时前
第三卷:《人形机器人的控制与运动规划》
人工智能·机器人·人形机器人