我知道随机梯度下降具有随机行为,但我不知道为什么。
对此有什么解释吗?
随机梯度下降如何避免局部最小值问题?
机器算法验证
机器学习
随机变量
梯度下降
2022-02-08 02:28:01
3个回答
随机梯度 (SG) 算法的行为类似于模拟退火 (SA) 算法,其中 SG 的学习率与 SA 的温度有关。SG 引入的随机性或噪声允许逃离局部最小值以达到更好的最小值。当然,这取决于你降低学习率的速度。阅读神经网络中的随机梯度学习 (pdf)的第 4.2 节,其中对其进行了更详细的解释。
在随机梯度下降中,为每个观察估计参数,而不是在常规梯度下降(批量梯度下降)中的整个样本。这就是赋予它很多随机性的原因。随机梯度下降的路径在更多地方徘徊,因此更有可能“跳出”局部最小值,并找到全局最小值(注*)。然而,随机梯度下降仍然会陷入局部最小值。
注意:保持学习率不变是很常见的,在这种情况下随机梯度下降不会收敛;它只是在同一点徘徊。但是,如果学习率随着时间的推移而降低,例如,它与迭代次数成反比,那么随机梯度下降将收敛。
正如在前面的答案中已经提到的那样,随机梯度下降的误差面要大得多,因为您正在迭代地评估每个样本。当您在每个时期(通过训练集)朝着批量梯度下降的全局最小值迈出一步时,随机梯度下降梯度的各个步骤不一定总是指向全局最小值,具体取决于评估的样本。
为了使用二维示例将其可视化,这里有一些来自 Andrew Ng 机器学习课程的图形和图纸。
第一个梯度下降:
二、随机梯度下降:
下图中的红色圆圈应说明,如果您使用恒定的学习率,随机梯度下降将在全局最小值附近的某个区域“不断更新”。
因此,如果您使用随机梯度下降,这里有一些实用技巧:
1)在每个时期(或“标准”变体中的迭代)之前对训练集进行洗牌
2)使用自适应学习率“退火”接近全局最小值
其它你可能感兴趣的问题