机器学习中的数学原理——梯度下降法(最速下降法)

简介: 机器学习中的数学原理——梯度下降法(最速下降法)

一、什么是梯度下降法

梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。


二、算法分析

在上一篇最小二乘法里面还记得我们的误差公式E(θ)吗?那时候我们说要使E(θ)尽可能小,即修改参数 θ,使这个值变得越来越小。

但是一边修改 θ 的值,一边 计算 E(θ) 并与之前的值相比较的做法实在是太麻烦了。所以我们使用微分的思想来求θ 的值。微分是计算变化的快慢程度时使用的方法。

首先我们看表达式为 g(x) = (x-1)^2,g(x) = (x-1)^2 的二次函数图像如下所示

它的最小值是 g(x) = 0,出现在x = 1 时。这个二次函数的增减表为:

在 x < 1 时,g(x) 的图形 向右下方延伸,反之当 x > 1 时,g(x) 的图形向右上方延伸,换句话说就是从左下方开始延伸的。 x = 3 这一点,为了使 g(x)的值变小,我们需要向左移动x,也就是必须减小 x。如果是在另一侧的 x = −1 这一点,为了使 g(x) 的值变小,我们 需要向右移动 x,也就是必须增加 x。

所以只要向与导数的符号相反的方向移动 x,g(x) 就会自然而然地沿着最小值的方向前进了。也就是自动更新参数

上面所说的就是最速下降法或者说是梯度下降法,用数学语言表达就是:

像A := B 这种写法,它的意思是通过 B 来定义 A。上面的意思就是将后面的值来定义前面的值,从而达到更新参数的目的,即用上一个 x 来定义新的 x。

η是称为学习率的正的常数,读作“伊塔”。根据学习率的大小, 到达最小值的更新次数也会发生变化。换种说法就是收敛速度会 不同。有时候甚至会出现完全无法收敛,一直发散的情况。

那我们回过头来看一下目标函数 E(θ)。我们再看一下目标函数的表达式:

fθ(x)拥有 θ0 和 θ1 两个参数。 也就是说这个目标函数是拥有 θ0 和 θ1 的双变量函数,所以不能用 普通的微分,而要用偏微分。如此一来,更新表达式就是这样的:

这里的E是没有 θ0,是因为θ0 在 fθ(x)里面,所以这里可以使用复合函数的微分:

是不是特别熟悉,这是 我们大一高数上面的阶梯微分。先从 u 对 v 微分的地方开始计 算:

下面就是 v 对 θ0 进行微分:

合在一起,记得v 替换回fθ(x):

同样我们也可以得到 对θ1进行微分:

所以参数 θ0 和 θ1 的更新表达式就是这样的:

只要根据这个表达式来更新 θ0和 θ1,就可以找到正确的一次函数 fθ(x)了!


三、总结

梯度下降是通过迭代搜索一个函数极小值的优化算法。使用梯度下降,寻找一个函数的局部极小值的过程起始于一个随机点,并向该函数在当前点梯度(或近似梯度)的反方向移动。在线性和对数几率回归中,梯度下降可以用于搜索最优参数。至于SVM神经网络,我们之后才考虑。


相关文章
|
1月前
|
机器学习/深度学习 算法 知识图谱
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
|
1月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
1月前
|
机器学习/深度学习 算法
【机器学习】揭秘GBDT:梯度提升决策树
【机器学习】揭秘GBDT:梯度提升决策树
|
1月前
|
机器学习/深度学习 程序员
【机器学习】朴素贝叶斯原理------迅速了解常见概率的计算
【机器学习】朴素贝叶斯原理------迅速了解常见概率的计算
|
1月前
|
机器学习/深度学习 算法
【机器学习】逻辑回归介绍(逻辑回归应用场景,原理,损失及优化详解!!!)
【机器学习】逻辑回归介绍(逻辑回归应用场景,原理,损失及优化详解!!!)
|
1月前
|
机器学习/深度学习 API
机器学习入门(七):线性回归原理,损失函数和正规方程
机器学习入门(七):线性回归原理,损失函数和正规方程
|
3月前
|
机器学习/深度学习 算法 搜索推荐
【机器学习】机器学习的基本概念、算法的工作原理、实际应用案例
机器学习是人工智能的一个分支,它使计算机能够在没有明确编程的情况下从数据中学习并改进其性能。机器学习的目标是让计算机自动学习模式和规律,从而能够对未知数据做出预测或决策。
86 2
|
2月前
|
机器学习/深度学习 人工智能 算法
探索人工智能:机器学习的基本原理与Python代码实践
【9月更文挑战第6天】本文深入探讨了人工智能领域中的机器学习技术,旨在通过简明的语言和实际的编码示例,为初学者提供一条清晰的学习路径。文章不仅阐述了机器学习的基本概念、主要算法及其应用场景,还通过Python语言展示了如何实现一个简单的线性回归模型。此外,本文还讨论了机器学习面临的挑战和未来发展趋势,以期激发读者对这一前沿技术的兴趣和思考。
|
3月前
|
机器学习/深度学习 人工智能 关系型数据库
【机器学习】Qwen2大模型原理、训练及推理部署实战
【机器学习】Qwen2大模型原理、训练及推理部署实战
594 0
【机器学习】Qwen2大模型原理、训练及推理部署实战
|
3月前
|
机器学习/深度学习 数据采集 物联网
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
117 0