老饼讲解-机器学习 机器学习 神经网络 深度学习
入门教程
1.学前解惑
2.第一课:初探模型
3.第二课:逻辑回归与梯度下降
4.第三课:决策树
5.第四课:逻辑回归与决策树补充
6.第五课:常见的其它算法
7.第六课:综合应用

【原理】梯度下降算法原理

作者 : 老饼 日期 : 2022-06-26 03:47:47 更新 : 2023-12-18 12:27:12
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



梯度下降算法是一种求解最小值的算法,

由于机器学习中通常需要求最小化损失函数时的参数的取值,

机器学习中经常使用梯度下降算法

本文我们介绍梯度下降算法的原理,包括算法思想、算法流程、算法流程图等



   01. 梯度下降算法原理-背景介绍   



本节我们介绍为什么需要梯度下降算法,和梯度下降算法解决什么问题

以此来开启梯度下降算法原理的讲解




     梯度下降算法的问题背景     


在单变量函数求取最小值问题中,
我们通常只要令f(x)的导数为0,然后解出x就可以 
  然而,在多元函数中,求偏导令偏导为0,解出x是非常困难的,
 
梯度下降算法背景介绍
虽然n个自变量,能求得n条偏导等式
然而,只有这n条等式是线性方程组时,我们才有系统的方法对其求解
而对于非线性方程组,我们目前并没有成熟的求解方案
  Pass:这也是为什么我们很喜欢构造线性问题,因为它能轻松求解 
由于联立偏导方程求精确解的路子行不通, 
我们的替代方案就是进行数值求解,梯度下降法就是其中常用的方法之一

  




   02. 梯度下降算法思想   



本节我们介绍梯度下降算法原理

包括梯度下降算法的思想、梯度的意义与初始化方法



     梯度下降算法-思路概览   


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



   关于梯度的意义   


在一元函数中,负梯度就是导数的反方向
在多元函数中,负梯度就是各个变量偏导数的反方向
 梯度下降算法中梯度的意义 
 梯度是函数下降最快的方向(即调整相同步长,负梯度能令f(x)下降最快),故也称为最速下降法




   关于梯度下降算法的初始值  


从梯度下降算法原理,我们可以知道,
 梯度下降法对 x 的初始化非常敏感,
因为它只能找到离初始值最近的局部极小值,
如果初始化不好,找到的结果也不好。
 梯度下降算法中初始值的意义
 往往是先随机初始化,然后多跑几次,看哪个结果好,就用哪一个






   03. 梯度下降-算法流程    



本节介绍梯度下降算法的算法流程与步骤

并通过梯度下降算法流程图进一步了解算法的每一个步骤



    梯度下降算法的流程与流程图    


梯度下降算法流程与步骤
 
梯度下降算法流程与步骤如下:
1. 先初始化x的值 ​(按个人经验初始化,或随机初始化,或设为0)                     
2. 计算 在处的梯度,令,(lr为学习率,可设为0.1) 
3. 计算处的梯度,令                                   
4. ...如此类推....一直到满足迭代终止条件,最后一次的即为所要找的解。        
迭代终止条件:达到迭代次数,或者 变化不大,或者变化不大
梯度下降算法的算法流程图如下:
梯度下降算法流程图 
简单的说,就是先初始化 ​  ,然后按  不断迭代就行 
在《梯度下降算法实例与代码》中,通过手算梯度下降算法过程,
可以更进一步了解梯度下降算法的具体过程与原理




以上就是梯度下降算法原理的所有内容了~







 End 



联系老饼