机器学习-梯度下降算法

简介: 1.引言虽然我们知道,代价函数Jθ的表达式,但是还不知道怎么去确定假设函数hθ(x)的所有参数θ0,θ1 ... θn,使得Jθ值最小。我们还是假设hθ(x)是一个线性函数,并且只有2个参数θ0,θ1,对应特征向量x只有1维我们的目标是使得J...

1.引言

虽然我们知道,代价函数Jθ的表达式,但是还不知道怎么去确定假设函数hθ(x)的所有参数θ0,θ1 ... θn,使得Jθ值最小。

我们还是假设hθ(x)是一个线性函数,并且只有2个参数θ0,θ1,对应特征向量x只有1维

我们的目标是使得J(θ0,θ1)最小

我们可以采用以下方法,尝试找到J(θ0,θ1)最小值

  1. 给θ0, θ1一个初始值,例如都等于0
  2. 不断改变θ0, θ1的值,并且满足J(θ0,θ1)递减,直到达到一个我们满意的最小值,此时θ0,θ1即我们所求的最佳参数值

这个算法我们称之为"梯度下降"算法

假设J(θ0,θ1)值和参数θ0,θ1满足如下3维关系图

按照前面提到的迭代方法,假设不同的θ0, θ1的初始值,我们可能会有如下两个不同的迭代过程

从前面两个图中所示,我们会发现θ0, θ1初始值不同的时候,我们会找到不同局部最小值,这个特点正是"梯度下降"算法的特点,虽然很多时候都只会有一个全局的最小值

2.梯度下降-初步了解

根据前面的介绍,当只有2个参数θ0, θ1的时候,可以定义梯度下降算法的函数,如下

特别说明:

  1. := 表示赋值,例如a := b 表示把b的值赋值给a
  2. = 表示判断是否相等,例如 a = b表示判断a等于b
  3. 重复上述过程,直到函数收敛,得到的θ0, θ1值即为最佳参数值
  4. α我们称为learning rate,如果α的值太大则迭代的步伐太大,反应在图上即下降的速率太大,可能导致错过了局部最小值;如果α的值太小则迭代的步伐太小,反应在图上即下降的速率太小,会导致求解过程太慢。
  5. 注意,我们发现等式右边被减数是一个 求偏导数,如果不了解偏导数(参考https://zh.wikipedia.org/wiki/%E5%81%8F%E5%AF%BC%E6%95%B0)
  6. 另外还有一个需要注意的是,所有的参数必须需要同步更新,所谓同步更新如下图所示

注意:

  1. 当learning rate太大的时候,可能会出现overshoot the minimum现象,类似下图所示情况发生
  2. 当函数接近局部最小值的时候,所求偏导数值将会逐渐递减,梯度下降法将自动的采取“小步子”, 所以没有必要随着时间的推移减小learning rate.

3.梯度下降-线性回归

还是假设只有2个参数线性回归模型

  1. 左边是线性回归的模型,hθ(x)表示假设函数,J(θ0,θ1)则表示的是代价函数
  2. 右边是梯度下降的算法定义

 

J(θ0,θ1)对于θ0和θ1分别求导,可得

 证明过程如下所示


特别注意: θ0和θ1的值需要同步更新

4.梯度下降-多个参数线性回归

很多时候,我们的假设函数hθ(x)不止2个参数,可能会有n+1个参数θ0,θ1,θ2 ... θn,此时对应特征向量x有n维

因此我们可以得到n个参数的线性回归模型

对于这个n个参数的线性回归函数,我们可以得到对应的梯度下降算法

展开求偏导数后,可得

总结: 这里的梯度下降算法也称为”Batch” 梯度下降: 因为梯度下降的每一步都使用了所有的训练样本。


目录
相关文章
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
解锁机器学习的新维度:元学习的算法与应用探秘
元学习作为一个重要的研究领域,正逐渐在多个应用领域展现其潜力。通过理解和应用元学习的基本算法,研究者可以更好地解决在样本不足或任务快速变化的情况下的学习问题。随着研究的深入,元学习有望在人工智能的未来发展中发挥更大的作用。
|
1月前
|
机器学习/深度学习 算法 网络安全
CCS 2024:如何严格衡量机器学习算法的隐私泄露? ETH有了新发现
在2024年CCS会议上,苏黎世联邦理工学院的研究人员提出,当前对机器学习隐私保护措施的评估可能存在严重误导。研究通过LiRA攻击评估了五种经验性隐私保护措施(HAMP、RelaxLoss、SELENA、DFKD和SSL),发现现有方法忽视最脆弱数据点、使用较弱攻击且未与实际差分隐私基线比较。结果表明这些措施在更强攻击下表现不佳,而强大的差分隐私基线则提供了更好的隐私-效用权衡。
53 14
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
275 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
2月前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
95 2
|
3月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
77 1
|
3月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
193 6
|
3月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
3月前
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
59 0
|
9月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
9月前
|
机器学习/深度学习 分布式计算 算法
大模型开发:你如何确定使用哪种机器学习算法?
在大型机器学习模型开发中,选择算法是关键。首先,明确问题类型(如回归、分类、聚类等)。其次,考虑数据规模、特征数量和类型、分布和结构,以判断适合的算法。再者,评估性能要求(准确性、速度、可解释性)和资源限制(计算资源、内存)。同时,利用领域知识和正则化来选择模型。最后,通过实验验证和模型比较进行优化。此过程涉及迭代和业务需求的技术权衡。
162 2