深度模型中的优化 - 神经网络优化中的挑战篇

83 篇文章 1 订阅
46 篇文章 0 订阅

序言

神经网络优化是机器学习领域中的一个核心挑战,尤其是在处理复杂数据和构建高性能模型时显得尤为关键。随着深度学习技术的快速发展,神经网络模型的规模和复杂度不断增加,这带来了诸多挑战。从数据质量、计算资源到模型的可解释性和泛化能力,每一个环节都需要精心设计和优化。

神经网络优化中的挑战

  • 优化通常是一个极其困难的任务。
  • 通常,机器学习会小心设计目标函数和约束,以确保优化问题是凸的,从而避免一般优化问题的复杂度。在训练神经网络时,我们肯定会遇到一般的非凸情况。即使是凸优化,也并非没有任何问题。在本篇章中,我们会总结几个训练深度模型时会涉及到的主要挑战。

病态

  • 在优化凸函数时,会遇到一些挑战。这其中最突出的是 Hessian \text{Hessian} Hessian矩阵 H \boldsymbol{H} H的病态。这是数值优化、凸优化或其他形式的优化中普遍存在的问题,更多细节请参看应用数学与机器学习基础 - 数值计算之梯度之上Jacobian和Hessian矩阵篇
  • 病态问题一般被认为存在于神经网络训练过程中。病态体现在随机梯度下降会“卡”在某些情况,此时即使很小的更新步长也会增加代价函数。
  • 回顾方程式(数值计算之梯度之上Jacobian和Hessian矩阵篇 - 公式3),代价函数的二阶泰勒级数展开预测梯度下降中的 − ϵ g -\epsilon\boldsymbol{g} ϵg会增加 1 2 ϵ 2 g ⊤ H g − ϵ g ⊤ g \displaystyle\frac{1}{2}\epsilon^2\boldsymbol{g}^\top\boldsymbol{Hg}-\epsilon\boldsymbol{g}^\top\boldsymbol{g} 21ϵ2gHgϵgg到代价中。
    • 1 2 ϵ 2 g ⊤ H g \displaystyle\frac{1}{2}\epsilon^2\boldsymbol{g}^\top\boldsymbol{Hg} 21ϵ2gHg超过 ϵ g ⊤ g \epsilon\boldsymbol{g}^\top\boldsymbol{g} ϵgg时,梯度的病态会成为问题。
    • 判断病态是否不利于神经网络训练任务,我们可以监测平方梯度范数 g ⊤ g \boldsymbol{g}^\top\boldsymbol{g} gg g ⊤ H g \boldsymbol{g}^\top\boldsymbol{Hg} gHg
    • 在很多情况中,梯度范数不会在训练过程中显著缩小,但是 g ⊤ H g \boldsymbol{g}^\top\boldsymbol{Hg} gHg的增长会超过一个数量级。
    • 其结果是尽管梯度很强,学习会变得非常缓慢,因为学习速率必须收缩以弥补更强的曲率。
    • 图例1所示,成功训练的神经网络中,梯度显著增加。
    • 尽管病态存在于包括神经网络训练的其他情况中,有些适用于其他情况的解决病态的技术并不适用于神经网络。
    • 例如,牛顿法在解决带有病态条件数的 Hessian \text{Hessian} Hessian矩阵的凸优化问题时,是一个非常优秀的工具,但是我们将会在以下小节中说明牛顿法运用在神经网络前需要很大的改动。

