gpt4 book ai didi

neural-network - 减少卷积神经网络中的滤波器尺寸

转载 作者:行者123 更新时间:2023-12-04 14:40:15 26 4
gpt4 key购买 nike

我正在阅读 Szegedy 等人的 Inception 论文:https://arxiv.org/abs/1512.00567
我无法理解他们如何通过用 2 层 3x3 过滤器替换单个 5x5 过滤器来减少计算量(第 3.1 节)。

enter image description here

特别是,这段话:

If we would naivly slide a network without reusing the computation between neighboring grid tiles, we would increase the computational cost. sliding this network can be represented by two 3x3 convolutional layers which reuses the activations between adjacent tiles.



我不明白我们如何重用这些激活。

最佳答案

所以首先,作者声明了这一点:

This way, we end up with a net (9+9) / 25 × reduction of computation, resulting in a relative gain of 28% by this factorization.



他是对的:对于 óne 5x5 过滤器,您必须使用 25 ( 5*5 ) 个单独的权重。对于两个 3x3 过滤器,您必须使用 9 + 9 ( 3*3 + 3*3 ) 个单独的权重。所以使用两个 3x3 过滤器需要更少的参数。但是,您是对的,这并不意味着它需要更少的计算:乍一看,使用两个 3x3 过滤器需要更多的操作。

让我们比较给定 n*n 的两个选项的操作量输入。演练:
  • 计算给定输入 ( (n - filtersize + 1)^2 ) 上 5x5 滤波器的输出维度,及其对应的操作
  • 计算第一个3x3过滤器的输出维度(公式同上),及其对应操作
  • 计算第二个 3x3 过滤器的输出维度,及其对应的操作

  • 让我们从 5x5 开始输入:
    1. (5 - 5 + 1)^2 = 1x1. So 1*1*25 operations = 25 operations
    2. (5 - 3 + 1)^2 = 3x3. So 3*3*9 operations = 81 operations
    3. (3 - 3 + 1)^2 = 1x1. So 1*1*9 operations = 9 operations
    So 25 vs 90 operations. Using a single 5x5 filter is best for a 5x5 input.

    接下来, 6x6输入:
    1. (6 - 5 + 1)^2 = 2x2. So 2*2*25 operations = 100 operations
    2. (6 - 3 + 1)^2 = 4x4. So 4*4*9 operations = 144 operations
    3. (4 - 3 + 1)^2 = 2x2. So 2*2*9 operations = 36 operations
    So 100 vs 180 operations. Using a single 5x5 filter is best for a 6x6 input.

    让我们先跳一跳, 8x8输入:
    1. (8 - 5 + 1)^2 = 4x4. So 4*4*25 operations = 400 operations
    2. (8 - 3 + 1)^2 = 6x6. So 6*6*9 operations = 324 operations
    3. (4 - 3 + 1)^2 = 4x4. So 4*4*9 operations = 144 operations
    So 400 vs 468 operations. Using a single 5x5 filter is best for a 8x8 input.

    注意到图案了吗?给定输入大小 n*n , 操作为 5x5过滤器有以下公式:
    (n - 4)*(n - 4) * 25

    对于 3x3 过滤器:
    (n - 2)*(n - 2) * 9 + (n - 4) * (n - 4) * 9

    所以让我们绘制这些:

    enter image description here

    他们似乎相交了!正如您可以从上图中读到的,来自 n=10 的两个 3x3 过滤器的操作次数似乎更少。并继续!

    结论:似乎在 n=10 之后使用两个 3x3 过滤器是有效的.此外,不管 n ,与单个 5x5 过滤器相比,两个 3x3 过滤器需要调整的参数更少。

    虽然这篇文章有点奇怪,但出于某种原因,它让人感觉像是使用两个 3x3 过滤器而不是一个 5x5 过滤器“明显”:

    This setup clearly reduces the parameter count by sharing the weights between adjacent tiles.

    it seems natural to exploit translation invariance again and replace the fully connected component by a two layer convolutional architecture

    If we would naivly slide

    关于neural-network - 减少卷积神经网络中的滤波器尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43382499/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com