多个卷积层间合并的分析

1 经过卷积层前后的变化

假设输入数据为 channel1 × nh × nw 经过一个 kh × kw 的卷积核,步长为 s,padding为 p,则输出的空间维度为 ⌊( nh​ − kh​ + p​​ ) / s + 1⌋ × ⌊( nw​ − kw​ + p​ ) / s + 1​⌋,易知,输出空间存在 ⌊( nh​ − kh​ + p​​ ) / s + 1⌋ * ⌊( nw​ − kw​ + p​ ) / s + 1​⌋ 个单元。

下面用 mh 和 mw 分别代表输出的空间维度,此时输出空间内的一个单元在输入空间上的感受野为 kh * kw,那么输出空间内全部单元的感受野之和为 m* m* kh * kw,而输出空间在输入空间上感受野最大即为输入空间本身,即 nh * nw 。

下面根据不同情况分析(不考虑 padding):

  • kh > sh && kw > sw 时,输入空间上的一个单元会成为输出空间的多个单元的感受野,这样就会导致输出空间内全部单元的感受野之和大于输入空间本身,大于的具体数量即为重复计算的感受野
  • kh < sh && kw < sw 时,输入空间上的部分单元不会成为输出空间的任何单元的感受野,这样就会导致输出空间内全部单元的感受野之和小于输入空间本身,小于的具体数量即为输入空间没有被感受的单元
  • kh == sh && kw == sw 时,输出空间内全部单元的感受野之和等于输入空间本身。

2 卷积核的合并

要保证数个卷积层相当于一个卷积层,要做到两者对相同维度的输入,有相同维度的输出。

因为深度学习中卷积核大小往往大于步长,下面我们只考虑 kh > sh && kw > sw && p == 0 && s== sw 时的情况。

2.1 两个3 × 3卷积核相当于一个5 × 5卷积核

假设输入数据为 channel1 × nh × nw,经过一个 channel1 × 3 × 3 的卷积核,输出的空间维度即为 channel1 × ⌊( nh​ − 3​​ ) / sh + 1⌋ × ⌊( nw​ − 3 ) / sw + 1​⌋。

设 ⌊( nh​ − 3​​ ) / sh + 1⌋,⌊( nw​ − 3 ) / sw + 1​⌋ 分别为 mh 和 mw,再经过一个 channel1 × 3 × 3 的卷积核,输出的空间维度即为 channel1 × ⌊( mh​ − 3​​ ) / sh + 1⌋ × ⌊( mw​ − 3 ) / sw + 1​⌋。

  • 当 s== sw == 1 时,最终输出的空间维度为 channel1 × nh - 4  × n- 4,将 s== sw == 1 带入维度输出公式并与 nh - 4,n- 4 分别联立,可以得到 kh == kw == 5。即两个3 × 3卷积核相当于一个5 × 5卷积核。
  • 当 s== sw == 2 时:
  1. 当 nh,nw 为偶数时,最终输出的空间维度为 channel1 × ⌊ nh​ / 2 ⌋ - 2  × ⌊ nw / 2 ⌋ - 2,将 s== sw == 1 带入维度输出公式并与 nh​ / 2 - 2,nw / 2 - 2 分别联立,可以得到 kh == kw == n / 2 + 3。即两个3 × 3卷积核相当于一个 (n / 2 + 3) × (n / 2 + 3) 卷积核。
  2. 当 nh,nw 为奇数时,最终输出的空间维度为 channel1 × ⌊ nh​ / 2 ⌋ - 1  × ⌊ nw / 2 ⌋ - 1,将 s== sw == 1 带入维度输出公式并与 ⌊ nh​ / 2 ⌋ - 1,⌊ nw / 2 ⌋ - 1 分别联立,可以得到 kh == kw == ⌈ n / 2 ⌉ + 2。即两个3 × 3卷积核相当于一个 (⌈ n / 2 ⌉ + 2) × (⌈ n / 2 ⌉ + 2) 卷积核。

2.2 三个3 × 3卷积核相当于一个7 × 7卷积核

同理,当 s== sw == 1 时,三个3 × 3卷积核相当于一个7 × 7卷积核。

多个卷积层间合并的分析

 

2.3 总结

涉及多个卷积层的问题,要先一层层将输入空间维度、卷积核维度、步长代入,一层层计算到最后一层,算出最终输出的空间维度,将其作为结果,与初始输入空间维度联立,根据不同步长,可以得到相应的合并后卷积核。

 

上一篇:DBCO-C2-PEG4-NH-Boc胺基经弱酸脱Boc保护后,可与羧酸偶联,活化酯基形成酰胺键


下一篇:Windows系统配置Nocalhost进行远程调试