文档介绍:自今年七月份以来,一直在实验室负责卷积神经网络(ConvolutionalNeuralNetwork,CNN),期间配置和使用过theano和cuda-convnet、cuda-convnet2。为了增进CNN的理解和使用,特写此博文,以其选取一小块,比如说8x8作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个
8x8样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,我们可以用从8x8样本中所学习到的特征跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。
如下图所示,展示了一个3x3的卷积核在5x5的图像上做卷积的过程。每个卷积都是一种特征提取方式,就像一个筛子,将图像中符合条件(激活值越大越符合条件)的部分筛选出来。
i0
0
0
Qo
i0
1
0
Q】
Qo
1
1
0
0
1
1
0
0
1
1
0
0
4
Image
Convolved
Feature
STAnoMflarTV?stotisrics忖
SimilardifferentIwciti^ri
口
Example:1000x1000irase1MiiiddentnifsFiber砒:10x10]COM
E*1000x1000Jmage
200Filters
Filtersize;10x10
10Kporamfiter'S
上面所述只有100个参数时,表明只有1个10*10的卷积核,显然,特征提取是不充分的,我们可以添加多个卷积核,比如32个卷积核,可以学习32种特征。在有多个卷积核时,如下图所示:
LOCALLYCONNECTEDNEURALNET上图右,不同颜色表明不同的卷积核。每个卷积核都会将图像生成为另一幅图像。比如两个卷积核就可以将生成两幅图像,这两幅图像可以看做是一张图像的不同的通道。如下图所示,下图有个小错误,即将
w1改为wO,w2改为w1即可。下文中仍以w1和w2称呼它们。
下图展示了在四个通道上的卷积操作,有两个卷积核,生成两个通道。其中需要注意的是,四个通道上每个通道对应一个卷积核,先将w2忽略,只看w1,那么在w1的某位置(i,j)处的值,是由四个通道上(i,j)处的卷积结果相加然后再取激活函数值得到的。
碣=tanh((VFfc*x)i3+加)
layerrrvlhiddenlayerm
所以,在上图由4个通道卷积得到2个通道的过程中,参数的数目为4x2x2x2个,其中4表示4个通道,第一个2表示生成2个通道,最后的2x2表示卷积核大小。
-pooling
在通过卷积获得了特征(features)之后,下一步我们希望利用这些特征去做分类。理论上讲,人们可以用所有提取得到的特征去训练分类器,例如softmax分类器,但这样做面临计算量的挑战。例如:对于一个96X96像素的图像,假设我们已经学习得到了400个定义在8X8输入上的特征,每一个特征和图像卷积都会得到一个(968+1)x(968+1)=7921维的卷积特征,由于有400个特征,所以每个样例(example)都会得到一个7921x400