第一次接触人工智能、图像识别或者信号处理的人,大概率都会遇到一个词:卷积

这个词的问题在于,它听起来就很数学。

很多教材也习惯一上来给出公式,然后告诉你翻转、平移、相乘、累加。公式当然没有错,但对于一个刚接触这个概念的人来说,很容易出现一种情况:计算方法似乎学会了,却还是不知道卷积到底在干什么。

如果暂时把所有数学公式放到一边,我更愿意这样理解卷积:

卷积是一种观察信息的方法:拿着一个小小的“观察标准”,在一大堆数据上不断移动,每到一个地方,就判断一下——这里有没有我关心的东西?

理解了这一句话,声音处理、图像处理、边缘检测,甚至人工智能里的卷积神经网络,其实就慢慢串起来了。

一、机器面对的世界,其实只是一堆数字

我们看到一张照片,会自然地说:

“这里有个人。”

“这里有一辆汽车。”

“这是一个路口。”

但是计算机最开始看到的并不是“人”和“汽车”。

对计算机来说,一张照片最原始的形态就是大量数字。这些数字描述每一个像素的亮度、颜色以及位置。

声音也一样。

我们听到一句“你好”,大脑马上知道这是人的声音,甚至还能判断是谁在说话。但麦克风和计算机拿到的,首先只是声音强弱随着时间不断变化形成的一串数字。

所以机器面对的第一个困难是:

海量数字里面,什么才是真正值得关注的信息?

这是理解卷积最重要的起点。

因为卷积干的事情,恰恰就是:

从大量原始数字里面,把有意义的局部变化找出来。

二、理解卷积,可以想象一个“拿着模板巡逻的人”

假设现在有一面非常长的墙。

墙上有裂缝、污渍、螺丝、接缝,还有正常的墙面。

如果让一个人站在几十米外,一眼把整面墙全部检查清楚,其实很困难。

更现实的方法是什么?

拿一个小检查框,从墙的左边开始,一块一块地看。

看完这一块,往右挪一点。

再看下一块。

一直检查完整面墙。

这时候,我们还可以给检查人员一个任务:

你不用判断这是什么建筑,也不用理解整面墙,只需要帮我寻找“像裂缝的东西”。

于是他每移动一次,都只回答一个问题:

这一小块区域,像不像裂缝?

这就是卷积非常核心的思想。

一大片复杂信息,很难一次理解。

那就把问题缩小:

我每次只看一个局部。

而且每次看的时候,都使用同样的判断标准。

然后一路扫描过去。

这件事情本身,就是卷积思维。

三、卷积真正厉害的不是“移动”,而是“带着问题去看”

很多人会把卷积理解成“一个小窗口在图片上滑动”。

这个理解没有错,但还不够。

因为真正关键的问题不是“滑动”。

而是:

这个小窗口每移动到一个地方,到底在寻找什么?

可以把它理解成一个“问题”。

比如我们想检查一张图片:

“这里有没有明显的明暗交界?”

这是一个问题。

“这里有没有从左到右突然变亮?”

也是一个问题。

“这里有没有一条细长的竖线?”

还是一个问题。

于是,我们可以针对不同的问题,设计不同的观察模板。

模板并不是一张真正的图片,而是一套规则:

哪些位置重要?

哪些位置应该被加强?

哪些位置应该被忽略?

哪些方向的差异值得关注?

所以我更喜欢把所谓的卷积核理解成:

一副带着特定目的的眼镜。

戴上不同的眼镜,看同一张图片,看到的东西完全不同。

有的眼镜特别容易看到边缘。

有的容易看到细节。

有的会忽略小噪声,只保留大致轮廓。

有的对某种纹理特别敏感。

这就是卷积非常有意思的地方:

数据没有变,观察方式变了,看到的信息就变了。

四、为什么卷积可以找到图像边缘?

假设现在拍了一张照片。

左边是一扇黑色的门,右边是一面白色的墙。

人眼几乎瞬间就能看到:

这里有一条明显的边界。

但计算机怎么知道?

它并不知道“门”和“墙”。

它首先看到的只是:

左边一片像素比较暗,右边一片像素比较亮。

那么所谓的“边缘”,从数字角度来看,其实就是:

附近的数据突然发生了明显变化。

于是我们可以做一副专门寻找“左右差异”的眼镜。

