卷积核查看源代码讨论查看历史
卷积核 |
卷积核 就是图像处理时,给定输入图像,输入图像中一个小区域中像素>加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。
基本信息
中文名 卷积核 [1]
外文名 convolution kernel
又称 滤波器
卷积核的意义
卷积核其实在图像处理中并不是新事物,Sobel 算子等一系列滤波算子,一直都在被用于边缘检测等工作中,只是以前被称为 Filter。做图像处理的同学应该有印象。
卷积核具有的一个属性就是局部性。即它只关注局部特征,局部的程度取决于卷积核的大小。比如用 Sobel 算子进行边缘检测,本质就是比较图像邻近像素的相似性。
也可以从另外一个角度理解卷积核的意义。学过信号处理的同学应该记得,时域卷积对应频域相乘。所以原图像与卷积核的卷积,其实是对频域信息进行选择。比如,图像中的边缘和轮廓属于是高频信息,图像中某区域强度的综合考量属于低频信息。在传统图像处理里,这是指导设计卷积核的一个重要方面。
CNN中的卷积核
CNN 中的卷积核跟传统的卷积核本质没有什么不同。仍然以图像为例,卷积核依次与输入不同位置的图像块做卷积,得到输出。
同时,CNN 有一些它独特的地方,比如各种定义:
CNN 可以看作是 DNN 的一种简化形式,即这里卷积核中的每一个权值就可以看成是 DNN 中的 ,且与 DNN 一样,会多一个参数偏置。
一个卷积核在与 Input 不同区域做卷积时,它的参数是固定不变的。放在 DNN 的框架中理解,就是对同一层 Layer 中的神经元而言,它们的 和 是相同的,只是所连接的节点在改变。因此在 CNN 里,这叫做 共享权值偏置。
在 CNN 中,卷积核可能是高维的。假如输入是 维的,那么一般 卷积核就会选择为 维,也就是与输入的 Depth 一致。
最重要的一点,在 CNN 中,卷积核的权值不需要提前设计,而是跟 DNN 一样利用 GD 来优化,我们只需要初始化。
如上面所说,其实卷积核卷积后得到的会是原图的某些特征(如边缘信息),所以在 CNN 中,卷积核卷积得到的 Layer 称作特征图。
一般 CNN 中两层之间会含有多个卷积核,目的是学习出 Input 的不同特征,对应得到多个特征图。又由于卷积核中的参数是通过 GD 优化得到而非我们设定的,于是初始化就显得格外重要了。
參考來源