基本概念
卷积
我们可以看到,卷积过程其实还是基于一个固定的矩阵,在另外一个矩阵不断一格一格扫过去的到的数值的和,产生的一个新的矩阵,我们以作为比较会发现:粉红色矩阵和绿色矩阵在根本上有很大不一样,卷积之后的维数降低了.所以规律可以得到:粉红色最后的卷积结果矩阵维度=绿色矩阵维数-橙色矩阵维数+1
多通道数据的卷积过程
Input Data Size: A*A*B
Convolution Size: C*C*B
其中 A>B
Output Data Size: (A-C+1)*(A-C+1)*\1
直接将结果相加即可
池化
我们可以发现其实跟之前没什么不一样:还是以三个矩阵之间的运算,但是我们很容易发现,它并不是一行一行扫过去的,橙色矩阵维度是黄色矩阵的整数倍,所以池化的最终的结论是要把原来的维度减少到1/n.这是池化最根本的原理(当然也有特殊情况。)
步长
那个粉红色矩阵,他每一次移动多少格,格子就是步长!!
Padding(增边)
padding操作用以解决这个问题“如果我不想最后减少维度,我只希望卷积,怎么办呢?”
现在我们来解决这个问题:比如:我们需要做一个300*300的原始矩阵,用一个3*3卷积核(粉红色矩阵)来扫,扫出来,按照之前公式,结果的矩阵应该是:298*298的矩阵,但是这样很难计算,减得也不多,反而增加我计算难度,还不如池化(pooling)来得干脆是吧!那我们就在300*300矩阵外面周围加一圈“0”,记住,是在外面外包一层“0”
重点是:这样的300*300就变成了302*302的矩阵,这样就可以完全避开卷积后那两层的抵消。
卷积核(就是一个数字)
橙色矩阵