From 9037d337e10b5e569d979aef70d856eb08779a26 Mon Sep 17 00:00:00 2001 From: dothinking Date: Thu, 7 Jul 2022 12:19:10 +0800 Subject: [PATCH] New post: kernel, stride and padding calculation for SPP --- ...02\346\225\260\350\256\241\347\256\227.md" | 237 ++++++++++++++++++ docs/images/2022-07-03.drawio.png | Bin 0 -> 68591 bytes 2 files changed, 237 insertions(+) create mode 100644 "docs/2022-07-03-\347\251\272\351\227\264\351\207\221\345\255\227\345\241\224\346\261\240\345\214\226\357\274\210SPP\357\274\211\345\205\263\351\224\256\345\217\202\346\225\260\350\256\241\347\256\227.md" create mode 100644 docs/images/2022-07-03.drawio.png diff --git "a/docs/2022-07-03-\347\251\272\351\227\264\351\207\221\345\255\227\345\241\224\346\261\240\345\214\226\357\274\210SPP\357\274\211\345\205\263\351\224\256\345\217\202\346\225\260\350\256\241\347\256\227.md" "b/docs/2022-07-03-\347\251\272\351\227\264\351\207\221\345\255\227\345\241\224\346\261\240\345\214\226\357\274\210SPP\357\274\211\345\205\263\351\224\256\345\217\202\346\225\260\350\256\241\347\256\227.md" new file mode 100644 index 0000000..d13ecab --- /dev/null +++ "b/docs/2022-07-03-\347\251\272\351\227\264\351\207\221\345\255\227\345\241\224\346\261\240\345\214\226\357\274\210SPP\357\274\211\345\205\263\351\224\256\345\217\202\346\225\260\350\256\241\347\256\227.md" @@ -0,0 +1,237 @@ +--- +categories: [mathematics] +tags: [math, thinking] +mathjax: true +--- + +# 空间金字塔池化(SPP)关键参数计算 + + +--- + +空间金字塔池化(Spatial Pyramid Pooling)方法关联了不定尺寸输出的卷积层和固定大小的全连接层,一方面可以适应不同尺寸图片输入,避免了统一图片大小的前处理操作;另一方面可以提取不同尺寸的空间特征信息,进而提升模型对于空间布局和物体变形的鲁棒性。SPP的基本原理请参考[原论文](https://arxiv.org/abs/1406.4729)或[相关解读](https://zhuanlan.zhihu.com/p/64510297),本文基于输入输出尺寸,分析SPP关键参数例如窗口尺寸(kernel)、步长(stride)及边距(padding)的计算方法。 + + +## 问题提出 + +已知卷积后输出尺寸 $(w, h)$,空间金字塔池化后目标输出 $(n_w, n_h)$,计算池化层的窗口尺寸$(k_w, k_h)$,步长$(s_w, s_h)$及边距$(p_w, p_h)$。为了简化描述,以下仅基于其中一个维度计算,另一维度采用完全相同的计算公式。因此,相应参数简化为: + +**已知输入、输出尺寸$w$和$n$,求池化窗口尺寸$(k)$,步长$(s)$及边距$(p)$**。 + +如果正向计算,公式为: + +$$ +n = \left \lfloor \frac {w+2p-k} {s} \right \rfloor + 1 +\tag{1} +$$ + +其中 $\lfloor x \rfloor$ 表示对$x$向下取整,例如 $\lfloor 1.5 \rfloor = 1$,同理向上取整符号及例子:$\lceil 1.5 \rceil = 2$。 + +## 原始论文公式 + +[原论文](https://arxiv.org/abs/1406.4729)中的计算公式: + +$$ +k = \left \lceil \frac {w} {n} \right \rceil, +\quad +s = \left \lfloor \frac {w} {n} \right \rfloor, +\quad +p = 0 +\tag{2} +$$ + +有些解读论文的博文指出了问题及反例: + +取 $w=7, n=4$,根据公式(2)得出 $k=2,s=1,p=0$, + +然而将池化参数带入公式(1)却得出矛盾的结果:$n=5$! + + +!!! warning "注意:" + 这是作者为论文中特定场景提出的,确实并不具备(作者也没声明)通用性。 + + +## 初步修正的公式 + +参考[博文](https://www.cnblogs.com/marsggbo/p/8572846.html),给出了如下通用性更好的公式: + +$$ +k = s = \left \lceil \frac {w} {n} \right \rceil \\\\ +p = \left \lfloor \frac {k*n-w+1} {2} \right \rfloor +\tag{3} +$$ + +对上一个例子 $w=7, n=4$,根据公式(3)可以得出正确结果: $k=2,s=2,p=1$。 + +但还是可以找到有问题的例子: + +取 $w=5, n=4$,根据公式(3)得出 $k=2,s=2,p=2$, + +带入公式(1)验证没问题,但是 **pytorch要求 padding 不超过 kernel 的一半** 即 $k >= 2p$,显然此处不满足。 + + +## 可行域分析 + +为了方便分析这个问题,先排除两种特殊情况: + +- 当 $n>w$ 时,不符合SPP的物理意义 + +- 当 $n=1$ 即输出为1时,取窗口正好为输入尺寸:$k=w, s=1, p=0$ + +于是在 $w \geq n \gt 1$ 条件下,列出以下限制条件/不等式: + +$$ +(n-1)*s+k-w \leq 2p \lt n*s+k-w +\tag{4-1} +$$ + +$$ +0 \leq 2p \leq k +\tag{4-2} +$$ + +$$ +1 \leq s \leq k \leq w +\tag{4-3} +$$ + +$$ +(n-1)*s+k \geq w + p +\tag{4-4} +$$ + +其中, + +- 不等式(4-1)直接从等式(1)去掉取整符号得到; +- 不等式(4-2)避免引入过多无意义的边距信息,也是 pytorch 中的一个限制; +- 不等式(4-3)要求步长不大于窗口大小,否则跳过了有效区域; +- 不等式(4-4)左边表示池化操作的实际作用范围,右边表示特征图的有效位置,因此整个式子要求池化操作覆盖所有有效区域。 + +将不等式(4-1)左半部分取整得到 $p$ 的计算公式: + +$$ +p = \left \lceil \frac {(n-1)*s + k - w} {2} \right \rceil +\tag{5} +$$ + +代入 $k=s$,公式(5)退化为公式(3)计算 $p$ 的部分,表明它是公式(5)更具一般性,公式(3)的 $p$ 只是一个特例。 + + +结合(4-1)左半部分和(4-2)右半部分: + +$$ +k \geq 2p \geq (n-1)*s+k-w => s \leq \frac {w} {n-1} +$$ + +结合(4-1)右半部分和(4-3): + +$$ +0 \leq 2p \lt n*s+k-w \leq n*k+k-w => k \gt \frac {w} {n+1} +$$ + +不等式(4-4)缩放一下去掉 $p$: + +$$ +(n-1)*s+k \geq w +$$ + +综合得到: + +$$ +\begin{cases} + 1 \leq s \leq \frac {w} {n-1} \\\\ + \frac {w} {n+1} \lt k \leq w \\\\ + k \geq s \\\\ + k \geq (1-n)*s + w +\end{cases} +\tag{6} +$$ + +注意各个参数都是非负整数,但此刻先不做区分,直接线性规划求解可行域,得到下图。 + +![general-flow](images/2022-07-03.drawio.png) + + +显然,解可能不唯一。我们先得到一个特征点 $P_0(w/n, w/n)$,然后基于不同的策略有不同的选择: + +- 如果沿着绿色箭头方向往 $P_1$ 方向走,窗口大小始终与步长相等,即传统的池化模式。 + +- 如果沿着青色箭头方向往 $P_2$方向走,窗口大小始终大于步长,即带重叠模式的池化。 + +以 $P_1$ 方向为例,因为 $k,s$ 都是正整数,我们取 $P_0$ 右侧最接近的正整数值,即 $k = s = \lceil w/n \rceil $,于是得到了网上常见的初步修正的公式,即上文的公式(3)。 + +至此,可以解释和统一之前的计算方法。 + +### 公式(3)在什么情况下不再适用? + +对照可行域图就很好解释了——绿色线段上可能不存在整数解。 + +例如例子中 $w=5,n=4$,绿色线段两个端点的 $s$ 坐标分别为 1.25 和 1.667,二者之间并不存在正整数。 + +那么,公式(3)在什么条件下才适用呢?令 $w=a*n+b$,其中 $0 \leq b \lt n$,则 + +$$ +\frac {w} {n-1} = \frac {a*n+b} {n-1} = a + \frac {a+b} {n-1} +$$ + +显然,$w/(n-1)$ 的整数部分至少达到 $a+1$ 即 $(a+b)/(n-1) \geq 1$ 时,绿色线段标注的可行域上才有整数解。因此,公式(3)的使用条件: + +$$ +\left \lfloor \frac {w} {n} \right \rfloor + \left(w \mod n\right) + 1 \geq n +\tag{7} +$$ + + + +### 如何处理公式(3)不适用的情况? + +当 $w,n$ 不满足不等式(7)时,公式(3)失效,那就走 $P_2$ 的路线,如青色箭头所示: + +- 此种情况下往右显然不存在可行的$s$了,于是向左一步得到 $P_0$ 附近的 $s$; + +- 然后向上增大 $k$ 知道满足可行域要求。 + + +以上过程反映了公式(2)的思路,但是为了更具通用性,确定 $k$ 时需要检查是否落在可行域内。将公式(2)中 $s$ 的表达式代入(4-4)的缩放式得到 $k$,然后将 $k,s$ 代入公式(5)计算 $p$,最终得到公式(2)的更一般形式: + +$$ +s = \left \lfloor \frac {w} {n} \right \rfloor, +\quad +k = w - (n-1)*s, +\quad +p = 0 +\tag{8} +$$ + + +回到 $w=5,n=4$ 的例子,代入上式得到 $k=2, s=1, p=0$,满足所有约束。 + + +!!! warning "注意:" + 上式和公式(2)的最直接区别是 $k$ 的计算方法。公式(2)在定义 $k,s$ 的同时强行设定 $p=0$(或者说忽略了 $p$ 的计算),实际上三者是相互关联的。公式(8)通过构造 $k$,使 $p=0$ 自然得到满足。 + + +## 完整算法 + +适用条件:$w \geq n \gt 1$,不满足此条件时,参考上文例外描述。 +特别说明:以下算法优先选择传统非重叠的池化方式,只有在无法满足时,才考虑重叠的池化方式。如果倾向于重叠的池化方式,则直接进入第(2)部分即可。 + + +(1)当 $\lfloor w/n \rfloor + \left(w \mod n\right) + 1 \geq n$ 时, + +$$ +s = k = \left \lceil \frac {w} {n} \right \rceil, +\quad +p = \left \lceil \frac {n*k - w} {2} \right \rceil +$$ + +(2)$\lfloor w/n \rfloor + \left(w \mod n\right) + 1 \lt n$ 时, + +$$ +s = \left \lfloor \frac {w} {n} \right \rfloor, +\quad +k = w - (n-1)*s, +\quad +p = 0 +$$ + diff --git a/docs/images/2022-07-03.drawio.png b/docs/images/2022-07-03.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..c8bfeb09034b240f7c7344a37f7c4106512f6177 GIT binary patch literal 68591 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

A|bI$OD-)^l1i_1 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 RxdPx%Ps>>It-5pM{{j72KQ;gW literal 0 HcmV?d00001