简介:本文从卷积的物理直觉出发,系统讲解加权叠加、卷积核、翻转滑动与图像卷积操作,帮助开发者理解大模型中局部建模与特征提取的数学基础,掌握可验证的推导与排查方法。
本教程面向开发者、算法工程师和技术负责人,目标是帮助读者真正理解卷积这一数学工具的核心机制,并能够将其与大模型中的局部建模、特征提取和时序加权等概念建立联系。读完本教程,你将能够:
本教程不要求读者具备深度学习框架的使用经验,但需要具备基本的函数、求和、积分和线性代数概念。
卷积思想广泛出现在以下技术场景中:
理解卷积,是理解“局部加权叠加”这一通用建模范式的起点。
在开始动手推导之前,请确认以下基础知识:
无需安装任何特定软件。本教程的推导可以用纸笔完成,也可以用任意通用编程语言验证。
卷积是一套加权叠加计算。它要解决的问题是:
所有历史输入,经过系统规则衰减、延迟或变换后,在当下时刻叠加在一起的总效果是多少?
这里的“系统规则”就是卷积核。卷积核决定了每一份历史输入对当前时刻贡献多少权重。
想象一次爆炸发出声音。声音直接到达耳朵,同时经墙壁多次反射后衰减到达。任意时刻听到的总音量,等于原始声波乘以不同延迟和衰减后的回声叠加。
回声是客观物理现象,而卷积是人类用来描述它的数学工具。这个顺序很重要:先有规律,后有工具。
连续形式的卷积定义为:
(f * g)(t) = ∫ f(x) · g(t - x) dx
离散形式为:
(f * g)[t] = Σ f[x] · g[t - x]
关键观察:两个函数的参数 x 和 t-x 相加,x 作为变量被抵消,留下常量时间 t。这正是卷积“翻转滑动”特性的来源。
假设每天随机进货,货物以固定速率消耗。求第 T 天晚上仓库剩余货物。
假设未来 3 天每天早上买入曲线为:
f(x) = x + 1
即第 0 天买 1 份,第 1 天买 2 份,第 2 天买 3 份。
货物每天均匀消耗,10 天消耗完,则剩余比例:
g(x) = (10 - x) * 0.1
即第 0 天剩余 1.0,第 1 天剩余 0.9,第 2 天剩余 0.8,依此类推。
第 3 天晚上,仓库中剩余货物来自不同时间买入的叠加:
总剩余 = f(0)·g(3) + f(1)·g(2) + f(2)·g(1)= 1×0.7 + 2×0.8 + 3×0.9= 0.7 + 1.6 + 2.7= 5.0
将上式推广到第 T 天:
总剩余 = f(0)·g(T-0) + f(1)·g(T-1) + f(2)·g(T-2)
写成求和形式:
总剩余[T] = Σ f[x] · g(T - x)
这正是离散卷积的定义。当时间连续时,求和变为积分:
总剩余(t) = ∫ f(x) · g(t - x) dx
把 g(x) 翻转后得到 g(-x),再沿时间轴滑动。每滑动到一个位置 t,就计算 f(x) 与 g(t-x) 的乘积并累加。这就是“翻转—滑动—相乘—积分”的四步操作。
图像卷积的核心思想是:周围像素对中心像素有影响。
具体操作是:用一个小的矩阵(卷积核)在原图上逐窗口滑动,窗口内像素与核对应数值相乘后求和,得到新像素值。
假设卷积核为:
0 -1 0-1 5 -10 -1 0
这个核的作用是增强中心像素、削弱周围像素,常用于锐化。
对于图像中某个 3×3 区域:
10 20 3040 50 6070 80 90
与上述核逐元素相乘并求和:
0×10 + (-1)×20 + 0×30+ (-1)×40 + 5×50 + (-1)×60+ 0×70 + (-1)×80 + 0×90= 0 - 20 + 0 - 40 + 250 - 60 + 0 - 80 + 0= 50
新像素值为 50,替换原中心像素 50 所在位置。滑动窗口遍历整张图,得到新图像。
卷积核的数值是人为定义的,不同数值对应不同效果:
注意:图像卷积中,核通常不翻转(严格说是互相关),但在数学定义中卷积需要翻转。工程实现中常混用这两个概念,理解时需注意区分。
完成上述推导后,可以通过以下方式验证理解是否正确:
卷积需要翻转核,互相关不翻转。在图像处理中,如果核是对称的,两者结果相同。在数学推导中,必须区分。
翻转来自定义中的 g(t - x)。当 t 增大时,g 的图形沿正方向滑动。从计算角度看,翻转是为了让“历史输入的贡献”正确对齐到当前时刻。
核越大,感受野越大,但计算量增加。常见选择是 3×3、5×5、7×7。大模型中常用小核堆叠来近似大核效果。
常见策略包括:补零、复制边缘、镜像填充。补零最简单,但会引入边缘效应;复制边缘能减轻边界突变。
本教程从物理直觉出发,逐步推导了卷积的数学定义,演示了离散卷积的手动计算过程,并说明了卷积在图像处理中的具体操作。
核心要点回顾:
在大模型的理论基础中,卷积思想以局部感受野、权重共享、层级特征提取等形式持续发挥作用。理解卷积,是理解更复杂模型结构的重要一步。后续可继续关注卷积的变体、注意力机制与卷积的关系,以及它们在序列建模中的结合方式。