卷积网络中的权重?

tur*_*tle 5 python machine-learning tensorflow

我目前正在关注TensorFlow的多层卷积网络教程.

在各层中,重量初始化如下:

所以我怀疑上述重量变量的形状如何为我们所知?

他们的数学习惯用于找到它们的形状吗?

Sud*_*kar 10

答案在同一页面上解释:

卷积将为每个5x5补丁计算32个特征.它的重量张量将具有[5,5,1,32]的形状

没有涉及数学的说法,但这些术语需要解释

  1. 卷积核的大小是5X5.这意味着有一个5X5矩阵通过在图像周围移动来与输入图像进行卷积.检查此链接以获取有关小5X5矩阵如何在28X28图像上移动并将图像矩阵的不同单元格与其自身相乘的说明.这给了我们前两个版本[5, 5, 1, 32]
  2. 输入通道的大小是1.这些是BW图像,因此是一个输入通道.大多数彩色图像有3个通道,所以期望3在其他一些卷积网络中处理图像.实际上,对于第二层,W_conv2输入通道的32数量与层1的输出通道的数量相同.
  3. 权重矩阵的最后一个维度可能难以想象.想象你的5X5矩阵,并复制它32次!这32个东西中的每一个都被称为channels.为了完成讨论,5X5用随机权重初始化这32个矩阵中的每一个,并在网络的前向/后向传播期间独立地训练.更多频道可以了解图像的不同方面,从而为您的网络提供额外的电力.

如果总结这3个点,则得到第1层所需的尺寸.后续图层是扩展名 - 在这种情况下,前两个维度是内核大小(5X5).第三维等于输入通道的大小,其等于前一层的输出通道的大小.(32,因为我们声明了第1层的32个输出通道).最终维度是当前层的输出通道的大小(64,对于第二层甚至更大!再次,保持大量独立的5X5内核有帮助!).

最后,最后两层:最后的密集层是唯一涉及一些计算的东西:

  1. 对于每个卷积层,最终大小=初始大小
  2. 对于大小为kXk的池,最终大小=初始大小/ k

所以,

  1. 对于conv1,尺寸仍然存在 28 X 28
  2. pool1将大小缩小为 14 X 14
  3. 对于conv2,尺寸仍然存在 14 X 14
  4. pool2将大小缩小为 7 X 7

当然,64由于conv2 ,我们有渠道 - 汇集并不影响他们.因此,我们得到了最终的密集输入7X7X64.然后,我们创建完全连接的1024隐藏层并1010数字添加输出类.

  • 决定这个数字没有固定的公式.每个通道创建一个图像的抽象中间表示(边缘之一,其他可能是对比) - 通常更好,太多通道使得学习速度慢并导致过度拟合 (2认同)