为什么要学习最优化理论?
因为对于ML模型训练,最终都可以归结为最优化问题,寻找最优参数,是模型的loss最小。
在ML中,最优化分为 无约束的最优化问题和有约束的最优化问题。
一、无约束的最优化问题
由极值条件可知,函数的极小值问题,可转化为:
由于在多维空间中,以上表达式是n个原方程组问题,求解过程较为复杂。在ML领域,求解最优化问题,往往通过迭代法。
迭代法的基本思想是:首先给定极小值点的初始估计x0,通过迭代得到点序列,若点序列无限接近极小值点,称该序列是极小化序列。
如何将最优化转化为极小化序列?表达式如下:
其中,dk是方向,另一个是步长。这是各种梯度下降算法的普遍抽象。
二、梯度下降算法
梯度下降算法的迭代方向d有函数f的一阶导数决定。
首先回顾梯度的几何意义:梯度向量表示函数f在x0出函数值变化最快的方向。
梯度下降算法分为:BGD、SGD、MBGD。
使用MBGD,一般的n的范围是50-100之间。
对于梯度下降方向d和步长而言,主要有算法 传统更新策略、、动量更新策略、动量更新策略、改进的动量更新策略和自适应梯度策略。
1.传统更新策略
缺点:一方面极易受lr的影响;另一方面,若迭代的化太小,会提前终止迭代操作。在传统更新策略中,每一次迭代的方向dk=当前batch数据集误差损失函数的梯度。
2.动量更新策略
本策略主要是对每一次的迭代方向dk做迭代。
在每次迭代优化dk,有两部分组成:上衣时刻的迭代方向,即:动量;当前样本集合的梯度方向,公式如下:
第一部分表示动量,第二部分表示当前样本的梯度方向。前者是上一batch的前进方向,后者是当前batch的前进方向。在每一次迭代中,向量方向是上一次迭代方向与当前样本梯度方向的向量之和。
3.改进动量更新策略(NAG)
该公式的含义是:先经过动量计算使上一次的参数沿原来梯度到达新的点,然后在新的点沿新的梯度方向前进。
4.自适应梯度策略(AdaGrad)
数学表达式如下:
其中,acci表示累计梯度,参数是第i次迭代时的参数。由表达式可知:AdaGrad实现了学习率的变化,并且迭代次数越多,步长越短。