分布式机器学习算法、理论与实践 学习笔记
续 前
4 单机优化之确定性算法
- 基本概述
1)机器学习的优化框架
① 正则化经验风险最小化
模型在训练数据上的平均损失函数值尽可能小;同时对模型复杂度进行惩罚
② 优化算法的收敛速率
有效的优化算法:随着迭代的进行使输出模型越来越接近于最优模型
收敛性:e(T)趋近于0
收敛速率:一般使用log e(T)的衰减速率来定义优化算法收敛速率
③ 假设条件:凸性与光滑性
基于目标函数良好的数学属性
凸性:函数几何性质,任何局部最优解都是全局最优解
可进一步区分凸性强度,结论:f为α强凸当且仅当f-α/2|| ||^2为凸函数
光滑性:函数变化缓急程度,自变量微小变化引起函数值微小变化
关于可导函数(β光滑)与不可导函数(βLipschitz)有不同的数学定义
结论:凸函数f是β光滑的充要条件是其导数是βLipschitz的
2)优化算法的分类和发展
根据是否对数据/特征维度进行采样:确定性算法和随机算法
根据算法在优化过程中使用的信息:一阶方法和二阶方法
根据算法的问题空间:原始方法和对偶方法 - 一阶确定性算法 介绍算法和其收敛速率
1)梯度下降法
适用范围 ①无约束优化问题 ②目标函数梯度存在
思想:最小化目标函数在当前状态的一阶泰勒展开
特点:针对目标函数梯度存在的情形,即光滑函数
收敛速率:
对于强凸函数,线性收敛速率;凸函数,次线性收敛速率;
强凸性质和光滑性质一定程度上刻画优化问题的难易程度和收敛速度
2)投影次梯度下降法
解决梯度下降法的局限性,与梯度下降法不同之处:
①若当前状态梯度不存在,计算当前状态的次梯度进行梯度下降
②若计算出的参数不属于约束域,则寻找它到约束域的投影(即约束域距离计算出的值最近的点)
收敛速度:
与步长选择有关
在光滑函数情形下,与梯度下降法收敛速率相同;在Lipshcitz连续函数情形下,强凸/凸函数都具有次线性收敛速率
3)近端梯度下降法
投影次梯度下降法的一种推广,适用于不可微的凸目标函数
参考 对近端梯度算法(Proximal Gradient Method)的理解.
近端映射的定义性质:w关于函数R近端映射的方向与w沿着函数R某个次梯度方向更新是一样的,即近端映射可用于次梯度更新的替代
适用范围:通常用于解决如下的凸优化问题 min f(w) = l(w)+R(w)
其中l(w)为可微的凸函数,R(w)是不可微的凸函数(指示函数/L1范数正则项)
算法思想:按照可微的l函数梯度方向先进性梯度下降更新,然后计算新的状态关于不可微函数的近端映射值
收敛速率:(一定条件下)目标函数是α强凸函数,且β光滑时,具有线性收敛速率
4)Frank-Wolfe算法
投影次梯度下降法的另一个替代算法,解决由于投影计算过于复杂而导致的算法效率低下
特点:在近似目标函数泰勒展开时就将约束条件考虑进去,得到满足约束的函数最小值
收敛速率:与投影次梯度下降法相同
5)Nesterov加速法
对于Lipschitz连续函数,梯度下降法达到了一阶算法收敛速率下界
而对于光滑函数,梯度下降法需采用Nesterov加速,才可达到一阶算法收敛速率下界
针对光滑的目标函数,加快一阶优化算法收敛速度
对每一个状态计算辅助变量,参数根据一定的线性加权进行更新
6)坐标下降法
特点:在迭代的每一步,算法都选择一部分维度进行更新,其他维度不变;维度的选择遵循本征循环选择规则
收敛速率:对于强凸且光滑的目标函数,具有线性收敛速率 - 二阶确定性算法
1)牛顿法
思想:最小化目标函数在当前状态的二阶泰勒展开
适用:目标函数当前状态处的Hessian矩阵正定
特点:相比一阶梯度下降法提供了更为精细的步长调节,收敛速率加快,二次收敛
问题:
① 每个时刻都需要计算当前时刻的Hessian矩阵,计算量存储量大
② Hessian矩阵不一定正定
2)拟牛顿法
思想:为解决牛顿法的问题而提出,构造与Hessian矩阵相差不太大的矩阵作为替代品,迭代更新Hessian逆矩阵
流程:计算导数和模型的更新量迭代计算海森矩阵和其逆矩阵
特点:二次收敛速率 - 对偶方法
情形:当原始问题变量维度很高,而约束条件个数不多时,对偶问题的复杂度远小于原始问题的复杂度,更容易求解
构造原优化问题的拉格朗日函数:凹函数,为原始问题最优值的下界
原始问题的对偶问题:将拉格朗日函数在约束条件系数空间中取最大值,将得到原问题的最大下界
求解步骤:
①求解对偶问题h(λ,v)得(λ*,v*) ,可采用对偶坐标上升法
②将所得解带入原问题求解minL(w,λ*,v*),若求得解为可行解,则为最优解
一些概念
弱对偶条件与强对偶条件
sup 的定义:一个集合最小的上界
inf 的定义:一个集合最大的下界 - 总结