卷积 毫无意义

知乎 有一个 问题 《如何通俗易懂地解释卷积?》   https://www.zhihu.com/question/22298352      。

 

在 这个 问题  里,   网友们 回答 的 很精彩 、淋漓尽致,  生动活泼具体,    但 从头到尾,  就是没有说,  为什么要 “反转”  ?

 

卷积 的 表达式 :        ʃ  f ( τ )  g ( x - τ )  dτ   , 

 

卷积,  是 要 构造 一个 和  x  相关 的   τ  的 区间,   反转 的 意义 也在 这里  。     这是 玩法一  。

 

还有 玩法二,   卷积,  是 要 构造 一个 和  x  相关 的   x - τ  的 区间  。 

 

如果 把  x - τ  改成  τ - x   ,    那么 就 不是 反转,   而是 平移,  平移 的 位移 为 x   。

 

在  《如何通俗易懂地解释卷积?》   问题 中,  有 网友 举了 图像降噪 的 例子,  具体 就是 寻找 位图 里 的 噪点  。

 

我可以写 一段 简单 的 程序 来 实现 寻找 位图 里 的 噪点,   代码 是 伪码,   主要 描述 逻辑   。

 

代码   ********

 

var  a  =  位图矩阵(元素 是 像素点)

var  噪点Array          //  这是一个 数组, 用于 保存 噪点

遍历 a  

{

          var  p1 =  a 的 当前遍历 的 元素(像素点)

          var  结果   =   0

          遍历 a  中 p1 附近 像素点

          {

                   var p2  =   当前遍历 的 像素点

                   var  反差  =    p1 和 p2 在 色彩 、亮度 等 方面 的 反差

                   var  权重  =    p1 和 p2 的 距离 决定 权重,  距离近 则 权重大,  距离远 则 权重小

                   var  本次结果  =  反差  *  权重

                   结果   +=   本次结果

          }

          结果  越大,  则  p1 是 噪点 的 可能性 越大

          如果 是 噪点,  把  p1  保存到    噪点Array 

}

最终   噪点Array  里 存放的 就是 检查到的 噪点

 

代码 完   ********

 

这段 代码 不难,   理解了 意图 的 话,  初中生 可以写 。      嗯 ?   这需要 卷积 ?

 

声音 的 去噪 大概 也是 这个 原理 吧 ?      当然, 要 定义出 一个 信号点 对于 一段信号 怎样算是 噪点 的 规则  。

 

所以,  可以看出,   卷积 和 直积 类似,  是 对 元素 的 排列组合匹配 ,   区别是,  卷积 是 “靶向性的直积”,  简称 靶向直积   。

 

直积 的 定义 是,   设 有 2 个 矩阵 a 、b,        a * b 的 直积 是 a 的 每一个元素 和 b 的 所有元素 相乘,   基本上, 这也是 笛卡尔积   。

而 卷积 是   a 的 每一个元素 和 b 里 的 一部分 元素 相乘,   “b 里 的 一部分 元素” 这个 “一部分” 的 范围 和 a 的 元素 相关,  由 a 的 元素 决定   。

 

卷积 有一点 “反转” 的 意思,  从 这一点 来看,   类似 程序 的 递归,  当然,  这只是一个 类比  。

但这样类比的话,     直积 = 循环 套 循环,  卷积 = 循环 套 递归,       啊这  ?

 

结论 :       卷积 毫无用处,    直积 走遍天下,    笛卡儿积 无所不能    。

 

你可能感兴趣的:(卷积 毫无意义)