梯度下降法及其改进算法
转自:https://blog.csdn.net/sqiu_11/article/details/78323676
Introduce
今天会说两个问题,第一,建议大脚多看看大牛的博客,可以涨姿势。。。例如:
1、侧重于语言编程和应用的廖雪峰
2、侧重于高大上算法和开源库介绍的莫烦
第二,加深对机器学习算法的理解。
个人理解:经典机器学习算法,例如SVM,逻辑回归,决策树,朴素贝叶斯,神经网络,adaboost等等,他们最本质的区别是分类思想(预测y的表达式)不同,有的是基于概率模型,有的是动态规划。表象的区别是最后的损失函数不同,有的是合页损失函数,有的是交叉熵损失函数,有的是平方损失函数,有的是指数损失函数。当然上述的损失函数是经验风险,对于结构风险需要加入正则化(L0,L1(Lasso),L2(Ridge))。而所谓的训练其实就是损失函数的优化过程,这里可以有不同的优化方法,这些方法并不是机器学习算法的一部分,这属于凸优化或者启发式优化算法。而不同的优化(训练、学习)算法效果也不同,突出的表现为
1、不同的优化算法适应于不同的场景(大规模数据、较深较复杂网络、稀疏数据、收敛速率高)等
2、不同优化算法可以解决特定问题:学习率固定不变、在极值点附近收敛缓慢、收敛波动较大等。
3、启发式优化算法可以用于寻找全局最优点,避免陷入局部最优点和鞍点,但收敛太慢。
今天总结梯度下降法及其改进算法
第一部分是以前的疑惑:在推导梯度性下降法时,推导出类似牛顿法,可行性有待验证。。。
本质就是:梯度下降法只说了下降的方向——最陡的方向,每一次下降多少并没具体给出。而牛顿法或者我的推导中给出了具体下降多少,只是牛顿法是变量,即当前的函数值,而我的算法是固定值。可以看看第二篇参考文章!
第二部分和第三部分是梯度下降法及其改进算法的简介:这里只说一下适应的场景,具体推导建议看论文或者书,博客讲的不乐观
第四部分是以线性回归为例,比较批量梯度下降和随机梯度下降的区别:代价函数的区别
第五部分、直观感受不同优化算法的寻优过程
参考文章: