机器学习基础整理 (第七章) - 卷积神经网络

文章目录

整体思路

机器学习基础整理 (第七章) - 卷积神经网络
在多层感知机中,一层中的 输入输出关系 可以以矩阵相乘 的形式 描述:
v i = W v i − 1 v_i = W_{v_{i-1}} vi​=Wvi−1​​

机器学习基础整理 (第七章) - 卷积神经网络

卷积神经网络中,隐藏层的输入输出关系由卷积描述(权重矩阵必须是 Toeplitz)

v j = ∑ i = 1 6 w i x i + j − 1 ; j = 1 , 2 , 3 , 4 v_j = \sum_{i=1}^6 w_i x_{i + j - 1}; j = 1, 2, 3, 4 vj​=i=1∑6​wi​xi+j−1​;j=1,2,3,4

{ w i } i = 1 6 \{w_i\}_{i =1}^6 {wi​}i=16​ 构成所有四个隐藏神经元共享的相同权重集。

卷积神经网络 (CNN) 是一类特殊的多层感知器,非常适合处理具有 网格状拓扑结构 (grid-like topology) 的数据。

这种数据包括:

  • 时间序列数据 (time-series data): 一维网格定期采样。
  • 图像数据 (Image data): 二维像素网格。

CNN 是在至少一层中使用卷积代替 一般矩阵乘法 的网络。

CNN 是一种将 先验信息 (prior information) 构建到神经网络设计中的方法。

  • 网络架构限制 (network architecture restriction) - 使用本地连接 (local connection) 或称 感受野 (receptive fields)。
  • 突触权重选择的限制 - 使用权重共享 (weight sharing)。

CNN 有时被设计来 识别二维形状,其对 平移 (translation)、缩放 (scaling)、倾斜 (skewing) 和其他扭曲 (distortions) 具有高度不变性 (high degree of invariance)。

CNN 中的结构约束旨在实现:

  • 特征提取 (feature extraction): 每个神经元 从 神经元的局部感受野 获取突触输入,使得它们能提取局部特征。
  • 特征映射 (feature mapping): 每个计算层有多个特征映射,它们形成平面,其中神经元*共享相同的突触权重集,有益影响包括: (1) 位移不变性 (shift invariance): 通过卷积和激活函数实现。(2) 减少*参数的数量: 通过权重共享实现。
  • 子采样 (subsampling) 或 池化 (pooling): 卷积层之后跟一个 执行局部平均和子采样的计算层。这使得特征图分辨率降低。也能 降低特征图输出 对 移位和其他失真 的敏感性。

典型当代CNN架构

机器学习基础整理 (第七章) - 卷积神经网络
上图表示了 手写字体识别 的 CNN架构设计。四个隐藏层以及一个输出层。

  • 第一个隐藏层: 卷积,一共四个 24 × 24 24 \times 24 24×24 神经元 的特征图 (feature maps),每个 神经元 被分配了 大小为 5 × 5 5 \times 5 5×5 的感受野。
  • 第二个隐藏层: 子采样以及局部平均,一共 四个 12 × 12 12 \times 12 12×12 神经元 的特征图,每个神经元拥有大小为 2 × 2 2 \times 2 2×2 的感受野。
  • 第三个隐藏层: 卷积,一共十二个 8 × 8 8 \times 8 8×8 神经元 的特征图。
  • 第四个隐藏层: 子采样以及局部平均,一共 十二个 4 × 4 4 \times 4 4×4 神经元的特征图。
  • 最后一层卷积,26 个神经元被分配了可能的 26 个类别,每一个神经元被分配了 4 × 4 4 \times 4 4×4 的感受野。

数学认知

给定两个函数 x ( n ) x(n) x(n)和 ω ( n ) \omega(n) ω(n),这两个函数的卷积被写为:
s ( n ) = ∑ k x ( k ) ω ( n − k ) = ∑ k x ( n − k ) ω ( k ) s(n) = \sum_kx(k)\omega(n - k) = \sum_kx(n-k)\omega(k) s(n)=k∑​x(k)ω(n−k)=k∑​x(n−k)ω(k)
上式表达,将 函数 ω ( n ) \omega(n) ω(n) 相对于 x ( n ) x(n) x(n) 翻转 并将其 滑过 函数 x ( n ) x(n) x(n),每次计算 重叠样本的乘积,注意 卷积的交换性质 (commutative property)。

