机器学习3---梯度下降法的_初阶原理_与简单应用

梯度下降法概念

可以用来求任何一个函数的最小值所在的点。
在机器学习中我们可以用梯度下降法来最小化任意代价函数J,从而得到最优的参数解。

梯度下降法的实现过程

在这里插入图片描述
实际上函数的参数值可以不只有两个,可以是好多个。
1.给代价函数的参数设定初始值(什么都行)。
2.持续改变参数的值,从而减小J函数的值,直到我们找到J函数的最小值或者局部最小值为止

图像层面说明

下面举例说明:
在这里插入图片描述
这个代价函数可以写成J(θ0,θ1)。
我们给参数赋一个初值,就相当于与我们站在了这个山地立体图的某一个点上。 我们的目的是找到局部地势低洼的地方
我们看一下周围,就明白向哪个方向是最佳下山方向。 然后我们迈出一小步。
之后我们重复上面的步骤,不断寻找最佳下山方向,直至我们到达局部最低点
在这里插入图片描述
有趣的是,我们发现,选的起点不同的话,我们就会得到一个截然不同的局部最低点

数学原理

梗概

在这里插入图片描述
首先解释符号":=":k := k+1,作用相当于编程语言中的k += 1,即在原来的基础上进行操作后,把新值再赋给这个值。
这里的α是学习率,代表的是梯度下降的速度快慢。α大,梯度会下降的很快;α小的话,下降的就慢一些。注意,α的值是正数。
在这里插入图片描述
数据更新时,一定要等两个值都算出来后再更新θ0和θ1的值。这才是梯度下降法的本义—同时更新
而右边的算法虽然结果也可能正确,但是它本质上是属于另外一种算法。

简单举例论述原理

在这里插入图片描述
这里以只有一个参数的J函数举例:
在这里插入图片描述
找到一个初始点,求得这一点的导数,之后用这个点的横坐标减去这一点的导数与学习率α的积;会得到一个新的点。
重复以上的步骤,在α值合适的前提下,横坐标的值变化的会越来越慢。
因为若是初始点在左侧,导数为负数,相当于每次横坐标在慢慢变大,随着越发逼近最小值点,导数值逐渐逼近0。横坐标变化幅度愈发的小,当他几乎不再变化或或者系统判断他已经不再变化,即该点的导数值可认为是0的时候,系统就会停止运算。
若是初始点在右侧,导数为正数,相当于横坐标每运算一次就减小一次,随着导数值逐渐逼近0,横坐标减小的幅度愈发的小,当他几乎不再变化的时候,就找了最小值点。

梯度下降法使用时的注意点

在这里插入图片描述
此外,一定要选取合适的α的值,选的太小,他会下降的异常的慢,会浪费时间;若选的太大**,下降的幅度过大,很有可能就错过了最小值点。** 此时为了减小横坐标的变化幅度,可能该点就会左右来回跳跃,这样下去会一次次的跳过最低点,会离最低点越来越远。

在这里插入图片描述注意,若我们的初始点一开始就处于一个局部最低点,**并且学习率α的大小不足以让他跳跃到下一个局部最低点,**他就会保持不变,即此时梯度下降法不发挥作用。

因此初始值和学习率的设置都要谨慎细微,否则就容易陷入无限循环找不到最优解陷入局部最优的陷阱。

梯度下降和代价函数结合的应用:BGD批量梯度下降法(每次迭代都使用所有的样本)

原理解释

在这里插入图片描述
此种算法的每一步梯度下降优化都会用到所有的样本集。

举例

在这里插入图片描述
左侧是梯度下降法,右侧是线性回归函数和它的代价函数。

1.将偏导项写出来然后展开:
在这里插入图片描述
2.分别求代价函数参数θ0和θ1的偏导函数
在这里插入图片描述3.将以上结果回代入梯度下降函数
在这里插入图片描述

此外我们可以知道该一次函数的损失函数的图像是,他是一个凸函数

在这里插入图片描述
因此我们就不必担心陷入局部最优的问题,现在只需要规定一个合适的学习率。之后就是计算机的事情了:用一个点的横坐标减去该点的偏导数,计算机会不断重复这个过程。直到θ0和θ1的值都几乎不再发生变化了,我们就求得了最优解。

另外一定要注意,梯度下降法是同步更新,不管被优化函数有几个参数,他都一定是在把所有的式子运算完之后才会统一更新新值。

附上正确的运行顺序:
在这里插入图片描述

另外,若要从数学角度和视觉上去感受求解它的过程,请参照我的博客: https://blog.csdn.net/importpygame/article/details/106378493.中的小标题为:两个参数情况下的优化过程(θ1与θ0都参与优化过程) 下的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值