原创 荣君宇
CNN,作为一个经典的神经网络模型,我们并不陌生。CNN包含若干个卷积层和池化层。池化层相对简单,对于减少神经元数量,功不可没。而卷积层,才是我们理解的一个难点。 我们知道卷积层可以提取不同的特征。对CNN的训练,重点就是训练出来各种各样的卷积核来提取特征。初学者在学习CNN时,往往会面临一个问题,知道CNN的输出是如何计算的,也知道如何利用基于链式求导法则的反向传播算法去训练网络,却不知道为什么CNN能够提取图片特征,卷积核里面的那几个数字背后的意义和原理。 今天,我们就从特征提取来分析一下卷积核的作用。
一 对图像灰度的求导 提取特征,关键是要找到特征变化的分界点--特征的边缘。想象一下,特征的边缘具有什么特点? 边缘意味着两侧图像的灰度变化会很大。对数学比较敏感的同学,一提到变化,会想到导数。导数用来衡量变化率的大小,对于图像也是如此。下面是一个灰度变化的例子。
![8b4d128fd6f493e38258304579d07745.png](https://i-blog.csdnimg.cn/blog_migrate/8b6dafbcc66474a3e9aff774e705f910.png)
图中,原信号代表了原图象灰度的变化,第二行和第三行分别是对灰度的一阶导数和二阶导数。对比一阶导数图像和二阶导数图像,可以发现,二阶导数相比于一阶导数,对边缘有着更好的响应。因为对于灰度渐变区域,二阶导数可以识别出图像渐变区域的边缘。在实际中,我们可以根据实际情况来决定使用一阶导数还是二阶导数,在这里,我们用二阶导数来举例子。