Convolutional Neural Network example
一个例子
假设输入一个32x32x3的图像 ,需要识别0-9里哪一个是7
用一个步长s = 1, f = 5 的过滤器,得到第一层输出,命名为Conv1。
在用了6个过滤器,加上偏差值bias,再应用非线性,得到卷积层1的输出。
接下来使用一个池化层,使用maxpool,参数应用 f = 2,s = 2。
因此28x28x6变成了14x14x6
现在将卷积层1和池化层1一起视为层1
以pool1作为输入,再进行一次卷积,使用16个s = 1, f = 5的过滤器,得到一个10x10x16的输出
称为Conv2,然后继续做最大池化,使用和之前一样的参数 f = 2,s = 2,得到一个5x5x16的输出,称为pool2
。
将Conv2和Pool2 合称为神经网络层2
5x5x16 = 400, 现在我们把池化层2展开成一个400x1的向量。
用400个单元作为输入,创建一个有120个单元的下一层
because the 400units densely connected to 120 units所以称为全连接网络层,称为FC3
其权重矩阵大小W[3]=(120,400),还有偏差参数因为有120个输出所以大小也是120个向量。
最后一步在120的单元上让其变得更小,再加一层84的单元的全连接层
称为FC4,在此得到了可以用于softmax层的84个实数。
如果是做0-9的数字手写识别,那么softmax层会有10个输出。
随着神经网络的深入,高度nH和宽度nW会减小,如同上面的从32x32到28x28到14x14到10x10,5x5。通常情况下高度宽度会减小,而通道数nC会增加,从3到6到16到全连接层
一些细节
激活输入的尺寸,激活输入的大小,网络参数数量