【动手学深度学习】6.3 填充与步幅(个人向笔记)

  • 卷积的输出形状取决于输入形状和卷积核的形状
  • 在应用连续的卷积后,我们最终得到的输出大小远小于输入大小,这是由于卷积核的宽度和高度通常大于1导致的
  • 比如,一个 240 × 240 240×240 240×240像素的图像,经过10层 5 × 5 5×5 5×5的卷积后,将减少到 200 × 200 200×200 200×200像素。如此一来,原始图像的边界丢失了许多有用信息。而填充是解决此问题最有效的方法
  • 有时,我们可能希望大幅降低图像的宽度和高度。例如,如果我们发现原始的输入分辨率十分冗余。步幅则可以在这类情况下提供帮助。

1. 填充

  • 上面提到我们在应用多层卷积的时候常常丢失边缘像素
  • 解决此问题的简单方法就是填充:在输入图像的边界填充元素(通常是0)
  • 下图就是一个填充的例子
  • 通常,如果我们添加 p h p_h ph 行填充,大约一半在顶部一半在底部,和 p w p_w pw 列填充,大约一半在左边一半在右边,那么输出的形状就会变为如下所示
  • 这就意味着输出的高度和宽度分别增加 p h p_h ph 和 p w p_w pw
  • 在许多情况下我们会设置 p h = k h − 1 p_h=k_h-1 ph=kh−1 和 p w = k w − 1 p_w=k_w-1 pw=kw−1,使输入和输出具有相同的高度和宽度。这样可以在构建网络时更容易预每个图层的输出形状。
  • 如果 k h k_h kh 为奇数,那么我们将在高度的两侧填充 p h / 2 p_h/2 ph/2 行。而如果 k h k_h kh 是偶数,则另一种可能性就是在顶部输入填充 p h / 2 p_h/2 ph/2 上取整,而对底部下取整。宽度同理
  • 而卷积神经网络中卷积核的高度和宽度通常为奇数。选择计数的好处是保持空间维度的同时可以在顶部和底部填充数量相同的行,在左侧和右侧填充相同适量的列
  • 对于任何二维张量 x,当满足:① 卷积核的大小是奇数 ② 所有边的填充行数和列数相同 ③ 输出与输入具有相同的宽度和高度。那么我们就可以说输出 V[i,j] 是通过以输入 X[i,j] 为中心,与卷积核进行互相关计算得到的
  • 在下面给出上面所述情形的一个例子
  • 当卷积核的高度和宽度不同时,我们可以填充不同的高度和宽度,如下图所示

2. 步幅

  • 有时为了高效计算或缩减采样次数,卷积窗口可以跳过中间位置,每次滑动多个元素
  • 我们将每次滑动元素的数量称为步幅,目前为止我们只使用过高度或者宽度为1的步幅
  • 下图是垂直步幅为 3,水平步幅为 2 的互相关运算。着色部分是输出元素以及用于输出计算的输入和内核张量元素
  • 通常,当垂直步幅为 s h s_h sh,水平步幅为 s w s_w sw 时,输出形状为:
  • 如果我们设置了 p h = k h − 1 p_h=k_h-1 ph=kh−1 和 p w = k w − 1 p_w=k_w-1 pw=kw−1,那么输出形状将简化为如下
  • 如果更进一步,输入和输出的高度和宽度可以被垂直和水平步整除的话,输出形状可以被进一步简化为
  • 下面我们将高度和宽度的步幅都设置为2,从而将输入的高度和宽度都减半
  • 下面是一个稍微复杂的例子
  • 然而在实践中我们很少用不一致的步幅和填充
相关推荐
d111111111d1 天前
在STM32函数指针是什么,怎么使用还有典型应用场景。
笔记·stm32·单片机·嵌入式硬件·学习·算法
Exploring1 天前
从零搭建使用 Open-AutoGML 搜索附近的美食
android·人工智能
静小谢1 天前
前后台一起部署,vite配置笔记base\build
前端·javascript·笔记
阿里云大数据AI技术1 天前
在 DataWorks 中一键部署大模型,即刻用于数据集成和数据开发
人工智能
AI科技星1 天前
质量定义方程常数k = 4π m_p的来源、推导与意义
服务器·数据结构·人工智能·科技·算法·机器学习·生活
机器之心1 天前
OpenAI推出全新ChatGPT Images,奥特曼亮出腹肌搞宣传
人工智能·openai
机器之心1 天前
SIGGRAPH Asia 2025:摩尔线程赢图形顶会3DGS挑战赛大奖,自研LiteGS全面开源
人工智能·openai
_Stellar1 天前
从输入到输出:大语言模型一次完整推理简单解析
人工智能·语言模型·自然语言处理
【建模先锋】1 天前
特征提取+概率神经网络 PNN 的轴承信号故障诊断模型
人工智能·深度学习·神经网络·信号处理·故障诊断·概率神经网络·特征提取