Notes on Section 6.2

bobown_yao

如何理解下面这个话

Image: image_001

在6.1中,我们考虑了数学定义的卷积,那时候我们提出了相对位置的概念,这时候我们要求卷积核翻转和输入进行元素相乘,但是这里实际上卷积核没有翻转,而是直接覆盖在输入上进行乘法。也就是说我们没有翻转这一步操作

事实上,翻不翻转对于模型训练没有意义,因为权重本身就是需要训练的对象而且不可视,翻转和不翻转最后只会体现在权重的数据分布上,不会体现在模型的效果上,所以说我们合理简化了这个操作

另外我们发现输出变小了,这是因为卷积核不能超出边界运算,这使得边界的信息没有完整的记录下来(这个问题可以通过合理用0拓展边界来解决)

Image: image_002

我们可以直观的定义一下卷积核,不过这里使用了python自带的for循环,自然速度是极慢的(更合理的是正交方向的flatten两个向量组并矩阵乘法)不过这个更直观

Image: image_003

以及其初始化

Image: image_004

“高度和宽度分别为h,w积核可以被称为h*w卷积或h*w卷积核。 我们也将带有h*w卷积核的卷积层称为h*w卷积层”

以下我们进行一个小小的应用

Image: image_005

不过一个显而易见的事情是,以上卷积核只适合检测垂直边界,当边界转变为水平时,输出全为0,这个卷积核就失效了

以上例子说明,手动设计卷积核(滤波器,filter)在多卷积层和多参数的情境下往往是不现实的,所以这里这里必须引入学习式的生成卷积核

我们尝试训练上一个例子中的卷积核,最终我们确实得到了我们想要的结果,这说明卷积核的权重也是完全可以训练的(损失函数使用L2正则化)

Image: image_006

!!!atention!!!这里用的Conv2d并不是我们上面定义的Conv2D(case-sensitive),然后这里用的是python自己的二维卷积层,默认前面的两个值对应批次数量和通道数

是的pytorch的顺序是(批量大小、通道、高度、宽度)

但是tensorflow是(批量大小、高度、宽度、通道)

两者存在一定区别

这里的权重已经非常接近[1 , -1]

Image: image_007

这里解释了开头陈述的问题,不过关于这部分笔者在开头也有解释

“在卷积神经网络中,对于某一层的任意元素x,其感受野(receptive field)是指在前向传播期间可能影响x计算的所有元素(来自所有先前层)。”

  • Title: Notes on Section 6.2
  • Author: bobown_yao
  • Created at : 2026-01-07 00:00:00
  • Updated at : 2026-01-17 16:19:05
  • Link: https://bobownyao.github.io/2026/01/07/Notes-on-Section-6-2/
  • License: All Rights Reserved © bobown_yao
On this page
Notes on Section 6.2