基本概念拓展
CNN感受野
-
概念:在卷积神经网络中,决定某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野(receptive field)。通俗的解释是:输出feature map上的一个单元对应输入层上的区域大小。
-
卷积计算公式:\(\text { out }_{\text {size }}=\left(\text { in }_{\text {size }}-F_{\text {size }}+2 P\right) / S+1\)
其中:
- F 为卷积核大小
- in为输入图片大小
- out为输出图片大小
- P为padding的像素数
- S为步长
-
感受野计算公式:\(F(i)=(F(i+1)-1) \times \text { Stride }+\text { Ksize }\)
其中:
- \(F(i)\)为第\(i\)层感受野
- Stride为第\(i\)层步距
- Ksize为卷积核或池化核尺寸
BN层
训练阶段
例如batch size为32,某层的某个神经元会输出32个响应值。
对这32个响应求均值、标准差,再做归一化。
把归一化后的响应值乘γ再加上β。
每个神经元都训练一组γ、β。
测试阶段
测试阶段均值、方差、γ、β都用训练阶段全局求出。
Batch Normalization相当于做线性变换。
\[\mu_{\text {test }}=\mathbb{E}\left(\mu_{b a t c h}\right)
\]
\[\sigma_{t e s t}^2=\frac{m}{m-1} \mathbb{E}\left(\sigma_{b a t c h}^2\right)
\]
\[B N\left(X_{\text {test }}\right)=\gamma \cdot \frac{X_{\text {test }}-\mu_{\text {test }}}{\sqrt{\sigma_{\text {test }}^2+\epsilon}}+\beta
\]
Q: BN与Dropout为什么不能一起用?
A: 当网络的状态从训练转移到测试时,Dropout转移了特定神经单元的方差。但是,在测试阶段,BN保持了它的统计方差,这是在整个学习过程中积累的。Dropout和BN中方差的不一致性(命名为“方差偏移”)导致推断中不稳定的数值行为,最终导致错误的预测。