在神经网络中, x ( n ) x(n) x(n) 是输入,而 ω ( n ) \omega(n) ω(n) 是 核 (kernel) 且 s ( n ) s(n) s(n) 是 特征图。

在二维的情况下,我们有:
s ( n , m ) = ∑ k , l x ( k , l ) ω ( n − k , m − l ) = ∑ k , l ω ( k , l ) x ( n − k , m − l ) s(n, m) = \sum_{k, l} x(k, l) \omega(n - k, m - l) \\= \sum_{k, l} \omega(k, l) x(n - k, m - l) s(n,m)=k,l∑​x(k,l)ω(n−k,m−l)=k,l∑​ω(k,l)x(n−k,m−l)
求和 超过内核 的非零值,通常定义为空间范围有限。

上式中定义的卷积很少被用于 机器学习,机器学习中使用 互相关 cross-correlation (也称为卷积)

s ( n , m ) = ∑ k , l x ( k , l ) ω ( n + k , m + l ) s(n, m) = \sum_{k, l} x(k, l) \omega(n + k, m + l) s(n,m)=k,l∑​x(k,l)ω(n+k,m+l)

机器学习基础整理 (第七章) - 卷积神经网络
上图表示了 二维 卷积操作。

卷积的优势

稀疏交互 (Sparse Interactions)

稀疏权重 (sparse weight) 导致需要更少的参数来存储,并提高统计效率。

在深度 CNN 中,更深的层 与 大部分输入间接交互,从而使得网络能够有效地描述复杂的交互。

机器学习基础整理 (第七章) - 卷积神经网络
上图表示 从输入观察的 稀疏连接。
机器学习基础整理 (第七章) - 卷积神经网络
上图表示 从输出观察的 稀疏连接。

参数共享 (Parameter sharing)

我们只学习一组参数,而不是为每个位置学习单独的一组参数。
由于内核通常远小于输入数据大小,因此卷积比密集矩阵乘法更有效。

机器学习基础整理 (第七章) - 卷积神经网络
上图表示了 参数共享,上面指 三元素内核 的中心元素被多次使用。下面指 权重矩阵的中心元素 在全连接架构中 使用一次。

等方差 (Equivariance)

此处考虑的 卷积 导致了一种参数共享形式。该形式生成 称为 平移等方差 (equivariance to translation) 属性。在信号处理中,这与 线性时间不变性 相同。
等方差 意味着 如果输入改变,输出也会以同样的方式改变。

比如,我们让 g g g 将一张图片 I I I 映射为 另一张图片 I ′ I^{'} I′, I ′ = g ( I ) I ′ ( x , y ) = I ( x − 1 , y ) I^{'} = g(I)I^{'}(x, y) = I(x - 1, y) I′=g(I)I′(x,y)=I(x−1,y)。映射之后,应用卷积 与 应用卷积之后转换 的结果相同。

在数据流中,如果我们在 时间 (空间) 上 延迟一个特征,则相同的表示会稍后出现在输出中 (按延迟量)。

池化 (Pooling)

池化函数 用 附近输出的汇总统计量 (summary statistic) 替换 特定位置的网络输出。

例子:

  • 最大池化 (max-pooling) 操作 报告 矩形邻域内 的最大输出。
  • 矩形邻域 的 L 2 L_2 L2​ 范数。
  • 基于与 中心像素距离的 加权平均值 (weighted average)。

机器学习基础整理 (第七章) - 卷积神经网络
最大池化的例子 (宽是 3,步幅 (stride) 为 1)

池化有助于使 表示 对输入的小转换 近似不变 (approximately invariant)。

机器学习基础整理 (第七章) - 卷积神经网络
上图表示 宽度为 3 和 步幅为 1 的最大池化 和 输入向右移动 (以显示平移不变性)

池化的使用 可以解释为使用 强先验 (strong prior),即正在学习的函数 (在层中) 必须对小平移 保持不变。

对 空间区域 (spatial region) 的池化导致平移不变性。

对 分离参数化卷积 (separately parametrized convolutions) 的池化 导致 学习转换不变性 (learning transformation that are invariant)。

机器学习基础整理 (第七章) - 卷积神经网络
如上图,池化 使用 单独参数 学习的 多个特征 可以学习对输入的变换保持不变。

机器学习基础整理 (第七章) - 卷积神经网络
上图表示 下采样池化 (downsampling pooling): 最大池化,池宽为 3,池之间的步幅为 2。

上一篇:周期信号的傅里叶级数表示


下一篇:node_export 部署安装