第二课:逻辑回归与梯度下降
梯度下降法
【拓展】梯度下降法的一些拓展讨论
作者 : 老饼 日期 : 2022-06-26 03:49:19 更新 : 2022-11-29 11:54:31
本站原创文章,转载请说明来自《老饼讲解-机器学习》ml.bbbdata.com


本文讨论和拓展一些梯度下降的理解,

例如梯度下降的意义,学习率的作用,梯度下降法的优缺点等等,

以此加深对梯度下降算法的理解




  01. 梯度下降的意义  


本节我们讨论关于负梯度的意义


    为什么按负梯度下降    


《数学分析》中,负梯度方向是函数下降最快的方向,
即x=[2,3],如果梯度为[1,2],则x往[1,2]方向调整,能令函数f(x)下降最快的方向
(所谓最快,即调整同样的步长,该方向能令函数下降最快)
按负梯度下降,保证了调整方向的正确性
总的来说,按负梯度方向调整,不仅能让目标函数下降,还能下降最快




  02. 关于学习率  


本节我们讨论关于学习率的一些相关知识


    为什么要设置学习率   


目的是为了保证按梯度方向调整一定能下降。
梯度方向能下降是瞬时的,
如果调整步长过大,则不一定能保证函数能下降,
但只要调整步长足够小,函数就能下降(前提是梯度不为0)。
所以,我们在调整时,加入学习率lr,以控制步长: 


    学习率的设置    


要保证能下降,学习率就不能过大,
但学习率很小,每次迭代调整都很小,就需要迭代很多次。
为此,我们可以设定一个较中肯的学习率(例如,lr = 0.1)。


   关于自适应学习率   


如果更智能一些,
在程序中把学习率改为自适应学习率: 
如果本次迭代能令函数下降,我们把学习率调大些,
如果次迭代不能令函数本下降,我们就把学习率调小些
或者更智能的设置,这就属于梯度下降法的拓展了




  03. 梯度下降法的优缺点  


   优 点   


(1)必能下降
 按负梯度调整,加上学习率的控制,
则能保证x的调整,函数一定能下降
 

 (2)下降速度快
 按负梯度下降,由于负梯度是下降最快的方向,在下降速度上更加有效

 
(3)算法简单有效
 
梯度下降法只需求一阶导,相对其它算法,较为简单
而迭代机制也简单,只需不断往梯度方法迭代就可
因此不管是推导还是代码编写上都非常简单明了,
且效果又不错,性价比非常高


   缺 点   


(1) 只能找到离初始值最近的局部最优
遇到局部最优时,算法就停止,因为此时梯度为0
因此,该算法只能找到离初始解 
​  最近的局部最优,
对跳出局部完全无反抗能力
 
 
(2) 要求函数是连续的(可求偏导)
由于要使用梯度,
所以梯度下降算法要求目标函数必须是连续可导的,
这一限制使它不适用于一些不连续可导的问题







 End 





联系老饼