局部极小值

  • 凸优化问题的一个突出特点是其可以归约为寻找一个局部极小点的问题
  • 任何一个局部极小点都是全局最小点。
  • 有些凸函数的底部是一个平坦的区域,而不是单一的全局最小点,但该平坦区域中的任意点都是一个可以接受的解。
  • 优化一个凸问题时,若发现了任何形式的临界点,我们都会知道已经找到了一个很好的解。
  • 对于非凸函数时,如神经网络,有可能会存在多个局部极小值。事实上,几乎所有的深度模型基本上都会有非常多的局部极小值。然而,我们会发现这并不是主要问题。
  • 由于模型可辨认性(model identifiability)问题,神经网络和任意具有多个等效参数化潜变量的模型都会具有多个局部极小值。
    • 如果一个足够大的训练集可以唯一确定一组模型参数,那么该模型被称为可辨认的。
    • 带有潜变量的模型通常是不可辨认的,因为通过相互交换潜变量我们能得到等价的模型。
    • 例如,考虑神经网络的第一层,我们可以交换单元 i i i和单元 j j j的传入权重向量、传出权重向量而得到等价的模型。
    • 如果神经网络有 m m m层,每层有 n n n个单元,那么会有 n ! m n!^m n!m种排列隐藏单元的方式。
    • 这种不可辨认性被称为权重空间对称性(weight space symmetry)。
  • 除了权重空间对称性,很多神经网络还有其他导致不可辨认的原因。
    • 例如,在任意整流线性网络或者 maxout \text{maxout} maxout网络中,我们可以将传入权重和偏置乘以 α \alpha α倍,然后将传出权重乘以 1 α \displaystyle\frac{1}{\alpha} α1倍,而保持模型等价。
    • 这意味着,如果代价函数不包括如权重衰减这种直接依赖于权重而非模型输出的项,那么整流线性网络或者 maxout \text{maxout} maxout网络的每一个局部极小点都在等价的局部极小值的 ( m × n m × n m×n) 维双曲线上。
  • 这些模型可辨认性问题意味着神经网络代价函数具有非常多、甚至无限多的局部极小值。
    • 然而,所有这些由于不可辨识性问题产生的局部极小值都有相同的代价函数值。
    • 因此,这些局部极小值并非是非凸所带来的问题。
  • 如果局部极小值相比全局最小点拥有很大的代价,局部极小值会带来很大的隐患。我们可以构建没有隐藏单元的小规模神经网络,其局部极小值的代价比全局最小点的代价大很多 (Sontag and Sussman, 1989; Brady et al., 1989; Gori and Tesi,1992)。
  • 如果具有很大代价的局部极小值是常见的,那么这将给基于梯度的优化算法带来极大的问题。
  • 对于实际中感兴趣的网络,是否存在大量代价很高的局部极小值,优化算法是否会碰到这些局部极小值,都是尚未解决的公开问题。
    • 多年来,大多数从业者认为局部极小值是困扰神经网络优化的常见问题。
    • 如今,情况有所变化。这个问题仍然是学术界的热点问题,但是学者们现在猜想,对于足够大的神经网络而言,大部分局部极小值都具有很小的代价函数,我们能不能找到真正的全局最小点并不重要,而是需要在参数空间中找到一个具有很少(但不是最小)代价的点 (Saxe et al.,2013; Dauphin et al., 2014; Goodfellow et al., 2015; Choromanska et al., 2014)。
  • 很多从业者将神经网络优化中的所有困难都归结于局部极小值。
    • 我们鼓励从业者要仔细分析特定的问题。
    • 一种能够排除局部极小值是主要问题的检测方法是画出梯度范数随时间的变化。
    • 如果梯度范数没有缩小到一个微小的值,那么该问题既不是局部极小值,也不是其他形式的临界点。
    • 在高维空间中,很难正面证明是局部极小值导致的问题。
    • 许多并非局部极小值的结构也具有很小的梯度。

