学习分享:优化算法

1 经典优化算法

  • 优化目标:损失函数(模型在某个参数下)在数据上的期望

  • 方法分类:直接法、间接法

1.1 直接法

  • 定义:直接给出优化问题的最优解

  • 需满足2条件:
    (1)L是凸函数
    充要条件:最优解处的梯度为0
    在这里插入图片描述
    (2)梯度=0的方程有闭式解(解析解)

  • 典型例子:岭回归
    目标函数:
    在这里插入图片描述
    最优解:
    在这里插入图片描述

1.2 迭代法

  • 定义:迭代地修正对最优解的估计
    在这里插入图片描述
    其中,优化问题是:
    在这里插入图片描述

1.2.1 一阶法

  • 定义:对L做一阶泰勒展开

  • 迭代公式:
    在这里插入图片描述

  • 缺点:收敛速度慢

  • 升级版本: 一阶加速算法

1.2.2 二阶法(牛顿法)

  • 定义:对L做二阶泰勒展开

  • 迭代公式:
    在这里插入图片描述

  • 优点:收敛速度比一阶法快

  • 缺点:
    高维,Hessian矩阵求逆,计算复杂度高
    目标函数非凸,可能收敛到鞍点

  • 升级版本:BFGS,L-BFGS

2 梯度下降法

2.1 GD

梯度下降:gradient descent
思想:所有样本的平均损失,来近似目标函数(损失的期望)
在这里插入图片描述
其中,目标函数是:
在这里插入图片描述

特点
每次更新,需要遍历所有数据
计算量大,时间长
离线更新,小数据集

2.2 SGD

随机梯度下降:stochastic gradient descent
思想:单个样本的损失,来近似目标函数(损失的期望)

特点:
每次更新,仅需要单个数据
计算量小,时间短
在线更新,大数据集
梯度方差大,算法不稳定(剧烈波动,不收敛)
信息有限,估计偏差
陷入山谷、鞍点

2.2 BGD

批量梯度下降:batch gradient descent
小批量梯度下降:mini-batch gradient descent
特点:
每次更新,需要m个数据
计算量一般,
小数据集
梯度方差较小,算法稳定
m需要调参选取

m(批大小) <<M(样本总数)
m取32,64,128,256(充分利用矩阵运算操作)
每次迭代,shuffle,再取m(避免数据特定顺序给收敛带来影响)

3 梯度下降法的优化

为了解决山谷震荡、鞍点停滞

3.1 momentum方法

在这里插入图片描述
惯性保持:考虑上时刻的速度

质量小——》受干扰大(纸团)
质量大——》受干扰小(石头)
当前速度 = 上时刻速度(惯性保持)+ 梯度作用

震荡方向上,动量累积,相互抵消
运动方向上,动量累积,越来越快

特点:
收敛更快
曲线更稳定

3.2 AdaGrad方法

在这里插入图片描述
环境感知:学习率的自适应调整

数据稀疏——》梯度稀疏——》对应的参数更新频率低

更新频率低的参数——》大的学习率(步幅)
更新频率高的参数——》小的学习率(步幅)
历史梯度平方和

特点:
学习率随时间减小

3.3 RMSprop方法

在这里插入图片描述

3.4 Adam方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
惯性保持+环境感知:考虑上时刻速度+学习率自适应调整
梯度一阶矩(惯性保持)+ 梯度二阶矩(环境感知)
一阶在分子,二阶在分母

3.5 其他改进方法

3.5.1 momentum方法的改进

Nesterov Accelerated Gradient
加入了环境预判
在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.5.2 AdaGrad方法的改进

RMSProp, AdaDelta
将历史梯度平方和换成历史梯度平均
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.5.3 Adam方法的改进

AdaMax
指数衰退平均改为指数衰退最大值

Nadam
Nesterov Accelerated Gradient版本的Adam

4 反向传播(BP)算法

BP传播误差信息,更新权重矩阵,是GD在NN上的实际应用

4.1 BP的不足

(1)训练时间长
原因:学习率太小
解决:自适应学习率
(2)完全不能训练
原因:学习率过大,权值调整过大
解决:取小的初始权值、学习率
(3)易陷入局部极小
原因:GD
解决:加深网络,增加神经元

4.2 BP的改进

(1)附加动量法
(2)自适应学习率法
(3)牛顿法
(4)竞争BP法
(5)弹性BP算法
(6)改进误差函数
(7)模拟退火方法
(8)统计算法
(9)样条权函数算法和代数算法
(10)输入输出样本定标
(11)权值与阈值的初始化
(12)样本随机排序

4.3 BP与GD的区别和联系

梯度下降:一种最优化方法,用于找找损失函数极小值,梯度下降过程涉及到梯度求解。

反向传播:一种求解梯度的方法,采用链式法则计算所有参数的梯度。

参考

https://segmentfault.com/a/1190000019862084
https://zhuanlan.zhihu.com/p/64113429
https://blog.csdn.net/u010089444/article/details/76725843
https://www.jiqizhixin.com/articles/071502
https://zhuanlan.zhihu.com/p/22252270
https://zhuanlan.zhihu.com/p/32626442
https://zhuanlan.zhihu.com/p/75972610

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值