图像算法--卷积

卷积

CNN已经成为图片分类比较成熟的算法,但是,很少人了解其中的数学原理,这里就先从卷积讲起,后面也会主要到卷积神经网络。希望大家能够很好的理解这个内容,为了以后学习卷积神经网络做准备。

卷积的定义

连续下的定义

(fg)(n)=f(t)g(nt)(f*g)(n)=\int f(t)g(n-t)

离散下的定义

(fg)(n)=f(t)g(nt)(f*g)(n)=\sum f(t)g(n-t)

这里你会发现 括号内的变量加起来岂不就是n, 对的,这就是卷积

convolution_1.gif

这个就是函数的动画,当然这个图画应该是很多网站都会有的,对的 我是粘贴过来的。

例子

我们考虑一下这种卷积怎么使用呢?

举个栗子

咱们抛两个筛子,结果点数和为4的概率是多少呢:

(fg)(n)=f(m)g(4m)(f*g)(n)=\sum f(m)g(4-m)

其实我们更关心的是在图像处理中的应用,以为我们将来要学习一个叫做CNN的算法。咱们举个老掉牙的例子吧。

convolution_2.jpg

咱们好平滑这些噪点,其实这个可以用数据挖掘的特征理解一下,当数据还有些强特征的时候,反而看一列就能得到分类,这样往往是不好的,这个特征并不是真的强特征。我们希望得到更加泛化的表达。就变成如下的样子。

convolution_3.jpg

卷积平滑

convolution_4.jpg

然后用下面这个平均矩阵(说明下,原图的处理实际上用的是正态分布矩阵,这里为了简单,就用了算术平均矩阵)来平滑图像:

convolution_5.png

刚才有个问题没有解决,怎么将这些噪声去除呢,一个比较普通的方法就是将噪点分摊给周边的,让他的颜色不要太明显。

convolution_6.jpg

这个即使平滑a1a_1的过程。

下面这个动图就是平滑的过程,需要说明的是g是上面的平均矩阵,而f是原图的抽取。

convolution_7.gif

写成卷积公式就是:

image.png

来看一个CNN最喜欢的动图:
convolution_9.gif

# math 
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×