• 卷积运算与互相关运算


    卷积神经网络中,虽然卷积层得名于卷积(convolution)运算,但我们通常在卷积层中使用更加直观的互相关运算(cross-correlation)运算。

    卷积运算与互相关运算的联系

    卷积运算与互相关运算类似。为了得到卷积运算的输出,只需将核数组左右翻转并上下翻转,再与输出做互相关运算。
    在这里插入图片描述

    先上下翻转,再左右翻转

    互相关运算

    许多机器学习的库实现的是互相关函数但是称之为卷积。

    • 公式:
      S ( i , j ) = ( K ∗ I ) ( i , j ) = ∑ m ∑ n I ( i + m , j + n ) K ( m , n ) . S(i,j)=(K*I)(i,j)=\sum_m \sum_n I(i+m,j+n)K(m, n). S(i,j)=(KI)(i,j)=mnI(i+m,j+n)K(m,n).

    在二维互相关运算中,卷积窗口从输入数组的最左上方开始,按从左往右、从上往下的顺序,依次在输入数组上滑动。当卷积窗口滑动到某一位置时,窗口的输入子数组与核数组按元素相乘并求和,得到输入数组中相应位置的元素。如下图所示:
    在这里插入图片描述
    图中的输入数组的高和宽分别为 2 2 2,其中的 4 4 4 个元素由二维互相关运算得出:
    0 × 0 + 1 × 1 + 3 × 2 + 4 × 3 = 19 1 × 0 + 2 × 1 + 4 × 2 + 5 × 3 = 25 3 × 0 + 4 × 1 + 6 × 2 + 7 × 3 = 37 4 × 0 + 5 × 1 + 7 × 2 + 8 × 3 = 43 0\times0+1\times1+3\times2+4\times3=19\\ 1\times0+2\times1+4\times2+5\times3=25\\ 3\times0+4\times1+6\times2+7\times3=37\\ 4\times0+5\times1+7\times2+8\times3=43 0×0+1×1+3×2+4×3=191×0+2×1+4×2+5×3=253×0+4×1+6×2+7×3=374×0+5×1+7×2+8×3=43

    如果用在图中:
    在这里插入图片描述

    卷积

    • 公式:
      S ( i , j ) = ( I ∗ K ) ( i , j ) = ∑ m ∑ n I ( m , n ) K ( i − m , j − n ) . S(i,j)=(I*K)(i,j)=\sum_m \sum_n I(m,n)K(i-m, j-n). S(i,j)=(IK)(i,j)=mnI(m,n)K(im,jn).

      卷积是可交换的(commutative)。我们可以等价地写作:
      S ( i , j ) = ( K ∗ I ) ( i , j ) = ∑ m ∑ n I ( i − m , j − n ) K ( m , n ) . S(i,j)=(K*I)(i,j)=\sum_m \sum_n I(i-m,j-n)K(m, n). S(i,j)=(KI)(i,j)=mnI(im,jn)K(m,n).

    运算方式如图中所示:
    在这里插入图片描述

  • 相关阅读:
    唯众数据标注实训系统
    权值初始化的常用方法
    [附源码]java毕业设计疫情期间物资分派管理系统
    【python】OpenCV—Color Detection
    uniapp点击事件在小程序中无法传参
    WPF控件7
    DatenLord前沿技术分享 No.38
    Java Character.isTitleCase()具有什么功能呢?
    鸿蒙APP外包开发需要注意的问题
    【c++入门(2)】关联容器map
  • 原文地址:https://blog.csdn.net/qq_28087491/article/details/126557751