小白浅谈梯度下降法

本文深入浅出地讲解了梯度下降法这一机器学习优化方法,通过类比老虎下山寻找水源的故事,形象地解释了梯度下降法的原理。讨论了导数和梯度的概念,以及它们在函数优化中的作用。并介绍了学习率的选择对算法收敛速度的影响,以及如何避免陷入局部最优解。
摘要由CSDN通过智能技术生成
                                           小白浅谈梯度下降法

这次给大家介绍一个机器学习的优化方法,梯度下降法(Gradient descent),它的作用是能最小化损失函数,应用广泛。

还是先给大家讲讲经典的下山问题
假设一只老虎在山顶口渴要喝水,并且只能去到最低的山谷才有水源。周围的山连绵不绝,,老虎它不知道哪里是最低的山谷不知道怎么下山,只知道它想走最陡峭的最易下山的方向,然后最快地喝到水。所以它只能走一段观察一下,每次都挑最陡峭的方向下山,运气好的话很快就能到达最低的山谷喝到水。
有时候运气差,到了不是最低的山谷没有水,只能继续在其它地方去尝试了。

先来说说导数的概念,一元函数我们在高中已经学过,导数表示函数在某一点的变化率。
在这里插入图片描述
而多元函数,有多个自变量,在大一下学期学的高等数学(下)讲到,导数是对多个自变量求偏导。
所以,梯度可以看做什么呢,梯度其实是目标值对自变量的导数,在高维上是对所有自变量的偏导。而所谓的梯度方向,则表示了函数增长速度最快的方向,那么和它相反的方向就是函数减少速度最快的方向了。

我们用MATLAB画出二次函数图像,研究下让损失函数减小的规律
在这里插入图片描述
我们再看上面的导数公式,很显然有在这里插入图片描述,(有兴趣的可以去了解下泰勒公式,这里不详细说了),我们重新回想到优化问题,我们想要的是梯度下降,也就是希望下降后的下一步,损失函数J的值要变小,即在这里插入图片描述,所以是需要希望在这里插入图片描述

这种情况下,梯度可以看成是导数。
第一种情况:在抛物线左边的线,显然斜率小于0,也就是导数f’(x)小于0,我们使在这里插入图片描述,并且在这里插入图片描述。此时在这里插入图片描述,这个时候满足我们的希望。

第二种情况:在抛物线右边的线,显然斜率大于0,也就是导数f’(x)大于0,我们使在这里插入图片描述,并且在这里插入图片描述。此时在这里插入图片描述,这个时候也满足我们的希望。

所以,无论哪种情况,我们很容易得出一个结论,要想损失函数变小,在这里插入图片描述与f’(x)相反,就能满足条件。

我们先在二维的平面理解(这里用经典的线性回归中的梯度下降法理解)
在这里插入图片描述
如上图,导数我们可以写成在这里插入图片描述,代表theta单位变化是J相应的变化,每走一步更新一次参数,在一步一步的更新中,J会不断往最小值的方向不断减小,所以我们说它为梯度下降。

这里要说到学习率的概念,学习率通俗的说,在这里就是移动的步长。当学习率过小时,在实际工程上,可能也能最优化模型,但会导致训练时间过长,太阳下山了老虎都喝不到水。

在这里插入图片描述
当学习率太大时,移动的步长太大,跑太快错过了有水源的最低点山谷,会导致函数不能收敛,得不到最优解。

在这里插入图片描述

我们再来看看在三维空间的情况:
在这里插入图片描述
我们可以看到红色和蓝色都是在三维山脉下的梯度下降,红色的最后到达了局部最优解,而蓝色是全局最优解。运气再差点的话,可能还会碰到鞍点,所谓鞍点,就是函数上的导数为零,但不是轴上局部极值的点。
为什么会出现这种情况呢,因为在实际中我们的函数远远不止几个自变量那么简单的函数,函数是非常复杂的,初始化的参数点不同,我们最终的效果不一样,所以,这个时候我们要多初始化几次参数运行找全局最优解。
即使找不到全局最优,这样子初始化次数多训练出来的局部最优解在应用上精度也非常高了。
线性回归中的损失函数之一在这里插入图片描述最小二乘法中,因为参数是很多的,我们把梯度写成在这里插入图片描述在这里插入图片描述这时候梯度就是J对每一个方向的theta求一次偏导。我们的目标很明确,就是要损失函数在这里插入图片描述尽可能小,在这里插入图片描述,则也就是需要在这里插入图片描述尽可能小。

具体的步骤是:
(1)初始化参数为任意值,首先对在这里插入图片描述随机赋值。
(2)求解梯度(这里用向量表示,数学公式那个推导太难画了)
在这里插入图片描述
(3)更新参数在这里插入图片描述
(4)达到迭代次数或者收敛条件,训练结束

梯度下降我们要搞清楚下降的出发点,下降的方向,学习率(步长),以及梯度下降是为了优化取得最优解。另外要注意的是,梯度下降的方法虽然存在以上说的局部极小值、鞍点等很多问题,但在应用上还是非常广泛的,本次推文介绍到这里,谢谢观赏!

温馨提示:文章参考了很多CSDN和知乎大神的说法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值