【Datawhale X李宏毅苹果书 AI夏令营】Task1 局部极小值与鞍点&批量和动量

1. 批量和动量

批量训练是深度学习中的一个核心概念,它巧妙地平衡了计算效率和模型性能。在传统的机器学习方法中,我们可能会使用整个数据集来一次性更新模型参数。然而,在深度学习中,特别是当我们面对大规模数据集时,这种方法变得不切实际。批量训练通过每次只使用一小部分数据来解决这个问题。
在这里插入图片描述

这种方法显著提高了训练速度。如果要计算一百万个数字的平均值,一次性计算所有数字无疑会很耗时。但如果每次只取一小部分数字计算平均值,然后不断更新,会发现这个过程快得多,而且最终结果也很接近。同样,批量训练允许模型在看到部分数据后就开始学习,而不是等待处理完整个数据集。

批量训练引入了有益的随机性。每个批次都是数据集的一个小样本,因此每次更新都基于略微不同的数据。这种随机性可以帮助模型跳出局部最优解,探索更广阔的参数空间。就像在复杂的地形中寻找最高点,偶尔的随机移动可能会帮你发现更高的峰顶。
在这里插入图片描述

批量训练还大大减少了内存需求。处理整个数据集可能需要大量内存,特别是对于大型数据集。通过每次只加载一小部分数据,批量训练使得在有限内存的情况下训练大型模型成为可能。

动量是另一个重要的优化技巧,它通过在当前梯度方向上添加之前梯度的累积效果,帮助优化算法克服局部最小值和鞍点。动量可以被形象地比喻为物理学中的惯性,让优化过程变得更加平滑和快速。它特别有助于在遇到陡峭地形时保持前进的方向,避免在狭窄的峡谷中来回震荡。
在这里插入图片描述

2. 局部极小值与鞍点

在训练深度神经网络时,我们的目标是找到损失函数的全局最小值,但优化过程中可能会遇到一些障碍。其中两个主要的挑战是局部极小值和鞍点。理解这两个概念对于深入学习深度学习优化过程至关重要。

局部极小值是损失函数的一个局部最低点,但不是全局最低点。想象你在一个复杂的山谷地形中寻找最低点。你可能会到达一个看似是底部的地方,但实际上在远处可能还有更低的点。在深度学习中,陷入局部极小值意味着模型的性能虽然在当前参数附近是最好的,但可能还有更好的参数配置存在。

鞍点则是一个更微妙的概念。在鞍点处,损失函数在某些方向上是局部最小值,而在其他方向上是局部最大值。形象地说,这就像是马鞍的形状,从一个方向看是凹的,从另一个方向看是凸的。在深度学习的高维参数空间中,鞍点比我们想象的要普遍得多。
在这里插入图片描述

过去,人们普遍认为局部极小值是深度学习优化的主要障碍。然而,随着研究的深入,特别是在处理高维问题时,我们发现鞍点可能是更常见和更具挑战性的问题。这是因为在高维空间中,找到一个在所有维度上都是最小值的点变得极其困难,而找到一个在某些维度上是最小值、在其他维度上是最大值的点则相对容易得多。

理解局部极小值和鞍点的区别对于开发和改进优化算法至关重要。例如,一些专门设计用来逃离鞍点的方法可能对于逃离局部极小值效果并不好。因此,能够区分这两种情况可以帮助我们选择更合适的优化策略。
在这里插入图片描述

3. 判断临界点的类型

在优化过程中,当梯度接近于零时,我们到达了一个临界点。这个临界点可能是局部极小值、局部极大值或鞍点。判断这个临界点的类型非常重要,因为它决定了我们是否还有继续优化的空间,以及应该采取什么样的策略来进一步改善模型性能。
在这里插入图片描述

理论上,我们可以通过计算海森矩阵(Hessian matrix)来判断临界点的类型。海森矩阵是一个包含函数所有二阶偏导数的矩阵,它提供了函数在该点附近的曲率信息。然而,在实际应用中,特别是对于大型深度学习模型,计算完整的海森矩阵通常是不可行的。这是因为海森矩阵的大小是参数数量的平方,对于有数百万参数的模型来说,存储和计算如此大的矩阵需要巨大的计算资源。

因此,研究人员开发了各种近似方法来评估临界点的性质。例如,我们可以使用随机采样来估计海森矩阵的特征值分布,或者使用Lanczos算法等技术来计算海森矩阵的主要特征值。这些方法虽然不如直接计算海森矩阵精确,但可以在合理的计算成本下提供有用的信息。

4. 高维空间中的优化特性

深度神经网络通常有数百万甚至数十亿个参数,这意味着其损失函数是在一个极高维的空间中。在这种高维空间中,优化问题展现出了一些反直觉的特性,这对我们理解和改进深度学习算法有重要影响。

在高维空间中,局部极小值可能比我们想象的要少。当维度增加时,一个点要在所有维度上都是最小值的概率变得极小。相反,更可能出现的是在某些维度上是最小值,而在其他维度上不是的情况,这正是鞍点的定义。这一认识对我们理解深度学习的优化过程很重要。它解释了为什么即使使用相对简单的优化算法(如随机梯度下降),深度学习模型也能达到令人惊讶的好效果。因为在高维空间中,大多数临界点都是鞍点而不是局部极小值,而鞍点相对更容易逃脱。

另一个高维空间的特性是,距离和相似性的概念变得不那么直观。例如,在高维空间中,随机选择的两个点很可能几乎是正交的。这意味着在调整神经网络参数时,很小的改变可能导致完全不同的行为。

高维空间的这些特性也影响了我们如何设计和理解正则化技术。例如,L1和L2正则化在高维空间中的行为可能与低维空间中有很大不同。理解这些差异对于选择合适的正则化策略至关重要。

最后,高维空间中的优化往往表现出一种分层结构。某些参数可能对模型性能有更大的影响,而其他参数的作用则相对较小。这种现象启发了一些新的优化策略,如分层自适应学习率。

5. 自适应学习率的重要性

学习率是深度学习中最重要的超参数之一,它直接影响模型的训练速度和最终性能。然而,选择合适的学习率往往是一个棘手的问题。学习率太大可能导致训练不稳定,而学习率太小则可能使训练过程变得非常缓慢。

文档中提到,有时候训练停滞并不是因为遇到了临界点,而是因为学习率不合适导致的震荡。这种情况在实践中非常常见。例如,如果学习率太大,优化算法可能会在最优点附近来回跳跃,而不是稳定地收敛。

这就引出了自适应学习率的概念,即根据优化过程中的情况动态调整学习率。这是现代深度学习优化器(如Adam, RMSprop等)的核心思想之一。这些优化器能够为每个参数维护单独的学习率,并根据梯度的历史信息来调整这些学习率。自适应学习率大大减少了手动调整学习率的需求,使得训练过程更加自动化。它能够适应不同参数的不同学习需求。例如,对于频繁更新的参数,学习率可能会逐渐减小以实现精细调整;而对于稀疏更新的参数,学习率可能会保持相对较大以确保有效学习。
在这里插入图片描述

然而,自适应学习率也不是万能的。在某些情况下,它可能导致过早停止学习或陷入次优解。因此,理解不同自适应学习率方法的原理和适用场景,对于在实践中选择和调整优化器很重要。

在这里插入图片描述

参考资料

  1. https://linklearner.com/activity/16
  2. https://www.bilibili.com/video/BV1JA411c7VT/?p=5&vd_source=c6d6f8476eb86e406b134b61268b346f
  3. https://www.ruder.io/optimizing-gradient-descent/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值