CNN通常由卷积层,池化层和全连接层堆叠而成,卷积层之后常使用激活函数(例如Relu)对其输出进行处理。CNN能够保留输入的空间结构。
注意:如果没有激活函数的话,多层网络叠加在一起,相当于一个等价的线性方程,无法解决线性不可分的问题(非线性激活增加了网络的表达能力)。
卷积操作:将filter在x上进行滑动,计算出每一个空间定位时的点积结果。也就是将filter的每个位置元素和与之对应图像区域region的像素值相乘,即,b为偏置。(W是和x同样大小的图像块,滑动filter可以获得整个feature map。)
填充:使得输出和输入的大小相同,避免信息丢失(尤其是边角的信息)。可以使用0填充或者边缘的像素进行填充。
当输入数据x(32,32,3),filter(5,5,3),无填充,stride为1时,输出y的shape为(28,28,1),如下图所示。
activation map大小:(H-F+2P)/S + 1 H是输入, F卷积核大小, P是padding ( 32-5+0)/1+1=28, 卷积核为1,所以输出28x28x1