卷积
- 层数计算
在下图中左侧是一个32x32x3的图像,其中3代表RGB。每个卷积核是5x5x3,每个卷积核生成一个特征图(feature map)。下图里面有6个5x5x3的卷积核,所以输出6个特征图,大小为28x28x6.
下图中,第二层到第三层,其中每个卷积核大小为5x5x6,这里的6就是28x28x6中的6,两者需要相同,即每个卷积核的“层数”需要与输入的“层数”一致。有几个卷积核,就输出几个feature map,下图中,与第二层作卷积的卷积核有10个,故输出的第三层有10个通道。
- 单层计算
单个通道的单一层计算。在下图中输入是64x64,卷积核为3x3,图片上的像素值分别于卷积核上对应位置相乘然后想加的到output图上该位置的像素值。
计算出每一层的像素值之后,采用相加的方法,再加上偏置值(Bias)得到卷积结果,此时的结果为该通道的特征图结果。
- 举个栗子
输入是一个RGB图,图片有三个通道,经过333卷积的计算得到右侧,3*3卷积共有10个,所以得到的结果也是10通道
池化层
池化层夹在连续的卷积层中间, 用于压缩数据和参数的量,减小过拟合。
池化层实际上是保留主要的特征同时减少参数(降维和计算量,提高模型泛化能力。最大池化应用较多。
- 最大池化
全连接层
下图中两列小圆球就是两个全连接层,在最后一层卷积结束后,进行了最后一次池化,输出了20个1212的图像,然后通过了一个全连接层变成了1100的向量。
其实就是有20100个1212的卷积核卷积出来的,对于输入的每一张图,用了一个和图像一样大小的核卷积,这样整幅图就变成了一个数了,如果厚度是20就是那20个核卷积完了之后相加求和。这样就能把一张图高度浓缩成一个数了。
全连接层就是高度提纯的特征了,方便交给最后的分类器或者回归。
Stride
stride,实质上就是filter在原图上扫描时,需要跳跃的格数,默认跳一格;
stride,通过跳格,减少filter与原图做的扫描时的重复计算,提升效率;
stride,太小,重复计算较多,计算量大,训练效率降低;
stride,太大,会造成信息遗漏,无法有效提炼数据背后的特征;
让feature map长宽成倍缩小