我试图弄清CNN需要多少个权重和偏见。

假设我有一个(3、32、32)图像,并想要应用一个(32、5、5) - 滤波器。对于每个特征映射,我都有5x5权重,因此我应该有3 x(5x5)x 32参数。现在我需要添加偏见。我相信我只有(3 x(5x5) + 1)x 32参数,因此在所有颜色(RGB)上的偏差也是如此吗?

这个对吗?在使用不同的权重时,我是否会在其深度(在这种情况下3)中对每个图像保持相同的偏见?这是为什么?

有帮助吗?

解决方案

偏置为每个虚拟神经元起作用,因此在有一个单个输出的多个偏置输入中没有任何值 - 这等效于将不同的偏置权重添加到单个偏差中。

在是第一个隐藏层的输出的特征地图中,颜色不再保持单独*。有效地,每个特征映射是下一层中的“通道”,尽管通常将其分别可视化,而在与通道组合可视化的情况下。另一种思考方式是,原始图像中的单独的RGB通道是输入中的3个“特征地图”。

上一层中有多少个频道或功能都没关系,下一层中每个特征映射的输出是该映射中的一个值。一个输出值对应于单个虚拟神经元,需要一个偏置权重。

正如您在问题中所解释的那样,在CNN中,输出功能映射中的每个点共享相同的权重(包括偏置权重)。因此,每个功能地图都有自己的偏见重量以及 previous_layer_num_features x kernel_width x kernel_height 连接权重。

是的,您的示例导致 (3 x (5x5) + 1) x 32 对于CNN,第一层的权重总计是正确的,将第一层隐藏层处理RGB输入到32个单独的特征图中。


* 您可能会通过看到CNN的可视化而感到困惑 权重 可以将其分开为其操作的颜色通道。

其他提示

CNN的属性是他们使用共同的权重和偏见(对层中所有隐藏神经元的权重和偏差相同),以检测相同的功能。与简单的神经网络相比,这导致了更深入的学习。您可以将其作为参考阅读:

http://deeplearning.net/tutorial/lenet.html
http://neuralnetworksanddeeplearning.com/chap6.html#introducing_convolutional_networks

许可以下: CC-BY-SA归因
scroll top