🎨
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
  • 模型可辨识性
  • DL不是可辨识模型
  • 不可辨识模型有多个局部极小值
  • 局部极小值的危害

Was this helpful?

  1. 第8章 深度模型中的优化
  2. 8.2 神经网络优化中的挑战

8.2.2 局部极小值

凸优化问题的一个突出特点是其可以简化为寻找一个局部极小点的问题。 任何一个局部极小点都是全局最小点。 有些凸函数的底部是一个平坦的区域,而不是单一的全局最小点,但该平坦区域中的任意点都是一个可以接受的解。 优化一个凸问题时,若发现了任何形式的临界点,我们都会知道已经找到了一个不错的可行解。

对于非凸函数时,如神经网络,有可能会存在多个局部极小值。 事实上,几乎所有的深度模型基本上都会有非常多的局部极小值。 然而,我们会发现这并不是主要问题。

模型可辨识性

由于模型可辨识性(model identifiability)问题,神经网络和任意具有多个等效参数化潜变量的模型都会具有多个局部极小值。 如果一个足够大的训练集可以唯一确定一组模型参数,那么该模型被称为可辨认的。

[success] 模型的可辨识性: 假设训练集足够大,最后只会得到一个唯一的模型。 不会有两个效果等价的模型。

DL不是可辨识模型

带有潜变量的模型通常是不可辨认的,因为通过相互交换潜变量我们能得到等价的模型。

[success] 原因一:DL具有权重空间对称性。即一个隐藏层中两个unit的权重交换。得到的模型的等价的。

例如,考虑神经网络的第一层,我们可以交换单元$i$和单元$j$的传入权重向量、传出权重向量而得到等价的模型。 如果神经网络有$m$层,每层有$n$个单元,那么会有$n!^m$种排列隐藏单元的方式。 这种不可辨认性被称为权重空间对称性(weight space symmetry)。

除了权重空间对称性,很多神经网络还有其他导致不可辨认的原因。

[success] 原因二:maxout中的权重的扩大与缩小。

例如,在任意整流线性网络或者~maxout~网络中, 我们可以将传入权重和偏置放缩$\alpha$倍,然后将传出权重放缩$\frac{1}{\alpha}$倍,而保持模型等价。 这意味着,如果代价函数不包括如权重衰减这种直接依赖于权重而非模型输出的项,那么整流线性网络或者~maxout~网络的每一个局部极小点都在等价的局部极小值的$(m\times n)$维双曲线上。

不可辨识模型有多个局部极小值

这些模型可辨识性问题意味着神经网络代价函数具有非常多、甚至不可数无限多的局部极小值。 然而,所有这些由于不可辨识性问题而产生的局部极小值都有相同的代价函数值。 因此,这些局部极小值并非是非凸所带来的问题。

[success] 等价的两个模型,对相同的输入会得到相同的代价。 如果一个模型的代价在极小值点,那么等价的另一个模型也在极小值点,且代价值相同。

局部极小值的危害

如果局部极小值相比全局最小点拥有很大的代价,局部极小值会带来很大的隐患。 我们可以构建没有隐藏单元的小规模神经网络,其局部极小值的代价比全局最小点的代价大很多~{cite?}。 如果具有很大代价的局部极小值是常见的,那么这将给基于梯度的优化算法带来极大的问题。

对于实际中感兴趣的网络,是否存在大量代价很高的局部极小值,优化算法是否会碰到这些局部极小值,都是尚未解决的公开问题。 多年来,大多数从业者认为局部极小值是困扰神经网络优化的常见问题。 如今,情况有所变化。 这个问题仍然是学术界的热点问题,但是学者们现在猜想,对于足够大的神经网络而言, 大部分局部极小值都具有很小的代价函数,我们能不能找到真正的全局最小点并不重要,而是需要在参数空间中找到一个代价很小(但不是最小)的点~{cite?}。

[success] 实际上局部极小值并不常见,因此危害并没有那么大。 如果在优化过程中遇到问题,应该仔细排查是不是真的由于局部极小值引起的。 排除方法:画出梯度范数随时间的变化

很多从业者将神经网络优化中的所有困难都归结于局部极小值。 我们鼓励从业者要仔细分析特定的问题。 一种能够排除局部极小值是主要问题的检测方法是画出梯度范数随时间的变化。 如果梯度范数没有缩小到一个微小的值,那么该问题既不是局部极小值,也不是其他形式的临界点。

在高维空间中,很难明确证明局部极小值是导致问题的原因。 许多并非局部极小值的结构也具有很小的梯度。

[success] Ng补充 在高维空间中,局部最小值并不常见,更多的是鞍点。因此local optima不是主要的Challenge。而plateau危害更大。因为plateaus can make learning slow.

Previous8.2.1 病态Next8.2.3 8.2.3 高原、鞍点和其他平坦区域

Last updated 4 years ago

Was this helpful?