🎨
Bible-DeepLearning
  • Introduction
  • 第6章 深度前馈网络
    • 6.1 例子:学习XOR
    • 6.2 基于梯度的学习
      • 6.2.1 代价函数
        • 6.2.1.1 使用最大似然学习条件分布
        • 6.2.1.2 学习条件统计量
      • 6.2.2 输出单元
        • 6.2.2.1 用于高斯输出分布的线性神单元
        • 6.2.2.2 用于Bernoulli输出分布的sigmoid单元
        • 6.2.2.3 用于Multinoulli输出分布的softmax单元
    • 6.3 隐藏单元
      • 6.3.1 ReLU及其扩展
      • 6.3.2 logistic sigmoid与双曲正切函数
      • 6.3.3 其他隐藏单元
      • 李宏毅补充 SELU
    • 6.4 架构设计
    • 6.5 反向传播和其他的微分算法
      • 6.5.1 计算图
      • 6.5.2 微积分中的链式法则
      • 6.5.3 递归地使用链式法则来实现反向传播
      • 6.5.4 全连接MLP中的反向传播计算
      • 6.5.5 符号到符号的导数
      • 6.5.6 一般化的反向传播
      • 6.5.7 实例:用于MLP 训练的反向传播
      • 6.5.8 复杂化
  • 第7章 深度学习中的正则化
    • 7.1 参数范数惩罚
      • 7.1.1 L2参数正则化
      • 7.1.2 L1参数正则化
    • 7.2 作为约束的范数惩罚
    • 7.3 正则化和欠约束问题
    • 7.4 数据集增强
    • 7.5 噪声鲁棒性
    • 7.6 半监督学习
    • 7.7 多任务学习
    • 7.8 提前终止
    • 7.9 参数绑定和参数共享
    • 7.10 稀疏表示
    • 7.11 Bagging 和其他集成方法
    • 7.12 Dropout
    • 7.13 对抗训练
    • 7.14 切面距离、正切传播和流形正切分类器
    • Ag补充 一些能用于提升比赛成绩的方法
  • 第8章 深度模型中的优化
    • 8.1 学习和纯优化有什么不同
      • 8.1.1 经验风险最小化
      • 8.1.2 代理损失函数和提前终止
      • 8.1.3 批量算法和小批量算法
    • 8.2 神经网络优化中的挑战
      • 8.2.1 病态
      • 8.2.2 局部极小值
      • 8.2.3 8.2.3 高原、鞍点和其他平坦区域
      • 8.2.4 悬崖和梯度爆炸
      • 8.2.5 长期依赖
      • 8.2.6 非精确梯度
    • 8.3 基本算法
      • 8.3.1 随机梯度下降
      • 8.3.2 动量
      • 8.3.3 Nesterov 动量
    • 8.4 参数初始化策略
    • 8.5 自适应学习率算法
      • 8.5.1 AdaGrad
      • 8.5.2 RMSProp
      • 8.5.3 Adam
      • 8.5.4 选择正确的优化算法
    • 8.6 二阶近似方法
      • 8.6.1 牛顿法
      • 8.6.2 共轭梯度
      • 8.6.3 BFGS
    • 8.7 优化策略和元算法
      • 8.7.1 批标准化
      • 8.7.2 坐标下降
      • 8.7.3 Polyak 平均
      • 8.7.4 监督预训练
      • 8.7.5 设计有助于优化的模型
  • 第9章 卷积网络
    • 9.1 卷积运算
    • 9.2 动机
    • 9.3 池化
    • 9.4 卷积与池化作为一种无限强的先验
    • 9.5 基本卷积函数的变体
    • 9.6 结构化输出
    • 9.7 数据类型
  • 第10章 序列建模:循环和递归网络
    • 10.1 展开计算图
    • 10.2 循环神经网络
      • 10.2.1 导师驱动过程和输出循环网络
      • 10.2.2 计算循环神经网络的梯度
      • 10.2.3 作为有向图模型的循环网络
      • 10.2.4 基于上下文的RNN序列建模
    • 10.3 双向RNN
    • 10.4 基于编码 - 解码的序列到序列架构
    • 10.5 深度循环网络
    • 10.6 递归神经网络
    • 10.7 长期依赖的挑战
    • 10.9 渗漏单元和其他多时间尺度的策略
    • 10.10 长短期记忆和其他门控RNN
      • 10.10.1 LSTM
      • 10.10.2 其他门控RNN
    • 10.11 优化长期依赖
      • 10.11.1 梯度截断
      • 10.11.2 引导信息流的正则化
    • 10.12 外显记忆
  • 第11章 实践方法论
    • 11.1 性能度量
    • 11.2 默认的基准模型
    • 11.3 决定是否收集更多数据
    • 11.4 选择超参数
      • 11.4.1 手动选择超参数
      • 11.4.3 网络搜索
      • 11.4.4 随机搜索
    • 11.5 调试策略
Powered by GitBook
On this page
  • 切面距离算法
  • 正切传播算法
  • 正切传播算法 + 数据集增加
  • 流形正切分类器

Was this helpful?

  1. 第7章 深度学习中的正则化

7.14 切面距离、正切传播和流形正切分类器

如\secref{sec:manifold_learning}所述,许多机器学习通过假设数据位于低维流形附近来克服维数灾难。

[warning] 低维流形? 维数灾难?

切面距离算法

一个利用流形假设的早期尝试是切面距离(tangent distance)算法\citep{Simard93-small,Simard98}。 它是一种非参数的最近邻算法,其中使用的度量不是通用的欧几里德距离,而是根据邻近流形关于聚集概率的知识导出的。

[warning] 流形:局部具有欧几里德空间性质的空间。 [?] 邻近流形聚集概率

这个算法假设我们尝试分类的样本和同一流形上的样本具有相同的类别。

