开发者社区> 陈国林> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

机器学习-梯度下降算法

简介: 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” 梯度下降: 因为梯度下降的每一步都使用了所有的训练样本。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
机器学习第3周:算法学习
本文主要介绍了机器学习算法的主要学习分类和相关的子类别,如回归和聚类等等。
2841 0
机器学习算法 --- 逻辑回归及梯度下降
一、逻辑回归简介   logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。   logistic回归是一种广义线性回归(generalized linear model),因此与多重线性回归分析有很多相同之处。
1441 0
[机器学习Lesson3] 梯度下降算法
1. Gradient Descent(梯度下降) 梯度下降算法是很常用的算法,可以将代价函数J最小化。它不仅被用在线性回归上,也被广泛应用于机器学习领域中的众多领域。 1.1 线性回归问题应用 我们有一个函数J(θ0,θ1),要使其最小化minJ(θ0,θ01): Outline 对θ0,θ1开始进行一些猜测 通常将初θ0,θ1初始化为0 在梯度算法中,要做的就是不停的一点点改变θ0和θ1试图通过这种改变使得J(θ0,θ1)变小,直到找到J的最小值或者局部最小值。
1192 0
重要的机器学习算法
本文旨在为那些获取关于重要机器学习概念知识的人们提供一些机器学习算法,同时免费提供相关的材料和资源。并且附上相关算法的程序实现。
5140 0
机器学习算法选用指南
本文对机器学习的一些基本概念给出了简要的介绍,并对不同任务中使用不同类型的机器学习算法给出一点建议。
4045 0
机器学习之梯度下降法
方向导数 如图,对于函数f(x,y),函数的增量与pp’两点距离之比在p’沿l趋于p时,则为函数在点p沿l方向的方向导数。
908 0
机器学习-梯度下降算法-特征缩放和学习速率选取
1. 特征缩放 实际当我们在计算线性回归模型的时候,会发现特征变量x,不同维度之间的取值范围差异很大。这就造成了我们在使用梯度下降算法的时候,由于维度之间的差异使得Jθ的值收敛的很慢。
1340 0
+关注
陈国林
曾任职于阿里巴巴,现就职于美图,专业搬砖100年~
723
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载