【动手学深度学习】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,从而将输入的高度和宽度都减半
  • 下面是一个稍微复杂的例子
  • 然而在实践中我们很少用不一致的步幅和填充
相关推荐
外域速览24 分钟前
OpenAI 智能体「越狱」风波未平,苹果折叠屏 iPhone Ultra 下周三登场
人工智能·ios·iphone
william_yangshun5 小时前
【AI Agent 实战】agent-vision-toolkit 中文版:给纯文本模型(DeepSeek)装上视觉能力
人工智能·多模态
智能体与具身智能5 小时前
TVA具身智能的概念、架构与应用(19)
人工智能·python·具身智能
AI智能体工作室5 小时前
生产级 RAG 检索增强架构实战:向量数据库、混合检索(Hybrid Search)、RRF 融合与重排(Rerank)全链路
人工智能
geinvse_seg5 小时前
我做了个 AI 架构审查员,把整个微服务项目通读了一遍,还顺手做成了 Skill
人工智能
李帅朋5 小时前
微分基本定义笔记
人工智能·笔记·深度学习·神经网络
醍醐实验室5 小时前
下一代端到端全模态(Omni)模型解密:离散音频 Token 化与极速双工流式交互架构
人工智能
米小虾5 小时前
你的 Agent 有 1000 万上下文,为什么第 50 轮就开始失忆?
人工智能·agent
东风破_5 小时前
Text2SQL :用自然语言操作 SQLite 数据库
人工智能·后端
吴佳浩 Alben5 小时前
Agent 怎么做自动化评测?构建端到端的 Agent Evaluation 体系
人工智能·语言模型·架构·自动化·ai编程