梯度下降法及其改进算法

转自:https://blog.csdn.net/sqiu_11/article/details/78323676

Introduce

今天会说两个问题,第一,建议大脚多看看大牛的博客,可以涨姿势。。。例如:

1、侧重于语言编程和应用的廖雪峰

https://www.liaoxuefeng.com/

2、侧重于高大上算法和开源库介绍的莫烦

https://morvanzhou.github.io/

第二,加深对机器学习算法的理解。

个人理解:经典机器学习算法,例如SVM,逻辑回归,决策树,朴素贝叶斯,神经网络,adaboost等等,他们最本质的区别是分类思想(预测y的表达式)不同,有的是基于概率模型,有的是动态规划。表象的区别是最后的损失函数不同,有的是合页损失函数,有的是交叉熵损失函数,有的是平方损失函数,有的是指数损失函数。当然上述的损失函数是经验风险,对于结构风险需要加入正则化(L0,L1(Lasso),L2(Ridge))。而所谓的训练其实就是损失函数的优化过程,这里可以有不同的优化方法,这些方法并不是机器学习算法的一部分,这属于凸优化或者启发式优化算法。而不同的优化(训练、学习)算法效果也不同,突出的表现为

1、不同的优化算法适应于不同的场景(大规模数据、较深较复杂网络、稀疏数据、收敛速率高)等

2、不同优化算法可以解决特定问题:学习率固定不变、在极值点附近收敛缓慢、收敛波动较大等。

3、启发式优化算法可以用于寻找全局最优点,避免陷入局部最优点和鞍点,但收敛太慢。

今天总结梯度下降法及其改进算法

第一部分是以前的疑惑:在推导梯度性下降法时,推导出类似牛顿法,可行性有待验证。。。

本质就是:梯度下降法只说了下降的方向——最陡的方向,每一次下降多少并没具体给出。而牛顿法或者我的推导中给出了具体下降多少,只是牛顿法是变量,即当前的函数值,而我的算法是固定值。可以看看第二篇参考文章!

梯度下降法及其改进算法

第二部分和第三部分是梯度下降法及其改进算法的简介:这里只说一下适应的场景,具体推导建议看论文或者书,博客讲的不乐观

梯度下降法及其改进算法

梯度下降法及其改进算法

第四部分是以线性回归为例,比较批量梯度下降和随机梯度下降的区别:代价函数的区别

梯度下降法及其改进算法

 

第五部分、直观感受不同优化算法的寻优过程

梯度下降法及其改进算法

 

梯度下降法及其改进算法

 

参考文章:

1、深度学习优化算法汇总

2、机器学习中常见的几种最优化方法

3、梯度下降优化算法综述