让它从整张图片上扫过去。

扫到普通白墙的时候,左右都差不多,它会认为:

这里没什么特别。

扫到门和墙交界处的时候,左边很暗,右边突然很亮,它马上会产生一个很强的反应:

这里发生了明显变化。

于是边缘出现了。

这时候你会发现一件很有意思的事情:

所谓计算机视觉里的“边缘检测”,并不是机器像人一样先理解了“这是门”,然后把门的轮廓画出来。

顺序恰恰相反。

它可能首先发现:

这里发生了剧烈变化。

然后才慢慢从这些变化中组织出:

线条、轮廓、形状,最后才可能变成“门”。

这也是理解人工智能视觉非常重要的一点:

机器往往不是先看懂物体,再发现细节;而是先发现细节,再逐步拼出物体。

五、为什么处理声音也会用到同样的思想?

卷积并不是为人工智能或者图片发明的。

在经典信号处理中,它早就存在。

声音就是非常典型的例子。

假设你录下一段讲话。

正常情况下,声音强度是不断变化的。

但录音过程中可能突然混进一些细小杂音。

如果我们只盯着某一个瞬间,很难知道这个突然升高的数值究竟是正常声音,还是噪声。

怎么办?

不要只看这一个点。

看看它前后附近的一小段。

如果周围整体比较平稳,只有这个位置突然冒出一个异常值,我们就有理由怀疑:

这可能是一个噪声。

于是可以让每一个位置都参考附近的信息,再决定新的结果。

这实际上也是一种局部观察。

所以从这个角度看,声音里的滤波和图片里的卷积并不是两件完全不同的事情。

它们背后的思想非常接近:

不要孤立地看一个数字,而是结合它附近的数据,判断它意味着什么。

六、这可能才是卷积最本质的思想:上下文决定意义

一个像素本身,其实没有多少意义。

假设一个像素是白色。

它是什么?

不知道。

可能是一张白纸。

可能是云。

可能是人的眼白。

也可能只是汽车上的高光。

只有看看它周围是什么,才可能知道。

声音也是这样。

某一个瞬间的声音强度,本身几乎说明不了什么。

只有和前后的声音联系起来,才能形成音节、词语和语音。

所以卷积背后其实隐藏着一个非常朴素,却又非常重要的思想:

信息的意义,往往来自它和周围信息之间的关系。

卷积不是只问:

“这个点是多少?”

而是在问:

“这个点和它附近的点,组成了什么样的局部结构?”

从这个角度理解卷积,比单纯记住“滑动窗口”更重要。

因为人工智能真正感兴趣的,往往不是某个数字本身,而是数字之间形成的模式

七、那人工智能为什么特别喜欢卷积?

问题到了这里就变得很自然了。

假设我们想让机器识别一只猫。

最笨的方法,是让计算机把整张照片的所有像素一次性全部记住。

问题马上来了。

一只猫站在照片左边和站在右边,还是不是猫?

当然是。

猫离镜头近一点和远一点呢?

还是猫。

背景从沙发换成草地呢?

还是猫。

如果只是死记整张图片,那么只要图片稍微变化,原来的记忆就很可能失效。

卷积换了一种思路:

我不先记整张图,我先学会寻找局部特征。

比如:

这里有没有某种边缘?

这里有没有某种弧线?

这里有没有类似毛发的纹理?

这里有没有类似眼睛的局部结构?

于是,无论猫出现在图片左上角还是右下角,这套“观察标准”都可以扫过去寻找它。

这就是卷积非常适合图像的原因之一:

它寻找的是“特征”,而不是死记特征必须出现在哪一个固定位置。

八、卷积神经网络最关键的一步:连“眼镜”也是机器自己学出来的

传统图像处理里,人类工程师会自己设计观察模板。

例如:

我想找边缘,于是设计一种规则。

我想让图片更锐利,再设计另一种规则。

这种方式很好用,但也有明显局限。

因为有些东西太复杂了。

比如:

“什么样的局部特征组合起来像一只猫?”

“什么样的特征意味着这是一个行人?”

“工业零件上的什么纹理代表裂纹?”

这些东西如果全部依赖工程师手工设计,难度非常高。

深度学习真正改变事情的地方就在这里:

