分布式机器学习算法、理论与实践 学习笔记
5 单机优化之随机算法
由于数据规模增大,优化问题复杂度提高,确定性优化算法逐渐出现瓶颈→对样本进行随机采样获得对更新量的有效估计
收敛性评价:对算法中的随机采样取期望
- 基本随机优化算法
1)随机梯度下降法
思想:对训练数据进行随机采样,使用该样本损失函数代替所有样本损失函数平均
特点:
① 相当于使用有放回的随机采样来计算梯度,总体上用所有数据来计算梯度的无偏估计
② 每次只用计算一个样本的梯度,计算量大大降低
③ 对于不同性质的目标函数,收敛速率不同;相比梯度下降法收敛速率更慢,原因是随机梯度存在一定的方差,引入不确定性,使收敛更慢
④ 尽管收敛慢,但由于每次只用计算一个样本的梯度,总体复杂度小于梯度下降法
推广:mini-batch随机梯度下降法,每次迭代时抽取多个样本来计算梯度,降低方差,提高收敛速率
2)随机坐标下降法
思想:对模型维度进行随机采样(坐标下降法是采用一定的规则选择更新的维度)
特点:
① 在期望意义上,随机坐标梯度与梯度方向一致
② 每次更新仅计算一个维度的梯度大大降低梯度计算量
③ 随机坐标下降法的收敛速率与梯度下降法一致,但每次更新的复杂度降低
3)随机拟牛顿法
思想:采用一个样本或者小批量样本计算梯度,利用历史信息多次迭代更新Hessian
特点:
① 满足一定条件下,随机拟牛顿法与随机梯度下降法具有相同收敛速率
② 二阶随机算法在收敛速率和复杂度上都与一阶随机算法差不多,是因为随机采样的方差会影响收敛精度
4)随机对偶坐标上升法
参考 凸优化|笔记整理(7)——对偶性延伸:对偶范数,共轭函数,双对偶;再看牛顿法.
参考 凸优化|笔记整理(A)——坐标下降法,对偶上升法,再看增强拉格朗日法.
及相关专栏 (需要用时仔细查看)
5)小结 - 随机优化算法的改进
改进方向
①方差缩减方法
1 缩减随机优化算法的方差,提高对数据的利用率
如随机方差缩减梯度法SVRG、随机平均梯度法SAG、加速随机平均梯度法SAGA
利用全梯度信息对随机梯度加入正则项,得到的方差小于原始随机梯度的方差
2 改进采样方法,改进采样数量和分布,控制梯度方差,提高随机算法收敛速率
如小批量采样方法、带权重的采样方法
②算法组合方法
在基本随机优化算法基础上与其他优化算法进行组合,得到更快的收敛速率
如结合随机方差缩减梯度法(次线性收敛速率→线性收敛速率),Nesterov加速(多项式阶加速),随机坐标下降法(保持线性收敛的情况下使每一轮计算梯度的复杂度下降) - 非凸随机优化算法
神经网络的损失函数为非凸的,参考 神经网络的损失函数为什么是非凸的?.
低维度非凸优化问题:模拟退火/贝叶斯优化
高纬度非凸优化问题:
① 从已有随机凸优化算法中选取更适合神经网络的方法,如Ada
② 凸优化算法在非凸问题中,相对于局部最优模型的收敛性质,研究神经网络中局部最优和全局最优的差异
③ 改善算法逃离鞍点
④ 设计非凸优化算法 - 总结