基本概念拓展

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 \]

Batch Normalization原理与实战

Q: BN与Dropout为什么不能一起用?

A: 当网络的状态从训练转移到测试时,Dropout转移了特定神经单元的方差。但是,在测试阶段,BN保持了它的统计方差,这是在整个学习过程中积累的。Dropout和BN中方差的不一致性(命名为“方差偏移”)导致推断中不稳定的数值行为,最终导致错误的预测。

posted @ 2022-12-11 20:00  HoroSherry  阅读(9)  评论(0编辑  收藏  举报