高原、鞍点和其他平坦区域

  • 对于很多高维非凸函数而言,局部极小值(以及极大值)事实上都远少于另一类梯度为零的点:鞍点
  • 鞍点附近的某些点比鞍点有更大的代价,而其他点则有更小的代价。
    • 在鞍点处, Hessian \text{Hessian} Hessian矩阵同时具有正负特征值。
    • 位于正特征值对应的特征向量方向的点比鞍点有更大的代价,反之,位于负特征值对应的特征向量方向的点有更小的代价。
    • 我们可以将鞍点视为代价函数某个横截面上的局部极小点,同时也可以视为代价函数某个横截面上的局部极大点。数值计算之梯度之上Jacobian和Hessian矩阵篇 - 图例2给了一个示例。
    • 多类随机函数表现出以下性质:低维空间中,局部极小值很普遍。
      • 在更高维空间中,局部极小值很罕见,而鞍点则很常见。
      • 对于这类函数 f : R n → R f:\mathbb{R}^n\to\mathbb{R} f:RnR而言,鞍点和局部极小值的数目比率的期望随 n n n指数级增长。
      • 直觉上理解这种现象,我们可以观察到 Hessian \text{Hessian} Hessian矩阵在局部极小点处只有正特征值。
      • 而在鞍点处, Hessian \text{Hessian} Hessian矩阵则同时具有正负特征值。
      • 试想一下,每个特征值的正负号由抛硬币决定。
      • 在一维情况下,很容易抛硬币得到正面朝上一次而获取局部极小点。
      • n − n- n维空间中,指数级不太可能 n n n次抛掷硬币都得到正面朝上。
      • 具体可以参看Dauphin et al. (2014),它回顾了相关的理论工作。
  • 很多随机函数一个惊人性质是,当我们到达代价较低的区间时, Hessian \text{Hessian} Hessian矩阵的特征值为正的可能性更大。
    • 和抛硬币类比,这意味着如果我们处于低代价的临界点时,抛掷硬币正面朝上 n n n次的概率更大。
    • 这也意味着,局部极小值具有低代价的可能性比高代价要大得多。
    • 具有高代价的临界点更有可能是鞍点。
    • 具有极高代价的临界点就很可能是局部极大值了。
  • 以上现象出现在许多类随机函数中。那么是否在神经网络中也有发生呢?
    • Baldi and Hornik (1989) 从理论上证明,不具非线性浅层自编码器只有全局极小值和鞍点,没有代价比全局极小值更大的局部极小值。
    • 他们还发现这些结果能够扩展到不具非线性的更深层网络上,不过没有证明。
    • 这类网络的输出是其输入的线性函数,但它们仍然有助于分析非线性神经网络模型,因为它们的损失函数是关于参数的非凸函数。
    • 这类网络本质上是多个矩阵组合在一起。
    • Saxe et al. (2013)精确解析了这类网络中的完整学习动态,表明这些模型的学习能够捕捉到许多在训练具有非线性激活函数的深度模型时观察到的定性特征。
    • Dauphin et al. (2014) 通过实验表明,真实的神经网络也会有包含很多高代价鞍点的损失函数。
    • Choromanska et al. (2014) 证明了一个理论结果,另一类和神经网络相关的高维随机函数也满足这种情况。
  • 训练算法中鞍点扩散会有哪些影响呢?
    • 对于只使用梯度信息的一阶优化算法而言,情况是不明的。
    • 鞍点附近的梯度通常会非常小。
    • 另一方面,实验中梯度下降似乎可以在许多情况下逃离鞍点。
    • Goodfellow et al. (2015) 可视化了最新神经网络的几个学习轨迹,图例2给了一个例子。
    • 这些可视化显示突出的鞍点附近,代价函数都是平坦的,权重都为零。
    • 但是他们也展示了梯度下降轨迹能够迅速逸出该区间。
    • Goodfellow et al. (2015) 还认为,或许可以解析地表明连续时间的梯度下降会逃离,而不是被吸引到附近的鞍点,但是对于梯度下降更现实的使用,情况或许是不同的。
  • 对于牛顿法而言,显然鞍点会是一个问题。
    • 梯度下降旨在朝“下坡路”移动,而非明确寻求临界点。
    • 而牛顿法的目标是寻求梯度为零的点。
    • 没有适当的修改,牛顿法会跳进一个鞍点。
    • 高维空间中鞍点的扩散或许解释了在神经网络训练中为什么二阶方法无法成功取代梯度下降。
    • Dauphin et al. (2014)介绍了二阶优化的无鞍牛顿法 (saddle-free Newton method),并表明和传统算法相比有显著改进。
    • 二阶方法仍然难以扩展到大型神经网络,但是如果这类无鞍算法能够扩展的话,还是很有希望的。
  • 除了极小值和鞍点,还存在其他梯度为零的点。
    • 例如从优化的角度看与鞍点很相似的极大值,很多算法不会收敛到极大值,然而未修改的牛顿法会。
    • 和极小值一样,许多类的随机函数的极大值在高维空间中也是指数级稀少。
  • 也可能会有恒值的、宽且平坦的区域。
    • 在这些区间,梯度和 Hessian \text{Hessian} Hessian矩阵都是零。
    • 这种退化的情形是所有数值优化算法的主要问题。
    • 在凸问题中,一个宽而平的区间肯定包含全局极小值,但是对于一般的优化问题而言,这样的区域可能会对应着目标函数中一个较高的值。

