我是深度学习的新手,试图了解CNN如何执行图像分类
我经历了多个youtube视频,多个博客和论文。他们都提到大致相同的事情:
虽然这一切都很好,但我真的不了解卷积的本质。例如。边缘检测。
例如ex:[[-1,1],[-1,1]]检测垂直边缘。
如何?为什么?我们如何肯定会检测到垂直边缘。
类似地,用于模糊/锐化的矩阵,我们如何真正知道它们将执行其目标。
我只是接受人们的话吗?
请帮助/由于我无法理解卷积以及矩阵如何检测边缘或形状,我感到无助
答案 0 :(得分:2)
过滤器通过检测图像强度值的变化来检测图像中的空间图案(例如边缘)。
快速回顾:就图像而言,高频图像是像素强度发生较大变化的图像,而低频图像则是像素强度发生较大变化的图像。强度几乎是均匀的。图像同时具有高频和低频成分。高频分量对应于对象的边缘,因为在边缘,像素值的强度变化率很高。
高通滤波器用于增强图像的高频部分。
让我们举一个示例:图像的一部分像素值[[10,10,0],[10,10,0],[10,10,0]]指示图像像素值向右减小,即图像从左侧的光变为右侧的暗。此处使用的过滤器为[[1、0,-1],[1、0,-1],[1、0,-1]。
现在,我们对这两个矩阵进行卷积,得到输出[[10,0,0],[10,0,0],[10,0,0]]。最后,将这些值相加得出一个像素值30,当我们从左移到右时,这会给出像素值的变化。同样,我们找到后续的像素值。
在这里,您会注意到像素值的变化率从左到右变化很大,因此已检测到垂直边缘。如果您使用过滤器[[1,1,1],[0,0,0],[-1,-1,-1]],则将得到仅由0组成的卷积输出,即不存在水平边缘。 [[-1,1],[-1,1]]以类似的方式检测垂直边缘。
您可以在Andrew Ng的lecture中查看更多内容。
编辑:通常,垂直边缘检测滤镜的左侧有亮像素,右侧有暗像素(反之亦然)。滤镜的值之和应为0,否则结果图像将变亮或变暗。此外,在卷积神经网络中,在训练过程中通过反向传播,以与超参数相同的方式学习滤波器。