最优化 梯度下降
2017-03-13 14:47
239 查看
梯度下降算法
梯度方向: 指定点处, 函数值变化幅度最大的方向.梯度下降算法, Gradient Descent, 也称为 最速下降算法, Steepest Descent. 是求解无约束最优化问题的经典方法.
它属于迭代优化方法. 迭代公式是:
x(k+1)=x(k)+(−1)λk∇f(x(k))
即从x(k)点出发, 沿该点处的负梯度方向−∇f(x(k)), 以步长λk 找到下一个迭代点.
局部最优与全局最优
梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。可以取不同的初始迭代点, 分别求解, 增加找到全局最优的几率.
当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。
参数
步长的选择步长过大, 容易震荡; 而步长过小, 收敛速度又会很慢.
随机梯度下降
SGD, Stochastic Gradient Descent.一般来讲, 目标函数是每个样本损失函数的加和. 即
L(w)=∑i=1nLi(w)
当样本很多, 参数很多, 又没有简单的公式时, 计算的代价会很昂贵.
所以随机梯度下降的思想是: 在计算每轮迭代时, 从总样本中随机选一个子集来计算. 大大减轻运算量. It’s effective in large-scale machine learning problems.
虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的, 最终的结果往往是在全局最优解附近.
应用
用处很广, 支持向量机,逻辑回归和图形模型. 当与反向传播算法相结合时,它是用于训练人造神经网络的实际标准算法.
momentum
momentum, [mə’mentəm], [物] 动量. P=mv.在sgd的过程中,每次下降步长仅通过α(alpha)来控制,容易陷入更新太慢的状态:
平坦地区,下降好多步,也走不到头;
陡峭的区域,下降过头,导致,左一步,右一步,收敛也慢
看一下小球滚落的物理现象:
如果是个笔直的斜坡, 由于加速度方向一致, 小球的动量会快速变大; 若轨道比较蜿蜒, 小球甚至还会减速.
于是参照小球滚落的物理现象, 引入了 mementum 参数.
思想是,若当前梯度方向与上一次相同,那么,此次的步长增强,否则,应该相应减弱.
Nesterov momentum
Nesterov Accelerated Gradient(NAG)算法相对于Momentum的改进在于,以“向前看”看到的梯度 而不是 当前位置梯度去更新。经过变换之后的等效形式中,NAG算法相对于Momentum多了一个本次梯度相对上次梯度的变化量,这个变化量本质上是对目标函数二阶导的近似。由于利用了二阶导的信息,NAG算法才会比Momentum具有更快的收敛速度。参数
下面的参数来自于kerkas中的keras.optimizers.SGD.
lr: float >= 0. Learning rate.
momentum: float >= 0. Parameter updates momentum.
decay: float >= 0. Learning rate decay over each update.
nesterov: boolean. Whether to apply Nesterov momentum.
例题
用最速下降法求解minf(x)=2x21+x22
引自: <<最优化理论与算法>> P.283
假设我们想用直线 y=w1+w2x 去拟合一系列二维的点, n为样本个数, 损失函数为平方差, 那么请列出参数的更新方程.
答: 总的损失函数就是
参数更新递推公式为:
参考
梯度下降(Gradient Descent)小结相关文章推荐
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- python最优化-梯度下降实现
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- 最优化问题中,牛顿法为什么比梯度下降法求解需要的迭代次数更少?
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- [最优化算法] 梯度下降
- 迭代求解最优化问题——梯度下降、牛顿法
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- hxy系列4-最优化与梯度下降
- 最优化-梯度下降法
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- 常见的几种最优化方法(梯度下降法、牛顿法、拟牛顿法、共轭梯度法等)
- 最优化方法:梯度下降法
- 斯坦福大学深度学习公开课cs231n学习笔记(3)最优化方法:梯度下降
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- 最优化方法:梯度下降(批梯度下降和随机梯度下降)
- 最优化计算中:梯度下降法和牛顿法,共轭梯度法的基础分析