连那副用来观察世界的“眼镜”,都不一定需要人来设计,机器可以通过大量数据自己慢慢学出来。

刚开始的时候,它并不知道应该观察什么。

但经过大量训练以后,有些观察方式逐渐对边缘敏感,有些对纹理敏感,有些对特定形状敏感。

更高的网络层再继续组合这些结果。

于是可能形成这样的过程:

明暗变化
→ 边缘

边缘组合
→ 线条和弧线

线条组合
→ 眼睛、耳朵、轮廓

局部结构继续组合
→ 脸

再继续组合
→ 猫

所以所谓“深度”,很大程度上就是:

一层一层把简单特征组织成越来越复杂的特征。

九、换一个生活中的例子:机场安检其实很像卷积思维

想象一下机场的行李 X 光检查。

屏幕上可能同时出现:

衣服、电脑、充电器、瓶子、钥匙、线缆和各种杂物。

安检人员不会真的花很长时间,把每一个物品完整识别出来以后,再判断有没有危险。

经验丰富的人往往会重点寻找某些特征:

特殊轮廓。

异常密度。

特定形状组合。

不合理的结构。

也就是说,他实际上是在复杂画面中,带着某种“特征模板”快速扫描。

发现某个区域很符合目标特征,就特别关注。

当然,人类视觉系统远远比简单卷积复杂,但这种思考方式很接近:

不是试图一次理解所有东西,而是不断寻找值得注意的局部模式。

这就是卷积思维非常强大的地方。

十、再换一个例子:我们人类读错别字,其实也在使用“局部关系”

比如一句话里有一个字写得不完全正确,人有时候仍然可以顺利读下去。

为什么?

因为我们并不是孤立地识别每一个笔画。

我们会结合:

字的局部结构、前后的字、整个词语,甚至一句话的上下文。

图片也是如此。

某一个像素几乎什么都代表不了。

一小片像素开始形成纹理。

更多局部纹理组合以后形成轮廓。

轮廓和结构再组合以后,才逐渐产生语义。

所以机器视觉真正要解决的问题,并不是:

“这个像素是什么?”

而是:

“这一小片东西组合在一起,像什么?”

卷积正好提供了一个非常自然的方法来完成这种局部观察。

十一、为什么卷积核通常不需要和整张图片一样大?

因为现实世界很多有用的信息,本来就是从局部产生的。

判断这里是不是一条边缘,不需要先看整张照片。

判断这里是不是某种纹理,也不需要理解整个场景。

判断这里有没有一个角点,只需要观察附近一小片区域。

这其实很符合人处理复杂问题的方式。

医生看 CT,不一定第一秒就理解全部信息,他可能先关注某个区域的异常。

工程师检查设备,也可能先看温度、振动或者某个部件。

我们解决复杂问题,经常使用一个共同策略:

把大问题切成小问题,再把小问题的结果组合起来。

卷积也是这样。

所以如果一定要给卷积一个更抽象的定义,我会说:

卷积是一种把复杂世界拆成无数个局部观察,再通过局部信息逐渐理解整体的方法。

十二、卷积还有一个非常重要的能力:同一套标准,可以检查不同位置

假设一条裂缝出现在墙壁左边。

你知道怎么识别它。

那它移动到墙壁右边以后,识别标准需要重新学习一次吗?

当然不需要。

“裂缝长什么样”并不会因为位置变化而完全改变。

图片也是一样。

一条竖直边缘出现在左边和右边,本质上仍然是一条竖直边缘。

猫的眼睛出现在照片上方还是下方,也仍然具有类似的局部结构。

所以卷积可以拿着同一套观察标准,在不同位置反复使用。

这是一个非常重要的工程优势。

既节省大量参数,又符合现实世界的规律。

换句话说:

卷积相信,特征是什么,比特征在哪里更重要。

当然,现代视觉系统也需要理解位置信息,只是卷积特别擅长首先提取这种可以跨位置复用的局部模式。

十三、为什么卷积之后,图片看起来可能“完全不像原图”?

因为卷积的目的往往不是重新画一张好看的照片。

而是:

把机器真正关心的信息突出出来。

例如一张普通街景照片,人看到的是:

道路、汽车、行人、树木、天空。

但如果经过一种专门寻找边缘的处理以后,图片可能只剩下一堆黑白线条。

普通人可能会觉得:

照片怎么变坏了?

但对计算机来说,情况可能恰恰相反。

原来大量颜色、光照等信息可能会干扰判断。

现在轮廓被突出以后,机器更容易分析形状。

所以信号处理中的一个核心思想就是:

好的处理结果,不一定更像原始数据,而可能是让有价值的信息更加突出。

这也是理解人工智能特征提取非常重要的一点。

机器并不一定需要“看到我们看到的世界”。

它需要的是:

把对任务真正有价值的信息提取出来。

十四、从这个角度看,卷积其实是在做“信息筛选”

原始信号里面往往什么都有。

有用信息。

背景信息。

噪声。

光照变化。

颜色。

纹理。

边缘。

各种细节全部混在一起。

卷积相当于不断问:

我关心这个吗?

如果关心,就让这个地方的响应更明显。

如果不关心,就让它弱下去。

于是经过很多不同的卷积处理以后,原本杂乱的信息开始被分类:

哪里有边缘?

哪里有纹理?

哪里有某种方向变化?

哪里可能存在某种形状?

所以卷积可以被理解成:

一种局部的信息筛选器。

这一点其实比“卷积就是加权求和”更容易抓住它真正的意义。

十五、人工智能里的卷积,最值得理解的其实不是算法,而是方法论

如果把卷积放得更远一些看,会发现它背后的思维方式其实很有意思。

面对一个非常复杂的问题,不一定需要一次性理解全部。

可以:

先观察局部。

寻找重复出现的模式。

使用相同标准检查不同位置。

把简单模式逐步组合起来。

最终形成对整体的理解。

这和人类认识世界的很多过程其实很接近。

我们认识一个陌生人,并不是首先把他整个人变成一个数学模型。

我们可能先看到:

发型、眼睛、脸型、动作、声音。

这些局部特征慢慢组合以后,大脑才形成:

“这是某个人。”

所以卷积真正有意思的地方,并不只是它在计算机里面怎么运算。

而是它提供了一种非常漂亮的思想:

复杂世界不是一定要整体理解,可以先找到局部规律,再从局部规律中构造整体认知。

十六、今天有了 Transformer,卷积是不是就不重要了?

近年来 Transformer 已经大量进入图像识别、视频理解等领域,所以有人可能会觉得:

CNN是不是已经过时了?

其实不能这么理解。

不同技术路线解决问题的方式不同。

卷积更天然地强调:

局部关系和空间附近的信息。

Transformer则特别擅长:

在更大范围内建立不同信息之间的关联。

现实中的很多现代网络也会把不同思想结合起来。

而从学习人工智能和信号处理的角度来说,理解卷积依然非常重要。

因为它背后的几个思想并没有过时:

局部信息很重要。

数据之间的关系比孤立的数据更重要。

特征可以被逐层提取。

复杂结构可以由简单结构组合产生。

这些思想已经远远超出了某一种具体网络结构。

十七、如果非要用一个比喻总结卷积

我不会说:

“卷积就是两个函数经过某种数学运算。”

虽然数学上没有问题,但对理解几乎没有帮助。

我更愿意这样说:

卷积就像一个经验丰富的巡检员,拿着一套判断标准,在一大片复杂信息中逐块查看。每到一个地方,他不需要马上理解整个世界,只需要判断:这里有没有我关心的特征?

第一次巡视,可以找边缘。

第二次可以找纹理。

再往后,可以寻找更复杂的结构。

最终,大量局部判断组合起来,机器开始具备理解整体的能力。

所以,如果要把卷积浓缩成三个词,我认为不是“翻转、相乘、求和”。

对于普通人,更应该是:

局部观察、特征寻找、逐层组合。

这三个词,可能才真正解释了:

为什么一个诞生于经典信号处理时代的思想,后来会成为计算机视觉和人工智能发展过程中如此重要的一块基石。

而卷积最值得我们记住的,也许不是某个公式,而是它背后的那种思维方式:

当世界复杂到无法一眼看懂时,就先学会观察局部;当单个数据没有意义时,就寻找它和周围数据之间的关系;当复杂目标难以直接描述时,就先寻找简单特征,再一步一步把它们组合起来。

这,可能才是理解卷积最直观、也最有价值的方式。


📎 CSDN官方博客:音视频牛哥-CSDN博客 

更多推荐