信号处理与AI中的卷积的关系

一、卷积

在前面的文章中引用了知乎上的经典说明"卷积就是平衡、叠加",其物理意义就是加权叠加。卷积的数学定义如下:

(f∗g)(t)=∫f(τ)g(t−τ)dτ

它包含两个步骤即反转(将g(τ)变为g(-τ))和平移相乘再求和(积分)。也可以将其分为四步即反转、平移、相乘和求和。它在信号处理和图像处理中应用非常广泛。特别是现代的AI的底层框架深度学习中,卷积更是无法避开的一个核心的概念。

二、工程中用到的卷积

在实际开发的工程为了处理超声采集的信号,也应用到了卷积。但在工程中卷积的目的是为了实现包络和滤波。也就是说,卷积是用于对信号进行线性不变系统的输出。不过在工程代码中并没有实现显示的"反转"这个动作,但在应用的希尔伯特和Fir中都进行了隐式的"反转"实现。不过从上层应用来看,更接近于"cross-correlation"(互相关),有过深度学习经验的可能会对其更容易理解。其应用的公式:

复制代码
H{x}[n] = sum_{k=0}^{L-1} x[n - L/2 + k] * h[k]
和
y[n] = sum_{k=0}^{N-1} x[n - D + k] * g[k]

三、深度学习中的卷积

深度学习中的卷积从数学意义上看就是"cross-correlation"。它不进行反转,主要原因在于其卷积核是训练学习出来的而不是预设的。如果反转其实意义不大。毕竟在深度学习中可以自由调整权重来适应运算,反而是采用互相关更简单快捷。所以说,深度学习中卷积并不是严格的数学意义上的卷积。

四、二者的关系

从工程实践来看,信号处理和深度学习中的卷积,目的都是相同的。但在实现的细节上有着明显的不同。以本次开发的工程为例,它们的联系如下:

一)相同之处

  1. 都需要在局部的窗口中进行相乘叠加
  2. 窗口会在范围内进行滑动
  3. 重复使用相同的一组系数
  4. 都可以对相同的参数进行计算
    二)不同之处
  5. 卷积核来源不同。工程中来自于解析设计,有着明确的物理意义;而深度学习则来自训练
  6. 用途不同。工程中用来进行希尔伯特变换等操作;而深度学习用来进行牲提取
  7. 维度不同。工程中的维度是单维度线性的;而深度学习是多维度平面的
  8. 操作的具体方式不同。工程中需要进行反转;而深度学习不用

也就是说,工程中的卷积是固定核的数字信号的处理;而深度学习中则是训练核的特征提取。

五、工程中实现的相关代码

下面看一下工程中的相关代码,看一下滤波相关卷积:

c 复制代码
int sPoint = sIdxIn - gDelay;
for (int tap = 0; tap < tCount; tap++) {
  int idx = sPoint + tap;
  sum += in[scanlineIdx + idx * nScanlines] * taps[tap];
}

这段代码对应着前面的第二个公式,看上去没有明显的反转。但在TAPS数组中是以中心对称的,所以其实现的结果与标准的卷积是相同的。这也算是一种隐式的反转吧。

六、总结

在前面的"卷积及其物理意义"中,对卷积进行过初步的分析。作为非专业算法人员,重点是对算法的理解和应用,希望通过上面的对比,能够总结经验并能给大家以借鉴。

相关推荐
xywww1683 小时前
大模型 API 选型实战:GPT、Gemini、Claude 接入时该看哪些指标?
运维·服务器·人工智能·python·gpt·langchain
王老师青少年编程7 小时前
2025年【江苏“信息与未来”编程思维】真题及题解(T2:坐标变换)
c++·题解·真题·坐标变换·编程思维·江苏·信息与未来
私人珍藏库7 小时前
[Android] PeakFinder AR v4.8.89 (山峰全景识别+增强现实山峰查看器)
android·人工智能·智能手机·ar·工具·软件
CS创新实验室8 小时前
算法、齿轮与硅基大脑:数值计算发展简史
人工智能·算法·数值计算
能有时光8 小时前
PyTorch KernelAgent 源码解读 ---(4)--- ExtractorAgent
人工智能·pytorch·python
fthux8 小时前
GitZip Pro 源码解析:一个 GitHub 文件/文件夹下载扩展是如何工作的(一)整体架构与扩展入口
人工智能·ai·开源·github·open source
aqi009 小时前
15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能
人工智能·python·大模型·ai编程·ai应用
xixixi777779 小时前
三大 AI 安全里程碑:Akamai 高危风险预警、智能体水印强制落地、PQC 量子安全全产业链统一
大数据·人工智能·安全·ai·大模型·智能体·政策
AI小码10 小时前
LLM 应用的缓存工程:当每次 API 调用都在燃烧成本
java·人工智能·spring·计算机·llm·编程·api
code 小楊10 小时前
AI函数调用:Function Calling从理论到实战全解析
人工智能