04. 卷积神经网络

第1周 卷积神经网络

1.1 计算机视觉

  1. 计算机视觉问题
    (1)图像分类
    (2)目标检测
    (3)风格迁移
  2. 大规模图片上的深度学习
    (1)以往的图片往往大小是64×64×364\times 64 \times 3的,即总特征数为12288。
    (2)若图片大小增加到1000×1000×31000 \times 1000 \times 3,则总特征数增加到3百万。

1.2 边缘检测示例

  1. 计算机视觉问题
    (1)人脸检测距离《吴恩达深度学习》04卷积神经网络(第1周卷积神经网络)
  2. 垂直边缘检测
    [301274158931272513013178421628245239][101101101]=[540810223024732316] \left[\begin{matrix} 3 & 0 & 1 & 2 & 7 & 4 \\ 1 & 5 & 8 & 9 & 3 & 1 \\ 2 & 7 & 2 & 5 & 1 & 3 \\ 0 & 1 & 3 & 1 & 7 & 8 \\ 4 & 2 & 1 & 6 & 2 & 8 \\ 2 & 4 & 5 & 2 & 3 & 9 \end{matrix}\right] * \left[\begin{matrix} 1 & 0 & -1\\ 1 & 0 & -1\\ 1 & 0 & -1 \end{matrix}\right] = \left[\begin{matrix} -5 & -4 & 0 & 8 \\ -10 & -2 & 2 & 3 \\ 0 & -2 & -4 & -7 \\ -3 & -2 & -3 & -16 \end{matrix} \right]
  3. 编程实现
    (1)python:conv_forward
    (2)tensorflow:tf.nn.conv2d
  4. 垂直边缘检测的直观解释《吴恩达深度学习》04卷积神经网络(第1周卷积神经网络)

1.3 更多边缘检测内容

  1. 垂直和水平边缘检测
    (1)垂直
    [101101101] \left[\begin{matrix} 1 & 0 & -1\\ 1 & 0 & -1\\ 1 & 0 & -1 \end{matrix}\right]
    (2)水平
    [111000111] \left[\begin{matrix} 1 & 1 & 1\\ 0 & 0 & 0\\ -1 & -1 & -1 \end{matrix}\right]
    (3)正负边缘
    正边缘指从亮到暗的过渡边缘。
  2. 学习边缘检测
    (1)Sobel滤波器(更鲁棒)
    [101202101] \left[\begin{matrix} 1 & 0 & -1\\ 2 & 0 & -2\\ 1 & 0 & -1 \end{matrix}\right]
    (2)Scharr滤波器
    [30310010303] \left[\begin{matrix} 3 & 0 & -3\\ 10 & 0 & -10\\ 3 & 0 & -3 \end{matrix}\right]
    (3)可以将矩阵元素作为学习的参数。

1.4 Padding

  1. Padding
    (1)若有一张图片大小为n×nn \times n,滤波器大小为f×ff \times f,则卷积结果大小为(nf+1)×(nf+1)(n-f+1)\times (n-f+1)
    (2)缺点:每次卷积图像会变小;边角的像素只在一次卷积中涉及到,中部的像素点被多次采用。
    (3)解决方法:在原始图像外围填充一圈像素点。设填充像素点个数为pp,则原始图像变为(n+2p)×(n+2p)(n+2p)\times(n+2p),因此卷积结果大小变为(n+2pf+1)×(n+2pf+1)(n+2p-f+1)\times(n+2p-f+1)
  2. Valid卷积和Same卷积
    (1)Valid卷积:不填充
    (2)Same卷积:填充,使得卷积结果和原始图像大小相同
  3. 通常情况下,ff是奇数。

1.5 卷积步长

  1. 步幅卷积
    (1)之前的卷积过程,步幅为1。
    (2)若输入为n×nn \times n,滤波器为f×ff \times f,填充大小为pp,步幅为ss,则输出结果为n+2pfs+1×n+2pfs+1\lfloor\frac{n+2p-f}{s}+1\rfloor \times \lfloor\frac{n+2p-f}{s}+1\rfloor
  2. 互相关和卷积
    机器学习(深度学习)领域中的卷积,和数学领域的卷积有所区别,和数学领域中的互相关更一致。
    数学领域中的卷积运算,首先要对滤波器进行水平和垂直翻转,然后再进行计算。

1.6 三维卷积

  1. RGB图像卷积
    (1)原始图像尺寸:高×\times×\times通道数
    (2)卷积核尺寸:高×\times×\times通道数(与原始图像相同)
    (3)输出结果:高×\times宽(二维)
  2. 多过滤器
    用于检测不同目标,如垂直边缘、水平边缘等。此时输出结果不再是二维的,和过滤器数量有关。

1.7 单层卷积网络

  1. 单层举例
    《吴恩达深度学习》04卷积神经网络(第1周卷积神经网络)
  2. 符号说明
    ll层为卷积层,则
    (1)f[l]f^{[l]}过滤器规模
    (2)p[l]p^{[l]}填充像素数量
    (3)s[l]s^{[l]}步长
    (4)nC[l]n^{[l]}_C过滤器数量
    (5)每个过滤器的大小为f[l]×f[l]×nC[l]f^{[l]}\times f^{[l]} \times n_C^{[l]}
    (6)**函数a[l]a^{[l]}nH[l]×nW[l]×nC[l]n_H^{[l]}\times n_W^{[l]}\times n_C^{[l]}
    (7)权重f[l]×f[l]×nC[l]×nC[l]f^{[l]}\times f^{[l]} \times n_C^{[l]}\times n_C^{[l]}
    (8)偏差nC[l]n_C^{[l]}
    (9)输入:nH[l1]×nW[l1]×nC[l1]n^{[l-1]}_H \times n^{[l-1]}_W\times n^{[l-1]}_C
    (10)输出:nH[l]×nW[l]×nC[l]n^{[l]}_H \times n^{[l]}_W\times n^{[l]}_C,其中nH[l]=nH[l1]+2p[l]f[l]s[l]+1n^{[l]}_H=\lfloor\frac{n_H^{[l-1]}+2p^{[l]}-f^{[l]}}{s^{[l]}}+1\rfloornW[l]n^{[l]}_W类似.

1.8 简单卷积网络示例

1.9 池化层

1.10 卷积神经网络示例

1.11 为什么使用卷积?

相关文章: