卷积神经网络(LeNet 5)。构建C3,C5层

时间:2015-08-07 12:59:39

标签: networking convolution

http://i60.tinypic.com/no7tye.png 图1卷积神经网络(LeNet5)

在卷积神经网络(LeNet 5)上,通过迭代manneur计算卷积(C1),最大池化(子采样)(S2,S4)层的图1。但我不明白如何正确地进行C3(卷积)层。

http://tinypic.com/r/fvzp86/8 图2进行C1层

首先作为输入,我们收到一个数字的MNIST 32 * 32灰度图像,将其视为大小为32 * 32的字节数组。在C1层,我们有6个不同的(各种)内核,填充了随机的小值。从1到6的每个内核用于构建6个不同的特征映射(每个特征映射一个内核)。从左到右移动大小为5 * 5的感知场1个像素步幅(偏差),在图像阵列上乘以内核值增加偏差并通过sigmoid函数。结果是当前构造的特征映射的i,j。一旦我们到达Image Array的末尾,我们就完成了当前要素图的构建。

http://i57.tinypic.com/rk0jk9.jpg 图3进行S2层

接下来我们开始生成S2层,同样会有6个特征映射,因为我们分别为C1层的6个特征映射使用2 * 2个感知域(使用最大池操作,选择2 * 2中的最大值)感受野)。在迭代的manneur上进行C1,S2,S4的进行。

http://i58.tinypic.com/ifsidu.png 图4 C3层的连接列表

但接下来我们需要计算C3层。根据各种论文,存在连接图。你能否说出连接列表中的内容?这是否意味着我们仍然会在C1层使用5 * 5感受野。例如,我们看到在第一行中有一个对应于列(0,4,5,6,9,10,11,12,14,15)的标记特征映射。这是否意味着构建C3层的0,4,5,6,9,10,11,12,14,15特征图,我们将在具有5 * 5感受野的S2层的第一特征图下进行卷积运算。在卷积运算期间将使用什么具体内核,或者我们需要随机生成16个填充小数的内核,就像我们在C1层中所做的那样。如果是的话,我们看到C3的0,4,5,6,9,10,11,12,14,15的特征映射为浅灰色,浅灰色,深灰色,浅灰色,深灰色,浅灰色,深灰色,浅灰色,浅灰色,深灰色。可以清楚地看到S2的第一个特征图是浅灰色,但只有0,4,6,10,12,14是浅灰色的。所以也许在C3中建立16个特征图以不同的方式进行。你能说一下如何生产C5层,它会有一定的连接列表吗?

2 个答案:

答案 0 :(得分:2)

免责声明:我刚刚开始讨论这个话题,所以请指出我的概念中的错误!

  1. 在原始Lenet paper,第8页,您可以找到将S2的不同图层链接到C3图层的连接图。这个连接列表告诉我们S2的哪些层与内核进行卷积(详细信息)以生成C3层。

  2. 您会注意到S2的每一层都涉及生成精确的10层(不是全部16层)的C3。这表明内核的大小是(5x5x6)x10。

  3. 在C1中,我们有一个(5x5)x 6内核,即5x5,有6个特征图。这是2D卷积。在C3中,我们有(5x5x6)x 10内核,即"内核框"有10个功能图。这10个特征图和内核框组合在一起产生16层而不是6层,因为它们没有完全连接。

  4. 关于内核权重的生成,它取决于算法。它可以是随机的,预定义的或使用某种方案,例如xavier in caffe。

  5. 令我感到困惑的是,内核细节没有很好地定义,必须从给定的信息中派生出来。

    更新: C5如何制作?

    层C5是具有120个特征映射的卷积层。 C5特征映射的大小为1x1,因为在S4上应用了5x5内核。在32x32输入的情况下,我们也可以说S4和C5完全连接。在S4上施加以获得C5的内核的大小是(5×5×16)×120(偏差未示出)。本文未明确说明这些120内核框如何连接到S4的详细信息。但是,作为提示,提到S4和C5是完全连接的。

答案 1 :(得分:0)

论文中关于“C5”的关键点似乎是5x5内核应用于所有16或S4的特征图 - 一个完全连接的层。

“每个单位都连接到S4的所有16个特征地图上的5x5邻域”。

由于我们有120个输出单元,我们应该有120个偏置单元连接(否则架构细节不符合)。

然后我们连接所有25x16输入单元以产生一个特征映射输出。

总的来说我们有

num_connections =(25x16 + 1)x120 = 48000 + 120 = 48120