深度学习:池化(Pooling)
池化(Pooling)操作在卷积神经网络中用于降低特征图的尺寸,减少计算量,并提供某种程度的平移不变性。我们以最常用的最大池化(Max Pooling)为例,来解释池化操作之后的特征图大小计算。
假设有以下参数:
- 输入特征图大小:(Hin×Win)( H{in} \times W{in} )(Hin×Win)
- 池化窗口大小:(K×K)( K \times K )(K×K)
- 步幅:( S )
- 填充:( P )
池化之后的输出特征图大小可以用以下公式计算:
Hout=⌊Hin−K+2PS⌋+1H{out} = \left\lfloor \frac{H{in} - K + 2P}{S} \right\rfloor + 1 Hout=⌊SHin−K+2P⌋+1
Wout=⌊Win−K+2PS⌋+1W{out} = \left\lfloor \frac{W{in} - K + 2P}{S} \right\rfloor + 1 Wout=⌊SWin−K+2P⌋+1
示例
假设输入特征图的大小是(4×4)(4 \times 4)(4×4),池化窗口大小是$ (2 \times 2)$,步幅是 (2),无填充(即 (P = 0))。
参数:
- (Hin=4)( H_{in} = 4 )(Hin=4)
- (Win=4)( W_{in} = 4 )(Win=4)
- ( K = 2 )
- ( S = 2 )
- ( P = 0 )
计算:
Hout=⌊4−2+02⌋+1=⌊22⌋+1=1+1=2 H{out} = \left\lfloor \frac{4 - 2 + 0}{2} \right\rfloor + 1 = \left\lfloor \frac{2}{2} \right\rfloor + 1 = 1 + 1 = 2 Hout=⌊24−2+0⌋+1=⌊22⌋+1=1+1=2
Wout=⌊4−2+02⌋+1=⌊22⌋+1=1+1=2 W{out} = \left\lfloor \frac{4 - 2 + 0}{2} \right\rfloor + 1 = \left\lfloor \frac{2}{2} \right\rfloor + 1 = 1 + 1 = 2 Wout=⌊24−2+0⌋+1=⌊22⌋+1=1+1=2
因此,池化之后的输出特征图大小是(2×2)(2 \times 2)(2×2)。
具体示例
假设输入特征图如下:
[1324567892463105] \begin{bmatrix} 1 & 3 & 2 & 4 \\ 5 & 6 & 7 & 8 \\ 9 & 2 & 4 & 6 \\ 3 & 1 & 0 & 5 \end{bmatrix} 1593362127404865
最大池化操作的结果将是:
[[6896]][ \begin{bmatrix} 6 & 8 \\ 9 & 6 \end{bmatrix} ][[6986]]
步骤:
- 取左上角的 (2×2)(2 \times 2)(2×2) 区域([1356])(\begin {bmatrix} 1 & 3 \\ 5 & 6 \end{bmatrix})([1536]),最大值是6。
- 移动窗口至右上角 ([2478])(\begin{bmatrix} 2 &4 \\ 7 & 8 \end{bmatrix})([2748]),最大值是8。
- 移动窗口至左下角 ([9231])(\begin{bmatrix} 9 &2 \\ 3 & 1 \end{bmatrix})([9321]),最大值是9。
- 移动窗口至右下角 ([4605])(\begin{bmatrix} 4 & 6 \\ 0 & 5 \end{bmatrix})([4065]),最大值是6。
最终得到输出特征图:
[6896]
\begin{bmatrix}
6 &8 \\
9 & 6
\end{bmatrix}
[6986]
通过以上计算和示例,明确了池化操作之后的特征图大小计算方法和具体操作过程。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)