BP神经网络基础理论
梯度下降算法
【原理】梯度下降算法
作者 : 老饼 日期 : 2022-06-12 23:42:33 更新 : 2022-10-23 19:30:58
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com



梯度下降法算是一种简单、有效、经典的求解最小值算法,

机器学习中通常需要求最小化损失函数时的参数的取值,因此经常使用梯度下降算法

本文介绍梯度下降算法的思想、实现流程和优缺点



    问题背景    


在单变量函数求取最小值问题中,我们通常只要令f(x)的导数为0,然后解出x就可以。 
在一般多元函数中,求偏导令偏导为0,解出x是非常困难的,
虽然n个自变量,能求得n条偏导等式,
然而,只有这n条等式是线性方程组时,我们才有系统的方法对其求解。
如果是非线性方程,我们目前并没有成熟的求解方案。
Pass:这也是为什么我们很喜欢构造线性问题,因为它能轻松求解。



对于多元方程极小值问题,联立偏导方程求精确解的路子行不通,

我们的替代方案就是进行数值求解,梯度下降法就是其中常用方法之一




   01. 梯度下降算法原理  


    梯度下降算法思路    


梯度下降算法的思路是,
先取一个初始值x0,然后进行迭代,
每次都往梯度的反方向调整(在一维中即导数的负方向)它,
直到迭代条件终止(例如无法令f(x)的值下降,即达到局部最低点)
 

 



    关于梯度    


在一元函数中,负梯度就是导数的反方向。
在多元函数中,负梯度就是各个变量偏导数的反方向。

它是函数下降最快的方向(即调整相同步长,负梯度能令f(x)下降最快),故也称为最速下降法。




  关于初始值  


从算法原理,我们可以知道,梯度下降法对 x 的初始化非常敏感
梯度下降法只能找到离初始值最近的局部极小值,如果初始化不好,找到的结果也不好。

往往是先随机初始化,然后多跑几次,看哪个结果好,就用哪一个。




  02. 算法流程  


下面讲解梯度下降算法的具体算法流程


    梯度下降算法流程    



1. 先初始化x的值 ​(按个人经验初始化,或随机初始化,或设为0)                     
2. 计算 在处的梯度,令,(lr为学习率,可设为0.1) 
3. 计算处的梯度,令                                   
4. ...如此类推....一直到满足迭代终止条件,最后一次的即为所要找的解。        
迭代终止条件:达到迭代次数,或者 变化不大,或者变化不大
✍️简单的说,就是先初始化 ,然后按不断迭代就行






 End 








联系老饼