在泛函分析中,卷积、旋积或摺积(Convolution)是通过两个函数 f(x) 和 g(x) 生成第三个函数的一种数学算子;
表征函数 f(x) 与 g(x) 经过翻转和平移的重叠部分的面积。
1 一维卷积公式
注:
(1)表达式实际上是 x 为自变量的函数表达式
(2)s(x) = f(x) * g(x) 表示 f(x) 与 g(x) 的卷积
(3)函数等于被积函数 f(x)g(x-δ) 在区间(-∞,+∞)上对 δ 的积分。
2 关于卷积的解释
我对卷积的理解 这个通过输液方式解释的
多维卷积与一维卷积的统一性(运算篇) 这个解释的比较抽象
最容易理解的对卷积(convolution)的解释 这个解释的比较详细
3 简单示例
np.convolve(a, b, 'full')->c a: [1 2 3 4 5] -- 被卷积向量 b: [6 7 8] -- 卷积核向量 c: [6 19 40 61 82 67 40] 40 61 82 -- valid (有效卷积) 19 40 61 82 67 -- same (同维卷积) 6 19 40 61 82 67 40 -- full (完全卷积) 0 0 1 2 3 4 5 0 0 8 7 6 8 7 6 8 7 6 8 7 6 8 7 6 8 7 6 8 7 6
import numpy as np a = np.arange(1, 6) b = np.arange(6, 9) print(' a:', a) print(' b:', b) print(' full:', np.convolve(a, b, 'full')) print(' same:', np.convolve(a, b, 'same')) print('valid:', np.convolve(a, b, 'valid'))
运行
a: [1 2 3 4 5] b: [6 7 8] full: [ 6 19 40 61 82 67 40] same: [19 40 61 82 67] valid: [40 61 82]
等详细地把卷积知识学习完毕后整理一份文档