卷积神经网络——卷积层计算

卷积神经网络——卷积层计算

  • 卷积层计算
  • 参数共享机制
  • 总结
  • 后记

卷积层计算

卷积层关键操作:

  • 局部关联:每个神经元看作一个滤波器filter,局部数据权值共享。
  • 滑动窗口:对一个filter内的数据进行计算。

关键参数:

  • 深度depth:filter的个数
  • 步长stride:单个filter一次滑动的长度
  • 填充值zero-padding:对输入数据进行填充

卷积神经网络——卷积层计算_第1张图片

填充值的作用:对于一个像素为5x5的输入图片,如果滑动窗口的大小为2x2,步长为2,则存在一列数据无法处理,此时需要添加0填充值,以保证所有数据都能被遍历到。

卷积神经网络——卷积层计算_第2张图片

卷积具体的计算方式,如下图所示:

卷积神经网络——卷积层计算_第3张图片

上图中的蓝色矩阵为输入的图像,维度为[5, 5, 3],经过0值填充后(灰色值为0部分),维度变为[7, 7, 3],粉色矩阵为卷积层的神经元,这里有两个神经元(w0, w1),每个神经元的维度为[3, 3, 3],步长设置为2,即每个窗口滑动的长度。

蓝色矩阵的输入数据,与filter(粉色矩阵)的权重数据进行矩阵内积计算,将结果与偏置值bias相加,得到的结果为绿色输出矩阵中的一个值。

以第一个窗口计算为例:

[0x1+0x1+0x(-1)+0x(-1)+0x0+1x1+0x(-1)+0x(-1)+1x0] + [0x(-1)+0x0+0x(-1)+0x0+1x0+1x(-1)+0x1+0x(-1)+2x0] + [0x0+0x1+0x0+0x1+2x0+0x1+0x0+0x(-1)+0x1] + 1 = 1

若输入数据维度为WxW,填充值P,Filter大小FxF,步长S,输出数据维度为NxN,则有如下计算公式:
N = ( W - F + 2P)/ S + 1

参数共享机制

卷积层中,每个神经元连接的数据窗权重是固定的,每个神经元只关注一个特性。神经元就是图像处理中的滤波器,卷积层中的每个滤波器都会有自己所关注的一个图像特征,比如垂直边缘,水平边缘,颜色,纹理等。这些所有神经元加在一起就像整张图像的特征提取器集合。

卷积神经网络——卷积层计算_第4张图片

总结

没有学习过图像处理,卷积在我理解来看就是y = Wx + B的线性乘加操作。只不过相对全连接层,局部窗口内的数据共用一组相同权重W(参数共享),使得需要计算的权重数据量大幅度减少。。

本文参考:https://www.jianshu.com/p/1ea2949c0056,侵删。

后记

本文写于回南京的高铁上,农历新年之后第一篇博客,希望今年收获能远大于去年,路漫漫其修远~

你可能感兴趣的:(算子记录)