卷积神经网络中滤波器数量的增加

机器算法验证 卷积神经网络
2022-04-04 04:08:14

我正在自学 CNN,并注意到在许多实现中,随着我们在网络中的深入(更靠近输出层),特征图/过滤器的数量会增加。这是什么直觉/原因?这对学习有什么帮助?(来自下面典型 CNN 的示例,从 32 增加到 64 到 128)

net2 = NeuralNet(
    layers=[
        ('input', layers.InputLayer),
        ('conv1', layers.Conv2DLayer),
        ('pool1', layers.MaxPool2DLayer),
        ('conv2', layers.Conv2DLayer),
        ('pool2', layers.MaxPool2DLayer),
        ('conv3', layers.Conv2DLayer),
        ('pool3', layers.MaxPool2DLayer),
        ('hidden4', layers.DenseLayer),
        ('hidden5', layers.DenseLayer),
        ('output', layers.DenseLayer),
        ],
    input_shape=(None, 1, 96, 96),
    conv1_num_filters=32, conv1_filter_size=(3, 3), pool1_pool_size=(2, 2),
    conv2_num_filters=64, conv2_filter_size=(2, 2), pool2_pool_size=(2, 2),
    conv3_num_filters=128, conv3_filter_size=(2, 2), pool3_pool_size=(2, 2),
    hidden4_num_units=500, hidden5_num_units=500,
    output_num_units=30, output_nonlinearity=None,

    update_learning_rate=0.01,
    update_momentum=0.9,

    regression=True,
    max_epochs=1000,
    verbose=1,
    )
1个回答

这是卷积网络可能逐层寻找的示例。

第 1 层:不同方向的简单边

第 2 层:简单边缘的组合,形成更复杂的边缘和纹理,例如圆角边缘或多边缘接触

第 3 层:构成对象部分的复杂边缘的组合,例如圆形或网格状图案

第 4 层:构成整个对象的对象部分组合,例如人脸、汽车或树木

每一层都可以寻找更广泛的不同事物。第一层没有太多的东西可以寻找,因为它太笼统了。有垂直边缘,水平边缘,对角边缘,以及介于两者之间的一些角度。但是最后一层有很多它可以寻找的东西,所以更多的过滤器是有益的。

这张图片也可以让它更清晰。一种技术用于可视化第一层、第二层和第三层的学习过滤器。 在此处输入图像描述