理解“卷积”,理解“卷积神经网络”

这是看了张玉宏的《深度学习之美》做的笔记,这本书浅显易懂,娓娓道来,十分有趣!

1.计算机眼中的图像

在这里插入图片描述
对于如图 12-9 所示的左侧的图像,正常人很容易判定出,图像中分别是一个数字“8” 和一 只猫。

但是,对于计算机而言,它们看到的是数字矩阵(每个元素都是 0 到 255 之间的像素值), 至于它们据此能不能判定出是数字“8”和猫,这要依赖于计算机算法,这也是人工智能的研究方向。

2.生活中的卷积

通俗来讲,所谓卷积,就是一个功能.

假设你的承受能力是一个在时间维度上的函数 f f ,而你“野蛮女友”的打脸操作为函数 g g , 那么卷积的概念,就是重新定义出来一个新的函数 h h ( 比如, h 用来刻画你的崩溃指数): h = f g h=f*g

在 2015 年中国计算机大会特邀报告上 , 笔者有幸聆听了中国人工智能学会理事长李德毅院士的主题报告。 在报告中,李院士便提到了卷积的理解问题,非常有意思。

李院士说, 什么叫卷积呢?

举例来说,在一根铁丝某处不停地弯曲,假设发热函数是 f ( t ) f(t) ,散热函数是 g ( t ) g(t) ,此时此刻的温度就是 j ( t ) j(t) g ( t ) g(t) 的卷积。

在一个特定环境下,发声体的声源函数是 j ( t ) j(t) , 该环境下对声源的反射效应函数是 g ( t ) g(t) ,那么在这个环境下感受到的声音就是 j ( t ) j(t) 的和 g ( t ) g(t) 的卷积。

类似的,记忆其实也是一种卷积的结果。 假设认知函数是 f ( t ) f(t) ,它代表对已有事物的理解和消化,遗忘函数是 g ( t ) g(t) ,那么人脑中记忆函数 h ( t ) h(t) 就是函数 f ( t ) f(t) g ( t ) g(t) 的卷积。

那么,函数 f f 和函数 g g 一起“卷积”出来的,到底是一个什么样的函数呢,我劝你也别猜,反正它很复杂就是了.

3.为什么这个卷积核(或称滤波器)能够检测出特征呢?

一种通俗的解释为,在图像中,相比于背景, 描述物体的特征的像素之间的值差距较大(比如物体的轮廓),变化明显,通过卷积操作, 可以过滤掉变化不明显的信息(即背景信息 )。

一个卷积核可以用来检测出图片中的一个特征,我们可以用多个卷积核来探测图像的不同特征。

这样说来,似乎还是非常抽象,这些特征到底是什么?

用一个简单的例子,理解卷积神经网络(CNN)做的事情。

确定一幅图像是包含有"X"还是"O"?
在这里插入图片描述
所以,每次给你一张图,你需要判断它是否含有"X"或者"O",并且假设必须两者选其一,所以结果,不是"X"就是"O",

在这里插入图片描述
对于计算机来说,只要图像稍稍有一点变化,不是标准的,解决这个问题就会变得不那么容易:
在这里插入图片描述
计算机要解决上面这个问题,一个比较天真的做法就是先保存一张"X"和"O"的标准图像,然后将其他的新给出的图像来和这两张标准图像进行对比,看看到底和哪一张图更匹配,就判断为哪个字母。

但是这么做的话,其实是非常不可靠的,因为计算机还是比较死板的。

在计算机的“视觉”中,一幅图看起来就像是一个二维的像素数组,每一个位置对应一个数字。在我们这个例子当中,像素值"1"代表白色,像素值"-1"代表黑色。
在这里插入图片描述
当比较两幅图的时候,如果有任何一个像素值不匹配,那么这两幅图就不匹配,至少对于计算机来说是这样的。

对于这个例子,计算机认为上述两幅图中的白色像素除了中间的 3 3 3*3 的小方格里面是相同的,其他四个角上都不同:

在这里插入图片描述
因此,从表面上看,计算机判别右边那幅图不是"X",两幅图不同:
在这里插入图片描述
但是这么做,显然太不合理了!

理想的情况下,我们希望,对于那些仅仅只是做了一些像平移,缩放,旋转,微变形等简单变换的图像,计算机仍然能够识别出图中的"X"和"O"。

就像下面这些情况,我们希望计算机依然能够很快并且很准的识别出来:
在这里插入图片描述
这也就是CNN出现所要解决的问题。

特征提取(feature extraction)

在这里插入图片描述
对于CNN来说,它是一块一块地来进行比对。它拿来比对的这个“小块”我们称之为Features(特征)。

在两幅图中大致相同的位置找到一些粗糙的特征进行匹配,CNN能够更好的看到两幅图的相似性,相比起传统的整幅图逐一比对的方法,每一个feature就像是一个小图(就是一个比较小的有值的二维数组)。

不同的Feature匹配图像中不同的特征。在字母"X"的例子中,那些由对角线和交叉线组成的features基本上能够识别出大多数"X"所具有的重要特征。
在这里插入图片描述
这些features很有可能就是匹配任何含有字母"X"的图中字母X的四个角和它的中心。那么具体到底是怎么匹配的呢?如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
看到这里是不是有了一点头目呢。但其实这只是第一步,你知道了这些Features是怎么在原图上面进行匹配的。

但是你还不知道在这里面究竟进行的是怎样的数学计算,比如这个下面3*3的小块到底干了什么?

在这里插入图片描述
接下来就跟进介绍里面的数学操作,也就是我们常说的“卷积”操作。
当给你一张新的图时,CNN并不能准确地知道这些features到底要匹配原图的哪些部分,所以它会在原图中每一个可能的位置进行尝试。这样在原始整幅图上每一个位置进行匹配计算,我们相当于把这个feature变成了一个过滤器。这个我们用来匹配的过程就被称为卷积操作,这也就是卷积神经网络名字的由来。

猜你喜欢

转载自blog.csdn.net/YPP0229/article/details/93494577