悬崖和梯度爆炸

  • 多层神经网络通常有像悬崖一样的斜率较大区域,如图例3所示。这是由于几个较大的权重相乘导致的。遇到斜率极大的悬崖结构时,梯度更新会很大程度地改变参数值,通常会跳过这类悬崖结构。
  • 在后续篇章:优化长期依赖之截断梯度介绍的启发式梯度截断(gradient clipping)来避免其主要缺点。
    • 其基本想法源自考虑到梯度并没有指明最佳步长,只是说明在无限小区域内的最佳方向。
    • 当传统的梯度下降算法提议更新很大一步时,启发式梯度截断会干涉去减小步长,从而使其不太可能走出梯度近似为最陡下降方向的悬崖区域。
    • 悬崖结构在循环神经网络的代价函数中很常见,因为这类模型会涉及到多个因素的相乘,每个因素对应了一个时间步。因此,长期时间序列会产生大量相乘。

长期依赖

  • 当计算图变得非常之深时,神经网络优化算法必须克服的另一个难题出现了。
  • 多层前馈网络会有非常深的计算图。
  • 我们将会在后续篇章:序列建模:循环和递归网络介绍的循环网络会在很长的时间序列的每个时间步上重复应用相同的操作,因此也会有很深的计算图。
  • 反复使用相同的参数产生了尤为突出的困难。
  • 例如,假设某个计算图中包含一条反复与矩阵 W \boldsymbol{W} W相乘的路径。那么 t t t步后,相当于和 W t W^t Wt相乘。假设 W \boldsymbol{W} W有特征值分解 W = V diag ( λ ) V − 1 \boldsymbol{W} = \boldsymbol{V}\text{diag}(\boldsymbol{\lambda})\boldsymbol{V}^{-1} W=Vdiag(λ)V1。在这种简单的情况下,很容易看到:
    W t = ( V diag ( λ ) V − 1 ) t = V diag ( λ ) t V − 1 \boldsymbol{W}^t=(\boldsymbol{V}\text{diag}(\boldsymbol{\lambda})\boldsymbol{V}^{-1})^t=\boldsymbol{V}\text{diag}(\boldsymbol{\lambda})^t\boldsymbol{V}^{-1} Wt=(Vdiag(λ)V1)t=Vdiag(λ)tV1 — 公式1 \quad\textbf{---\footnotesize{公式1}} 公式1
    • 当特征值 λ i \lambda_i λi不在 1 1 1附近时,若在量级上大于 1 1 1则会爆炸。
    • 当小于 1 1 1时则会消失。
    • 梯度消失与爆炸问题(vanishing and exploding gradient problem)是指该计算图上的梯度也会因为 diag ( λ ) t \text{diag}(\boldsymbol{\lambda})^t diag(λ)t大幅度变化。
    • 梯度消失使得难以知道参数朝哪个方向移动能够改进代价函数,而梯度爆炸会使得学习不稳定。
    • 之前描述的促使使用梯度截断的悬崖结构便是梯度爆炸现象的一个例子。
    • 此处描述的每个时间步重复与 W \boldsymbol{W} W相乘非常类似于寻求矩阵 W \boldsymbol{W} W的最大特征值及对应特征向量的幂方法(power method)。从这个观点来看, x ⊤ W t \boldsymbol{x}^\top\boldsymbol{W}^t xWt最终会丢弃 x \boldsymbol{x} x中所有与 W \boldsymbol{W} W的主特征向量正交的成分。
    • 循环网络在每个时间步上使用相同的矩阵 W \boldsymbol{W} W,而前馈网络并没有。因而即使是非常深层的前馈网络也能很大程度上避免梯度消失与爆炸问题 (Sussillo, 2014)。

