卷积层

假设当输入图像为7*7*3,3是它的深度(即R、G、B三色通道)卷积层是一个5*5*3的filter,这里注意:filter的深度必须和输入图像的深度相同。通过一个filter与输入图像的卷积可以得到一个3*3*1的特征图。
当有两个卷积核进行卷积运算后,可以得到两个3*3*1的特征图(feature_map)。注意:这两个卷积核可以不一致,以获得不相同的特征。

中间转化过程距离,卷积核滑块在input上移动获取特征信息。
以input为3*3*1,filter为2*2*1,output为2*2*1为例。

计算第一个卷积层神经元o11的输入:
neto11=conv(input,filter)=i11×f11+i12×f12+i21×f21+i22×f22=1×1+0×2+0×4+1×5=6
神经元o11的输出:(此处使用Relu激活函数)
outo11=activators(neto11)=max(0, neto11)=6
滑块移动展示:
动图来自https://blog.csdn.net/silence1214/article/details/11809947
参考https://zhuanlan.zhihu.com/p/59917842
池化层
池化层夹在连续的卷积层中间, 用于压缩数据和参数的量,减小过拟合。
常用池化方法中随机池化如上图所示,计算过程:
- 先将方格①中的元素同时除以它们的和sum(sum=1+3+4+2=10),得到概率矩阵②
- 按照概率随机选中方格③
- pooling得到的值就是方格位置的值,这里为4
组合池化是同时利用最大值池化与均值池化两种的优势而引申的一种池化策略,包括CAT和ADD。其它的常用池化方法都是字面意思。
代码可以参考https://zhuanlan.zhihu.com/p/77040467
全连接层
可以用四个字概括:特征加权
在实际使用中,全连接层的input和output之间还是在中间做卷积。
举例:将a*b*c*100转化成1*1*100*1

用一个a*b*c的filter去卷积激活函数的输出,得到的结果就是一个fully connected layer的一个神经元的输出,这个输出就是一个值。因为有100个神经元。实际就是用一个a*b*c*100的卷积层去卷积激活函数的输出。通过100个特征对结果进行10分类。
全连接的核心操作就是矩阵向量乘积。