作者 |PHANI8
编译 |VK
起源 |Analytics Vidhya
介绍
在这篇文章中,咱们将理解什么是真正的梯度降落,为什么它变得风行,为什么 AI 和 ML 中的大多数算法都遵循这种技术。
在开始之前,梯度降落实际上意味着什么?听起来很奇怪对吧!
柯西是 1847 年第一个提出梯度降落的人
嗯,梯度这个词的意思是一个性质的减少和缩小!而降落意味着向下挪动的动作。所以,总的来说,在降落到某个中央而后察看并且持续降落的行为被称为梯度降落
所以,在失常状况下,如图所示,山顶的坡度很高,通过一直的挪动,当你达到山脚时的坡度最小,或者靠近或等于零。同样的状况在数学上也实用。
让咱们看看怎么做
梯度降落数学
所以,如果你看到这里的形态和这里的山是一样的。咱们假如这是一条模式为 y =f(x)的曲线。
这里咱们晓得,任何一点上的斜率都是 y 对 x 的导数,如果你用曲线来查看,你会发现,当向下挪动时,斜率在尖端或最小地位减小并等于零,当咱们再次向上挪动时,斜率会减少
记住这一点,咱们将钻研在最小点处 x 和 y 的值会产生什么,
察看下图,咱们有不同地位的五个点!
.png)
当咱们向下挪动时,咱们会发现 y 值会减小,所以在这里的所有点中,咱们在图的底部失去了绝对最小的值。因而,咱们的论断是咱们总是在图的底部找到最小值(x,y)。当初让咱们看看如何在 ML 和 DL 中传递这个,以及如何在不遍历整个图的状况下达到最小点?
在任何一种算法中,咱们的次要目标是最小化损失,这表明咱们的模型体现良好。为了剖析这一点,咱们将应用线性回归
因为线性回归应用直线来预测间断输入 -
设直线 y =w*x+c
这里咱们须要找到 w 和 c,这样咱们就失去了使误差最小化的最佳拟合线。所以咱们的指标是找到最佳的 w 和 c 值
咱们从一些随机值开始 w 和 c,咱们依据损失更新这些值,也就是说,咱们更新这些权重,直到斜率等于或接近于零。
咱们将取 y 轴上的损失函数,x 轴上有 w 和 c。查看下图 -
.png)
为了在第一个图中达到最小的 w 值,请遵循以下步骤 -
- 用 w 和 c 开始计算给定的一组 x _values 的损失。
- 绘制点,当初将权重更新为 -
w_new =w_old – learning_rate \* slope at (w_old,loss)
反复这些步骤,直到达到最小值!
- 咱们在这里减去梯度,因为咱们想移到山脚下,或者朝着最陡的降落方向挪动
- 当咱们减去后,咱们会失去一个比前一个小的斜率,这就是咱们想要挪动到斜率等于或接近于零的点
- 咱们稍后再探讨学习率
这同样实用于图 2,即损失和 c 的函数
当初的问题是为什么要把学习率放在等式中?因为咱们不能在终点和最小值之间遍历所有的点
咱们须要跳过一些点
- 咱们能够在最后阶段采取大步口头。
- 然而,当咱们靠近最小值时,咱们须要小步走,因为咱们可能会越过最小值,挪动到一个斜坡的中央减少。为了管制图的步长和挪动,引入了学习速率。即便没有学习速率,咱们也会失去最小值,但咱们关怀的是咱们的算法要更快!!
.png)
上面是一个应用梯度降落的线性回归的示例算法。这里咱们用均方误差作为损失函数 -
1. 用零初始化模型参数
m=0,c=0
2. 应用(0,1)范畴内的任何值初始化学习速率
lr=0.01
误差方程 -
.png)
当初用(w*x+c)代替 Ypred 并计算偏导
.png)
3.c 也一样能够计算得出
.png)
4. 将此利用于所有 epoch 的数据集
for i in range(epochs):
y_pred = w * x +c
D_M = (-2/n) * sum(x * (y_original - y_pred))
D_C = (-2/n) * sum(y_original - y_pred)
这里求和函数一次性将所有点的梯度相加!
更新所有迭代的参数
W = W – lr * D_M
C = C – lr * D_C
梯度降落法用于神经网络的深度学习…
在这里,咱们更新每个神经元的权值,以便在最小误差的状况下失去最佳分类。咱们应用梯度降落法来更新每一层的所有权值…
Wi = Wi – learning_rate * derivative (Loss function w.r.t Wi)
为什么它受欢迎?
梯度降落是目前机器学习和深度学习中最罕用的优化策略。
它用于训练数据模型,能够与各种算法相结合,易于了解和实现
许多统计技术和办法应用 GD 来最小化和优化它们的过程。
参考援用
- https://en.wikipedia.org/wiki…
- https://en.wikipedia.org/wiki…
原文链接:https://www.analyticsvidhya.c…
欢送关注磐创 AI 博客站:
http://panchuang.net/
sklearn 机器学习中文官网文档:
http://sklearn123.com/
欢送关注磐创博客资源汇总站:
http://docs.panchuang.net/