非精确梯度

  • 大多数优化算法的出发点都是我们知道精确的梯度或是 Hessian \text{Hessian} Hessian矩阵。
    • 在实践中,通常这些量会有噪扰,甚至是有偏的估计。
    • 几乎每一个深度学习算法都需要基于采样的估计,至少使用了训练样本的 minibatch \text{minibatch} minibatch来计算梯度。
  • 在其他情况,我们希望最小化的目标函数实际上是难以处理的。
    • 当目标函数不可解时,通常其梯度也是难以处理的。
    • 在这种情况下,我们只能近似梯度。
    • 这些问题主要出现在第三部分中更高级的模型中。
    • 例如,对比散度是用来近似玻尔兹曼机中难以处理的对数似然梯度的一种技术。
  • 各种神经网络优化算法的设计都考虑到了梯度估计的欠完整性。我们可以选择比真实损失函数更容易估计的替代损失函数来避免这个问题。

局部和全局结构间的弱对应

  • 迄今为止,我们讨论的许多问题都是关于损失函数在单个点的性质—若 J ( θ ) J(\boldsymbol{\theta}) J(θ)在当前点 θ \boldsymbol{\theta} θ有着病态条件数,或者 θ \boldsymbol{\theta} θ在悬崖中,或者 θ \boldsymbol{\theta} θ是一个隐藏下降梯度的鞍点,那么会很难更新当前步。
  • 如果其方向在局部改进了很多,但是并没有指向代价低得多的遥远区域,那么有可能在单点处克服以上所有困难,但仍然表现不佳。
  • Goodfellow et al. (2015) 认为大部分训练的运行时间取决于到达解决方案的轨迹的长度。如图例2所示,学习轨迹将花费大量的时间探寻一个围绕山形结构的宽弧。
  • 大多数优化研究的难点集中于训练是否到达了全局最小点、局部极小点,或是鞍点,但在实践中神经网络不会到达任何一种临界点。
    • 图例1表明神经网络通常不会到达梯度很小的区域。甚至,这些临界点不是必然存在的。
    • 例如,损失函数 − log ⁡ p ( y ∣ x ; θ ) -\log p(y\mid\boldsymbol{x};\boldsymbol{\theta}) logp(yx;θ)可以没有全局最小点,而是当模型更自信时会逐渐趋向某个值。
    • 对于具有离散标签 y y y softmax \text{softmax} softmax分布 p ( y ∣ x ) p(y\mid\boldsymbol{x}) p(yx)的分类器而言,若模型能够正确分类训练集上的每个样本,则负对数似然可以任意地趋近于零,但是不可能实际达到零值。
    • 同样地,实值模型 p ( y ∣ x ) = N ( y ; f ( θ ) , β − 1 ) p(y\mid\boldsymbol{x})=\mathcal{N}(y;f(\boldsymbol{\theta}),\beta^{-1}) p(yx)=N(y;f(θ),β1)的负对数似然会趋向于负无限大——如果 f ( θ ) f(\boldsymbol{\theta}) f(θ)能够正确预测所有的训练集目标 y y y,学习算法会无边界地增加 β \beta β
    • 图例4所示,即使没有局部极小值和鞍点,该例还是不能从局部优化中找到一个良好的代价函数值。
  • 未来的研究需要进一步探索影响学习轨迹长度和更好地表征训练过程结果的因素。
  • 许多现有研究方法在求解局部结构复杂的问题时,旨在寻求良好的初始点,而不是开发非局部范围更新的算法。
  • 梯度下降和基本上所有有效训练神经网络的学习算法,都是基于局部较小更新
    • 先前的小节主要集中于为何这些局部范围更新的正确方向难以计算。
    • 我们也许能计算目标函数的一些性质,如近似的有偏梯度或正确方向估计的方差。
    • 在这些情况下,局部下降或许能或许不能定义到达有效解的短路径,我们并不能真的遵循局部下降的路径。
    • 目标函数可能有诸如病态条件或不连续导数的问题,使得梯度为目标函数提供好模型的区间非常小。
    • 在这些情况下,步长为 ϵ \epsilon ϵ的梯度下降可能定义了一个寻求解法的合理的短路经,但是我们只能计算步长为 δ ≪ ϵ \delta\ll\epsilon δϵ的局部下降方向。
    • 在这些情况下,局部下降或许能定义一个寻求解法的路径,但是该路径包含很多次更新,因此遵循该路径会带来很高的计算代价。
    • 有时,目标函数有一个宽而平的区域,或是我们试图寻求精确的临界点(通常只发生于显示求解临界点的方法,如牛顿法),局部信息不能为我们提供任何指导。
    • 在这些情况下,局部下降不能定义寻求解法的路径。
    • 在其他情况下,局部移动可能太过贪心化,朝着梯度下降方向移动,却远离了任何解决方案,如图例4所示,或者是沿着一个不必要的长路径到达解决方法,如图例2所示。
    • 目前,我们还不了解这些问题中的哪一个与神经网络优化难题最相关,这是研究领域的热点方向。
  • 不管哪个问题最重要,如果存在一个区域,我们遵循局部下降便能合理地直接到达解决方案,并且我们能够在该良好区域上初始化学习,那么这些问题都可以避免。最后一个观点建议研究选择良好的初始点以使用传统优化算法。

