• CNN 卷积神经网络中的 接受视野(Receptive Field)


     

    在卷积神经网络中,感受野定义:CNN每一层输出的特征图上的像素点在原始图像
    上的映射的区域大小。

    RF (receptive field)描述了两个特征映射(Feature Maps)上神经元的关系,在进行 CNN 可视化的过程中非常有用。他也可以从侧面让我们了解,

    为什么神经网络偏向于选择小的 Filter 和 Stride。假设,A 经过一系列的操作之后得到 B,那么 B 上的一个区域就只和 A 上的一个区域相关。

    一个输入大小为 11×11的A, 经过一个过滤器大小为 3×3,步长为 1 的卷积核卷积之后,得到一个大为9×9的特征映射。

    可以看到在 B 中一个 3×3 的区域,在 A 中的感受视野为 5×5。B 经过一个大小为 3×3 ,步长为 1 的卷积核卷积之后,得到一个 7×7 的特征映射。

    因此在 A 中的一个 5×5 的区域在 B 中的视野就为 3×3。因此,C 中一个 1×1 的区域在 A 的视野就为 5×5。

    计算公式为: [公式]

    其中 [公式] 表示第 i 层输入的一个区域, [公式] 表示第 i 层的步长, [公式] 表示第 i 层卷积核的大小(filter size)。此计算不需要考虑 padding size

    高层在低层中的视野

    计算 C 在 B 中的视野

    如我们想计算 C 的一个 1×1 的区域在 B 上的接受视野,从上图可以知道一共三层(两个卷基层一个输入层,此处将输入层的 i 当做0处理),此时我们求的是 [公式][公式] 上的感受视野。

    由上图可以知道, [公式] 的值为 1 因为第一层的步长为 1 ; [公式]的值为 3 ,因为卷积核的大小为 3×3;此时选择的 [公式] 区域大小为 1×1,因此它的值为 1 。

    通过上述公式计算可得: [公式]

    [公式][公式]的接受视野为 3×3 的区域。

    计算 B 在 A 中的视野

    计算 B 中一个 3×3 的区域在 A 中接受视野。可知 [公式] 为 1; [公式] 为 3,因为我们选择的 B 的区域为 3×3; [公式] 为 3。

    因此 B 在 A 中的接受视野为: [公式]

    计算 C 在 A 中的视野

    计算 C 中一个1×1的区域在 A 中的接受视野。

    通过以上的计算,我们可以通过如下过程推断:

    1. 计算 C 在 B 中的接受视野

    [公式]

    2.计算 B 在 A 中的接受视野

    此阶段需要将上面计算出来的结果当做 B 中需要计算的区域,因此就有:

    [公式]

    因此可以得到 C 中一个 1×1 的区域在 A 中的接受视野为 5×5

     

    注:以上的计算适用于卷积层和池化层,在激活层中 [公式]

    conv5: [公式]

    conv4: [公式]

    conv3: [公式]

    pool2: [公式]

    conv2: [公式]

    pool1: [公式]

    conv1: [公式]

    因此第5层卷积在输入层的感受视野为 163。

  • 相关阅读:
    记一次诡异的调优
    java动态代理学习笔记
    c#反射机制学习和利用反射获取类型信息
    php开启ssl的方法
    关于java中split的使用
    c#使用反射调用类型成员示例
    C#关于反射加载的问题
    Twitter:使用Netty 4来减少GC开销
    Java中如何修改Jar中的内容
    Android中自定义视图View之---前奏篇
  • 原文地址:https://www.cnblogs.com/tingtin/p/12643725.html
Copyright © 2020-2023  润新知