0%

卷积神经网络CNN

CNN

空间不变性: 检测对象和图像位置无关
局部性:先从局部区域特征做起,在高层再集成局部特征预测

从全连接层到卷积

\([\mathbf{X}]_{i, j}\)\([\mathbf{H}]_{i, j}\)分别表示输入图像和隐藏表示中位置\((i,j)\)处的像素。且不妨使\(k = i+a\),\(l=j+b\) \[ \begin{split}\begin{aligned} \left[\mathbf{H}\right]_{i, j} &= [\mathbf{U}]_{i, j} + \sum_k \sum_l[\mathsf{W}]_{i, j, k, l} [\mathbf{X}]_{k, l}\\ &= [\mathbf{U}]_{i, j} + \sum_a \sum_b [\mathsf{V}]_{i, j, a, b} [\mathbf{X}]_{i+a, j+b}.\end{aligned}\end{split} \]

需要完成的目标:

  1. 平移不变形:\(\mathsf{V}\)\(\mathsf{U}\)实际上不依赖于\((i,j)\)的值,即\([\mathsf{V}]_{i, j, a, b} = [\mathbf{V}]_{a, b}\)。即卷积核不变,简化\(\mathsf{H}\)为:

    \[ [\mathbf{H}]_{i, j} = u + \sum_a\sum_b [\mathbf{V}]_{a, b} [\mathbf{X}]_{i+a, j+b}. \]

    这就是卷积(准确来说卷积层是个错误的叫法,卷积层用到的其实是互相关运算 (cross-correlation),而不是卷积运算),使用\([\mathbf{V}]_{a, b}\)对位置\((i,j)\)附近的像素\((i+a,j+b)\)进行加权得到\([\mathbf{H}]_{i, j}\)

  2. 局部性: 即给\(a,b\)一个范围限定,使其不要联系到很远的位置,得到\([\mathbf{H}]_{i.j}\)
    \[ [\mathbf{H}]_{i, j} = u + \sum_{a = -\Delta}^{\Delta} \sum_{b = -\Delta}^{\Delta} [\mathbf{V}]_{a, b} [\mathbf{X}]_{i+a, j+b}. \] 这就是卷积层,\([\mathbf{V}]\)即是卷积核

卷积数学定义:

卷积是测量 f 和 g 之间(把其中一个函数“翻转”并移位 x 时)的重叠。
>注意这个翻转,实际上卷积层不使用翻转,是互相关运算

\[ (f * g)(\mathbf{x}) = \int f(\mathbf{z}) g(\mathbf{x}-\mathbf{z}) d\mathbf{z}. \]

离散形式:

\[ (f * g)(i) = \sum_a f(a) g(i-a). \]

多通道

图像往往包含三通道,即每个像素点还包括一个长度为3的数组,因此卷积操作也要扩展一个维度:

\[ [\mathsf{H}]_{i,j,d} = \sum_{a = -\Delta}^{\Delta} \sum_{b = -\Delta}^{\Delta} \sum_c [\mathsf{V}]_{a, b, c, d} [\mathsf{X}]_{i+a, j+b, c}, \]

多通道

图像往往包含三通道,即每个像素点还包括一个长度为3的数组,因此卷积操作也要扩展一个维度:

\[ [\mathsf{H}]_{i,j,d} = \sum_{a = -\Delta}^{\Delta} \sum_{b = -\Delta}^{\Delta} \sum_c [\mathsf{V}]_{a, b, c, d} [\mathsf{X}]_{i+a, j+b, c}, \]