概述
概述
目前大多数关于优化算法的收敛性质都需要依赖目标函数具有某些良好的数学属性,比如凸性和光滑性。
凸性会给优化带来很大的方便。原因是,凸函数的任何一个局部极小点都是全局最优解。非凸问题中可能存在多个局部极小点,不容易找到全局最优。
光滑性刻画了函数变化的缓急程度。直观上,如果自变量的微小变化只会引起函数值的微小变化,我们说这个函数是光滑的。对于不可导函数,通常用Lipschitz性质来描述光滑性。
依据是否对数据或变量的维度进行随机采样,把优化算法分为确定性算法和随机算法。
依据算法在优化过程中所利用的是一阶导数信息还是二阶导数信息,把优化算法分为一阶方法和二阶方法。
一阶确定性算法
梯度下降法
基本思想:最小化目标函数在当前状态的一阶泰勒展开,从而近似地优化目标函数本身。
局限:只适用于无约束优化问题;只适用于梯度存在的目标函数。
二阶确定性算法
牛顿法
基本思想:将目标函数在当前状态进行二阶泰勒展开,然后最小化这个近似目标函数
因为步长更为精细,牛顿法的收敛速率比梯度下降法的收敛速率显著加快,具有二次收敛速率
随机优化算法
随机梯度下降
虽然随机梯度下降法的收敛速率慢于梯度下降法,但是在每一轮计算梯度时,由于随机梯度下降法只需要计算一个样本的梯度,而梯度下降法要计算n个样本的梯度,所以当样本量很大时,随机梯度下降法比梯度下降法的总体计算复杂度要低。随机梯度下降法和它的并行版本对处理海量数据有很大优势。
非凸随机优化算法
一般来说,非凸问题的全局优化是NP困难问题,模拟退火、贝叶斯优化等算法,可以有效解决低维度非凸优化问题。
Ada系列算法
深度学习中优化神经网络模型的问题是高度非凸非线性的。而连续空间中基于梯度的优化算法绝大多数只适用于凸问题。
在实际应用中,通常用随机一阶方法来优化神经网络,原因如下:
1.深度学习中数据规模很大,随机算法能通过减少每次迭代的复杂度来减少总的复杂度。
2.二阶算法对大规模神经网络计算海森矩阵的复杂度很高,而且在随机版本中,二阶算法相对于一阶算法的优势并不明显。
3.神经网络是高度非线性的,描述其对偶问题比较困难。
参考文献
最后
以上就是淡然白猫为你收集整理的单机优化之确定性算法和随机性算法随机梯度下降的全部内容,希望文章能够帮你解决单机优化之确定性算法和随机性算法随机梯度下降所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复