卷积是一种数学计算核心意义是加权求和其被广泛的应用于信号处理,声学,统计学,概论论等众多领域,在深度学习领域最有名的应用就是卷积神经网络(CNN),本文中只简单介绍在卷积神经网络中应用到的矩阵间卷积运算过程及模式,最终简单介绍了如何通过矩阵间的卷积运算进行边缘检测。
矩阵卷积运算
如上所示在两个矩阵进行卷积运算时,以红框为窗口,图上窗口位置为运算时窗口的起始位置,每次子运算红窗口右移一个单位,直到到达右侧边缘后回到最左侧然后下移一个单位如此循环直到窗口处于矩阵的右下角,每次取出窗口内的子矩阵与第二个参数矩阵进行对应位相乘然后加和得到的结果依次放入结果矩阵的对应位置。接下来给一个动态的计算过程:
三种计算方式
卷积计算有三种运算形式,接下来以下述代码中定义的矩阵为例对三种运算形式进行讲解:
a = numpy.array([[1,2,4,5],[2,3,4,5],[3,4,5,6],[4,5,6,7]])
Out[52]:
array([[1, 2, 4, 5],
[2, 3, 4, 5],
[3, 4, 5, 6],
[4, 5, 6, 7]])
b = numpy.array([[1,2,3],[-1,-2,3],[4,-3,-1]])
Out[53]:
array([[ 1, 2, 3],
[-1, -2, 3],
[ 4, -3, -1]])
将要涉及到的数学符号表:
- H H H:第一个参数矩阵的高
- W W W:第一个参数矩阵的宽
- f f