[success] 流形假设

由于分类器应该对局部因素(对应于流形上的移动)的变化保持不变,一种合理的度量是将点$x_1$和$x_2$各自所在流形$M_1$和$M_2$的距离作为点$x_1$和$x_2$之间的最近邻距离。

[warning] 流形上的移动?

然而这可能在计算上是困难的(它需要解决一个寻找$M_1$和$M_2$最近点对的优化问题),一种局部合理的廉价替代是使用$x_i$点处切平面近似$M_i$,并测量两条切平面或一个切平面和点之间的距离。

[warning] x点处切平面近似M?

这可以通过求解一个低维线性系统(就流形的维数而言)来实现。

[warning] 低维线性系统?切向量?

当然,这种算法需要指定那些切向量。

[success] 类似于最近邻算法。 距离度量:欧氏距离 -> 邻近流行聚焦概率 邻近流行聚焦概率计算:x1、x2各自所在的流形M1、M2r距离 -> x1、x2的切面距离

正切传播算法

受相关启发,正切传播(tangent prop)算法\citep{Simard92-short}(\figref{fig:chap7_mtc_color})训练带有额外惩罚的神经网络分类器,使神经网络的每个输出$f(x)$对已知的变化因素是局部不变的。

[success] 代价函数的目标

这些变化因素对应于沿着的相同样本聚集的流形的移动。 这里实现局部不变性的方法是要求$\nabla_{x} f(x)$与已知流形的切向$v^{(i)}$正交,或者等价地通过正则化惩罚$\Omega$使$f$在$x$的$v^{(i)}$方向的导数较小:

[success] 达到目标的方法:设置正则化项

这个正则化项当然可以通过适当的超参数缩放,并且对于大多数神经网络,我们需要对许多输出求和(此处为描述简单,$f(x)$为唯一输出)。 与切面距离算法一样,切向量是从先验知识推导的,通常是从变换(如平移、旋转和缩放图像)的效果获得的形式知识。

[warning] 推导先验?形式知识?

正切传播不仅用于监督学习\citep{Simard92-short},还在强化学习\citep{Thrun-NIPS1994}中有所应用。

正切传播算法 + 数据集增加

正切传播与数据集增强密切相关。 在这两种情况下,该算法的用户通过指定一组应当不会改变网络输出的转换,将其先验知识编码至算法中。

[success] 先验知识是指:将图像平移、旋转、缩放后不影响图像的分类结果。

不同的是在数据集增强的情况下,网络显式地训练正确分类这些施加大量变换后产生的不同输入。

[success] 普通方法: 原始图像 ---> 训练 原始图像 ---> 使用先验知识生成的图像 ---> 训练

正切传播不需要显式访问一个新的输入点。 取而代之,它解析地对模型正则化从而在指定转换的方向抵抗扰动。

[success] 高级方法: 原始图像 ---> 训练 原始图像 + 先验知识 ---> 训练

虽然这种解析方法是聪明优雅的,但是它有两个主要的缺点。

[warning] 缺点没看懂

首先,模型的正则化只能抵抗无穷小的扰动。 显式的数据集增强能抵抗较大的扰动。 其次,我们很难在基于整流线性单元的模型上使用无限小的方法。 这些模型只能通过关闭单元或缩小它们的权重才能缩小它们的导数。 它们不能像\ENNAME{sigmoid}或\ENNAME{tanh}单元一样通过较大权重在高值处饱和以收缩导数。 数据集增强在整流线性单元上工作得很好,因为不同的整流单元会在每一个原始输入的不同转换版本上被激活。

正切传播也和双反向传播\citep{DruckerLeCun92}以及对抗训练\citep{Szegedy-ICLR2014,Goodfellow-2015-adversarial}有关联。 双反向传播正则化使Jacobian矩阵偏小,而对抗训练找到原输入附近的点,训练模型在这些点上产生与原来输入相同的输出。 正切传播和手动指定转换的数据集增强都要求模型在输入变化的某些特定的方向上保持不变。 双反向传播和对抗训练都要求模型对输入所有方向中的变化(只要该变化较小)都应当保持不变。 正如数据集增强是正切传播非无限小的版本,对抗训练是双反向传播非无限小的版本。

[warning] 这一段不懂

流形正切分类器

流形正切分类器\citep{Dauphin-et-al-NIPS2011}无需知道切线向量的先验。

[success] 前面两种算法需要计算一些先验知道。 流形正切分类器先通过无监督学习算法把这些先验知识算出来。

我们将在\chapref{chap:autoencoders}看到,自编码器可以估算流形的切向量。 流形正切分类器使用这种技术来避免用户指定切向量。 如\figref{fig:chap14_cifar_cae}所示,这些估计的切向量不仅对图像经典几何变换(如转化、旋转和缩放)保持不变,还必须掌握对特定对象(如正在移动的身体某些部分)保持不变的因素。 因此根据流形正切分类器提出的算法相当简单: (1)使用自编码器通过无监督学习来学习流形的结构,以及(2)如正切传播(\eqnref{eq:767})一样使用这些切面正则化神经网络分类器。

在本章中,我们已经描述了大多数用于正则化神经网络的通用策略。 正则化是机器学习的中心主题,因此我们将不时在其余各章中重新回顾。 机器学习的另一个中心主题是优化,我们将在下一章描述。

Previous7.13 对抗训练NextAg补充 一些能用于提升比赛成绩的方法

Last updated 5 years ago

Was this helpful?

Ω(f)=∑i((∇xf(x)⊤v(i)))2.\begin{aligned} \Omega(f) = \sum_i \Big((\nabla_{x} f(x)^\top v^{(i)}) \Big)^2 . \end{aligned}Ω(f)=i∑​((∇x​f(x)⊤v(i)))2.​