最优化算法总结
- 最优化方法主要有:梯度下降(批量梯度下降【BGD】,随机梯度下降【SGD】),牛顿法,拟牛顿法
- 当目标函数是凸函数时,梯度下降每次求解是全局解,其解不保证全局最优解
- 每次通过求导找出梯度方向(负梯度方向作为搜索方向),其越接近目标值,步长越小,前进越慢,批梯度下降每次取全量的样本进行计算梯度,然后进行参数的更新
- SGD相比BGD其每次随机采样一部分样本进行梯度计算,这样样本的偏差和噪声对于模型影响会比较大,但是因为每次不用取全量的样本计算梯度,所以收敛速度相比BGD提升很多
- 梯度下降缺点:(1)靠近极小值时,收敛速度比较慢 (2)容易产生之字形下降,局部震荡
- 总结比较:
- BGD最小化所有训练样本的损失函数,使得最终求解是全局最优解,即求解的参数是使得风险函数最小,但对于大规模样本问题效率比较低
- SGD最小化每条样本的损失函数,虽然不是每次迭代损失函数向着全局最优方向逼近,但是整体方向是全局最优,适用于大规模训练样本情况
- 牛顿法是采用损失函数的泰勒级数的前几项来寻找fx=0的根,最大特点:收敛速度块
- 为什么收敛速度快?牛顿法是二阶收敛,梯度下降法是每次迭代在当前位置选一个梯度最大的方向走一步,而牛顿法不仅考虑梯度大不大,还会考虑下一步之后梯度是否更大。
- 优点:收敛速度快;缺点:每一步都需要求解目标函数的hessian矩阵的逆矩阵,计算复杂度高
- 拟牛顿法:
- 拟牛顿法本质是改善牛顿法求解hessian矩阵逆矩阵复杂度高的缺陷,改为使用正定矩阵来近似hessian矩阵的逆
- 当前更通用拟牛顿算法来求解无约束,约束,和大规模的优化问题