《动手学深度学习》之卷积神经网络

文章目录

  • 从全连接层到卷积
    • 不变性
    • 限制多层感知机
      • 平移不变性
      • 局部性
    • 卷积
      • 通道
  • 图像卷积
    • 互相关运算
    • 特征映射和感受野
  • 填充和步幅
    • 填充
    • 步幅
  • 多输入多输出通道
    • 多输入通道
    • 1 × 1 1\times 1 1×1 卷积层
  • 汇聚层
    • 最大汇聚层和平均汇聚层
  • 卷积神经网络(LeNet)
    • LeNet
  • 总结

从全连接层到卷积

卷积神经网络(convolutional neural networks,CNN)是机器学习利用自然图像中一些已知结构的创造性方法。

不变性

计算机视觉的神经网络结构:

  1. 平移不变性(translation invariance):不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对相同的图像区域具有相似的反应,即为“平移不变性”。
  2. 局部性(locality):神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远区域的关系,这就是“局部性”原则。最终,在后续神经网络,整个图像级别上可以集成这些局部特征用于预测。

限制多层感知机

首先,多层感知机的输入是二维图像 X \mathbf{X} X,其隐藏表示 H \mathbf{H} H 在数学上是一个矩阵,在代码中表示为二维张量。其中 X \mathbf{X} X H \mathbf{H} H 具有相同的形状。为了方便理解,我们可以认为,无论是输入还是隐藏表示都拥有空间结构。

使用 [ X ] i , j [\mathbf{X}]_{i, j} [X]i,j [ H ] i , j [\mathbf{H}]_{i, j} [H]i,j 分别表示输入图像和隐藏表示中位置( i i i, j j j)处的像素。
为了使每个隐藏神经元都能接收到每个输入像素的信息,我们将参数从权重矩阵(如同我们先前在多层感知机中所做的那样)替换为四阶权重张量 W \mathsf{W} W。假设 U \mathbf{U} U 包含偏置参数,我们可以将全连接层形式化地表示为

[ H ] i , j = [ U ] i , j + ∑ k ∑ l [ W ] i , j , k , l [ X ] k , l = [ U ] i , j + ∑ a ∑ b [ V ] i , j , a , b [ X ] i + a , j + b . \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} [H]i,j=[U]i,j+kl[W]i,j,k,l[X]k,l=[U]i,j+ab[V]i,j,a,b[X]i+a,j+b.

其中,从 W \mathsf{W} W V \mathsf{V} V 的转换只是形式上的转换,因为在这两个四阶张量的元素之间存在一一对应的关系。我们只需重新索引下标 ( k , l ) (k, l) (k,l),使 k = i + a k = i+a k=i+a l = j + b l = j+b l=j+b, 由此可得 [ V ] i , j , a , b = [ W ] i , j , i + a , j + b [\mathsf{V}]_{i, j, a, b} = [\mathsf{W}]_{i, j, i+a, j+b} [V]i,j,a,b=[W]i,j,i+a,j+b。索引 a a a b b b 通过在正偏移和负偏移之间移动覆盖了整个图像。对于隐藏表示中任意给定位置( i i i, j j j)处的像素值 [ H ] i , j [\mathbf{H}]_{i, j} [H]i,j,可以通过在 x x x 中以 ( i , j ) (i, j) (i,j) 为中心对像素进行加权求和得到,加权使用的权重为 [ V ] i , j , a , b [\mathsf{V}]_{i, j, a, b} [V]i,j,a,b

平移不变性

简化 H \mathbf{H} H 定义为:

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

你可能感兴趣的:(人工智能,深度学习,神经网络,深度学习)