卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解
1、卷积的数学意义 从数学上讲,卷积与加减乘除一样是一种运算,其运算的根本操作是将两个函数的其中一个先平移,然后再与另一个函数相称后的累加和。这个运算过程中,因为涉及到积分、级数的操作,所以看起来很复杂。在 卷积(转自wiki百科) 中已经讲过了卷积的定义如下所示: 对于定义在连续域的函数,卷积定义为 对于定义在离散域的函数,卷积定义为 这里令U(x,y) = f(x)g(y) ,考虑到函数 f 和 g 应该地位平等,即变量 x 和 y 应该地位平等,一种可取的办法就是沿直线 x+y = t将U(x,y)卷起来。下面为t取实际值的时候的坐标图,可以看到不同取值的t可以遍历整个平面。 将x+y=t中t取一次定值(这个定值可能是我们想要知道的某时刻的结果或着某种特征,由我们赋值),代入到U(x,y)中,就相当于U(x,y)所在平面沿着x+y=t直线做一次旋转如下列动图所示: 这里便是完成了整个卷积的降维过程,完成降维过程后,U(x,y)也就从一个二元函数 U(x,y) = f(x)g(y) 被卷成一元函数 V(x)=f(x)g(t-x),最后再对x求积分(即遍历降维后的轴上的特征点之和)。 2、卷积的C语言编写 编写卷积的程序,需要根据其离散方程组来进行了解。前面已经知道了卷积的离散函数的定义公式为: 在用C语言等其他语言进行实现是可以采用定义