优化的理论限制

  • 一些理论结果表明,我们为神经网络设计的任何优化算法都有性能限制 (Blum and Rivest, 1992; Judd, 1989; Wolpert and MacReady, 1997)。通常这些结果不影响神经网络在实践中的应用。

  • 一些理论结果仅适用于神经网络的单元输出离散值的情况。然而,大多数神经网络单元输出平稳的增值,使得局部搜索求解优化可行。

  • 一些理论结果表明,存在某类问题是不可解的,但很难判断一个特定问题是否属于该类。其他结果表明,寻求给定规模的网络的一个解决方案是不可解的,但在实践中,我们可以通过一个有很多对应于可接受解决方案的参数设定的更大的神经网络,很容易地找到一个解决方案。

  • 此外,在神经网络训练中,我们通常不关注函数的精确极小值,而只关注将其值下降到足够小以获得一个很好的泛化误差。关于优化算法能否达到这个目标的理论分析是极其困难的。

  • 因此,研究优化算法性能上更现实的界限仍然是机器学习研究中的一个重要目标。

  • 图例1:梯度下降通常不会到达任何类型的临界点。

    • 梯度下降通常不会到达任何类型的临界点。
      在这里插入图片描述

    • 说明:

      • 此示例中,在用于对象检测的卷积网络的整个训练期间,梯度范数持续增加。
      • 左边图:
        • 各个梯度计算的范数如何随时间分布的散点图。
        • 为了提高可读性,每轮仅绘制一个梯度范数。
        • 我们将所有梯度范数的移动平均绘制为实曲线。
        • 梯度范数明显随时间增加,而不是如我们所期望的那样随训练过程收敛到临界点而减小。
      • 右边图
        • 尽管梯度递增,训练过程却相当成功。
        • 验证集上的分类误差可以降低到较低水平。
  • 图例2:神经网络代价函数的可视化。

    • 神经网络代价函数的可视化。
      在这里插入图片描述

    • 说明:

      • 这些可视化对应用于真实对象识别和自然语言处理任务的前馈神经网络、卷积网络和循环网络而言是类似的。
      • 令人惊讶的是,这些可视化通常不会显示出很多明显的障碍。
      • 大约 2012 2012 2012年,在随机梯度下降开始成功训练非常大的模型之前,相比这些投影所显示的神经网络代价函数的表面通常被认为有更多的非凸结构。
      • 该投影所显示的主要障碍是初始参数附近的高代价鞍点,但如由蓝色路径所示, SGD \text{SGD} SGD训练轨迹能轻易地逃脱该鞍点。
      • 大多数训练时间花费在横穿代价函数中相对平坦的峡谷,可能由于梯度中的高噪声、或该区域中 Hessian \text{Hessian} Hessian矩阵的病态条件数,或者需要经过间接的弧路径绕过图中可见的高“山”。
      • 图经Goodfellow et al. (2015) 许可改编。
  • 图例3:高度非线性的深度神经网络或循环神经网络的目标函数通常包含由几个参数连乘导致的参数空间中尖锐非线性。

    • 高度非线性的深度神经网络或循环神经网络的目标函数通常包含由几个参数连乘导致的参数空间中尖锐非线性。
      在这里插入图片描述

    • 说明:

      • 这些非线性在某些区域会产生非常大的导数。
      • 当参数接近这样的悬崖区域时,梯度下降更新可以使参数弹射得非常远,可能会无效化已经完成的大量优化工作。
      • 图经Pascanu et al. (2013a) 许可改编。
  • 图例4:如果局部表面没有指向全局解,基于局部下坡移动的优化可能就会失败。

    • 如果局部表面没有指向全局解,基于局部下坡移动的优化可能就会失败。
      在这里插入图片描述

    • 说明:

      • 即使在没有鞍点或局部极小值的情况下,会如何失败。
      • 此例中的代价函数仅包含朝向低值而不是极小值的渐近线。
      • 在这种情况下,困难的主要原因是初始化在“山”的错误一侧,并且无法遍历。
      • 在高维空间中,学习算法通常可以环绕这样的高山,但是与之关联的轨迹可能会很长,并且导致过长的训练时间,如图例2所示。

