Skip to content

Latest commit

 

History

History
97 lines (49 loc) · 7.53 KB

intuitive-introduction-gradient-descent.md

File metadata and controls

97 lines (49 loc) · 7.53 KB

梯度下降的直观介绍

原文:www.kdnuggets.com/2018/06/intuitive-introduction-gradient-descent.html

c 评论

作者 Keshav DhandhaniaSavan Visalpara

梯度下降 是最受欢迎和广泛使用的 优化算法 之一。给定一个具有参数(权重和偏差)和用于评估特定模型好坏的成本函数的 机器学习 模型,我们的学习问题就变成了找到一组好的权重,以最小化成本函数。


我们的前三大课程推荐

1. Google 网络安全证书 - 快速开启网络安全职业生涯

2. Google 数据分析专业证书 - 提升你的数据分析技能

3. Google IT 支持专业证书 - 支持你的组织的 IT 需求


梯度下降是一种 迭代方法。我们从一组模型参数(权重和偏差)开始,并逐渐改进它们。为了改进给定的权重,我们尝试了解类似于当前权重的权重的成本函数值(通过计算梯度),然后沿着成本函数减少的方向移动。通过重复这个步骤数千次,我们将持续最小化我们的成本函数。

梯度下降的伪代码

梯度下降用于最小化由模型参数 w 参数化的成本函数 J(w)。梯度(或导数)告诉我们成本函数的斜率或坡度。因此,为了最小化成本函数,我们沿着与梯度相反的方向移动。

  1. 随机初始化 权重 w

  2. 计算梯度 G,相对于参数的成本函数 [1]

  3. 通过与 G 成比例的量更新权重,即 w = w - ηG

  4. 重复直到成本 J(w) 不再降低或满足其他预定义的 终止标准

在第 3 步中,η 是 学习率,它决定了我们达到最小值的步伐大小。我们需要对这个参数非常小心,因为η 的高值可能会超越最小值,而非常低的值则会非常缓慢地达到最小值。

一个流行的合理选择作为终止标准是成本 J(w) 在 验证 数据集上停止降低。

梯度下降的直观理解

想象一下你被蒙上眼睛在崎岖地形中行走,你的目标是到达最低点。你可以使用的一个简单策略是感觉地面在各个方向上的倾斜,并朝着地面下降最快的方向迈出一步。如果你不断重复这个过程,你可能会到达湖泊,甚至更好的是,某个巨大山谷中的位置。

崎岖地形类似于成本函数。最小化成本函数类似于试图到达更低的高度。你被蒙上眼睛,因为我们没有条件评估(查看)每一组参数的函数值。感觉你周围地形的坡度类似于计算梯度,而迈出一步类似于对参数进行一次更新迭代。

顺便提一下——作为一个小插曲——本教程是免费数据科学课程免费机器学习课程的一部分,均在Commonlounge平台上提供。这些课程包括许多动手作业和项目。如果你有兴趣学习数据科学/机器学习,强烈推荐查看一下。

梯度下降的变体

梯度下降有多种变体,具体取决于计算梯度时使用了多少数据。这些变体的主要原因是计算效率。一个数据集可能有数百万个数据点,计算整个数据集的梯度可能非常耗费计算资源。

  • 批量梯度下降计算成本函数相对于参数 w 的梯度,基于整个训练数据。由于我们需要计算整个数据集的梯度以进行一次参数更新,因此批量梯度下降可能非常慢。

  • 随机梯度下降(SGD)使用单个训练数据点*x_i*(随机选择)计算每次更新的梯度。其思想是,这种方式计算的梯度是对使用整个训练数据计算的梯度的随机逼近。每次更新的计算速度比批量梯度下降要快得多,经过多次更新,我们将朝着相同的大致方向前进。

  • 小批量梯度下降中,我们计算每个小批量训练数据的梯度。也就是说,我们首先将训练数据分成小批量(例如每批次 M 个样本)。我们对每个小批量执行一次更新。M 通常在 30 到 500 的范围内,具体取决于问题。通常使用小批量梯度下降,因为计算基础设施——编译器、CPU、GPU——通常针对向量加法和向量乘法进行了优化。

其中,SGD 和小批量 GD 最为流行。在典型的情况下,我们会在训练数据上进行若干次遍历,直到满足终止标准。每次遍历称为epoch。另请注意,由于 SGD 和小批量 GD 的更新步骤计算效率更高,我们通常会在检查终止标准是否满足时执行 100 到 1000 次更新。

选择学习率

通常,学习率的值是手动选择的。我们通常从一个较小的值开始,例如 0.1、0.01 或 0.001,并根据成本函数的变化情况来调整它,如果成本函数减少非常缓慢(增加学习率),或是爆炸/不稳定(降低学习率)。

尽管手动选择学习率仍然是最常见的做法,但已经提出了多种方法,如 Adam 优化器、AdaGrad 和 RMSProp,用于自动选择合适的学习率。

脚注

  1. 梯度 G 的值取决于输入、模型参数的当前值和成本函数。如果你是手动计算梯度,你可能需要重新学习微分的相关知识。

原文首次发布于免费机器学习课程免费数据科学课程www.commonlounge.com。经许可重新发布。

相关:

更多相关内容