前面大概花了 10 几节的篇幅,介绍了卷积这一算法,我觉得是值得的。
因为在CNN网络中,卷积是属于绝对的核心,而且围绕着卷积可衍生出来的算法还有很多,并且卷积的算法思想在很多其他算法中都有体现,比如矩阵乘法、全连接算法。这一节来总结一下这个算法。
一个卷积运算最基础的输入有两个,一个是输入图像,一个是卷积核,最基础的输出有一个,那就是特征图。
当然在有些网络中,你可能还会看到第三个参数,那就是偏置(bias), bias 偏置这个好理解,就是对于最终的输出整体加上一个偏置项。
这个偏置项和卷积核(权值)一样也是一个可以学习的参数,用来提升模型的训练精度。这个我们可以暂时不考虑,因为它很简单,就是在卷积的输出的基础上再进行一次加法操作。
一个卷积运算最基础的参数有以下三个:
padding:用于在输入图像周围填充像素值
stride:指示卷积核在输入图像上扫描时每次滑动的步长
dilation:卷积核的膨胀率
以上就是卷积算法的所有参数和输入以及输出。
透过卷积核看到的输入图像上的像素范围被称为“感受野”,不同大小的感受野下,卷积学习到的特征不一样,大感受野可能学到更加宏观的特征比如轮廓,小感受野可能学到更加抽象的特征。
卷积就是通过对感受野范围的像素进行乘累加操作,完成对感受野范围内像素的特征提取。
多层的卷积核串联起来,中间加入激活函数,便可以把多层卷积提取的特征进一步融合,最终可以获得原始图片的特征表示,