总结

神经网络优化中的挑战主要包括以下几个方面:

  • 数据质量与预处理:
    • 高质量的训练数据是模型性能的基础,但现实中的数据往往存在噪声、不完整或偏差。
    • 数据预处理技术如数据清洗、增强和标准化对于提高数据质量至关重要。
  • 过度拟合与欠拟合:
    • 神经网络在训练过程中可能因学习过多噪声而过度拟合,或因模型过于简单而欠拟合。
    • 采用 Dropout \text{Dropout} Dropout、正则化和提前停止等技术可有效缓解这些问题。
  • 计算资源限制:
    • 训练深度神经网络需要巨大的计算资源,尤其是 GPU \text{GPU} GPU TPU \text{TPU} TPU等专用硬件。
    • 管理计算资源、优化模型训练是实际部署中的一大挑战。
  • 模型复杂度与可解释性:
    • 随着模型规模和复杂度的增加,其可解释性降低,难以理解其预测依据。
    • 开发可解释的模型或事后解释技术是当前研究的热点。
  • 优化难题:
    • 神经网络优化通常是非凸的,存在多个局部极小值和鞍点,导致优化过程复杂且难以找到全局最优解。
    • 梯度消失和爆炸等问题也进一步增加了优化的难度。
  • 泛化能力:
    • 实现良好的泛化,使模型在未见数据上表现良好,是机器学习的基本目标之一。
    • 通过交叉验证和仔细评估来评估泛化性能是常用的方法。

综上所述,神经网络优化涉及多个层面的挑战,需要综合考虑数据、模型、计算资源和优化算法等多个方面,以实现高性能和高效的模型构建。

往期内容回顾

深度学习中的正则化技术 - Dropout篇
深度学习中的正则化技术 - 正则化和欠约束问题篇
深度学习中的正则化技术 - 提前终止篇
应用数学与机器学习基础 - 数值计算之梯度之上Jacobian和Hessian矩阵篇

  • 36
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绎岚科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值