卷积作为神经网络的基本计算步骤,我们需要彻底的了解卷积过程中一些细节。
卷积作用
我现在所说的都是神经网络中,卷积的基本意义,没有涉及到更低层的意义解释,不过在文末,我链接了一些论坛中阅读量很高的解释文章,有兴趣的可以看看。
对于神经网络中,做卷积,是在全连接网络基础之上发展而来的,全连接网络参数太多,优化比较困难,容易过拟合,而卷积过程能够对原始图像进行特征提取,把提取到的特征再喂给全连接网络,
其实就是有一个降低参数的作用,但是也能够提升系统效果;
那么说到这个卷积的基本作用,我们也可以说到11卷积核的作用,其实11卷积核的最本质的作用也是降低了参数数量,是在卷积基础之上,又降低了参数数量,具体的,我们会在文末有参考资料,有兴趣的可以看。
卷积过程
说到卷积,了解过的大多都见过卷积过程的动态图片
但是卷积分为两种,一种是全零填充,一种是非全零填充,全零填充是为了不改变原来输入大小,或者是为了能够调节原来的输入大小;非全零填充,这个就是可以做到减小输入大小了。
全零填充
卷积分为这两种过程
那么我们看一个具体的多通道卷积过程
对于三通道的卷积过程
卷积后大小计算
在tensorflow笔记上,老师给了一个计算大小的公式,我觉得挺好用的;
一般来说全零填充,如果步长为1的话,结果与原来的大小是一样的,但是如果步长不为一,那就需要按照上边的公式进行计算了。
另外,如果非全零填充,按照上边的公式能够很好的计算,但是还有另外一个公式可以使用
我们可以拿个例子来算一下:
比如说第一次卷积
(32-5+1)/1=28
这是黑色照片里边的计算方式
(32-5)/1+1=28
这两种算法都是能够计算的
而且全零填充有零填充数量,这个,地方需要注意。
卷积参数个数
其实如果明白几个问题,卷积参数个数就非常容易计算了,我们还拿同一个照片来说明问题
比如说,这个是553 ,卷积是3310,那么参数是多少来,
其实我们经常见到的写法都是这样写的,但是实际上默认卷积每一个卷积核层数都是和原来的输入通道数相等,这样参数个数就是333*10+10,
卷积后得到的输出就是5510
参考资料
卷积的数学意义
最容易理解的对卷积(convolution)的解释
1*1的卷积核与Inception
mooc上tensorflow笔记