机器学习优化算法

梯度下降算法

动手学深度学习

批量梯度下降

批量梯度下降是最原始的梯度下降方法,在没有mini_batch之前,在进行一次梯度更新时需要把所有的样本损失进行计算,最后求出它们的梯度,最后求平均。

∇ f ( x ) = 1 n ∑ i = 1 n ∇ f i ( x ) \nabla f(\boldsymbol{x})=\frac{1}{n} \sum_{i=1}^{n} \nabla f_{i}(\boldsymbol{x}) f(x)=n1i=1nfi(x)

t梯度的更新为: x ← x − η ∇ f i ( x ) \boldsymbol{x} \leftarrow \boldsymbol{x}-\eta \nabla f_{i}(\boldsymbol{x}) xxηfi(x)

随机梯度下降

由于批量梯度下降更新一次梯度就需要对所有样本进行损失计算并且对所有参数求导,收敛速度太过于缓慢,计算成本也很高。因此就提出了随机梯度下降。随机梯度下降就是每一次梯度更新都随机(分有放回/无放回)抽取一个样本对梯度进行更新。
x ← x − η ∇ f i ( x ) \boldsymbol{x} \leftarrow \boldsymbol{x}-\eta \nabla f_{i}(\boldsymbol{x}) xxηfi(x)
随机梯度下降的过程可能会相当曲折。

mini_batch随机梯度下降

随机梯度下降在每次迭代中只随机采样一个样本来计算梯度。还可以在每轮迭代中随机均匀采样多个样本来组成一个小批量,然后使用这个小批量来计算梯度,这实际上是我们最常用的一个梯度下降方法。

设置一个mini_batch_size=8,那么实际上在每一次的梯度更新过程对整个样本集进行了一个(通常是无放回)随机采样,采出8个样本,然后对这8个样本进行批量梯度下降。
g t ← ∇ f B t ( x t − 1 ) = 1 ∣ B ∣ ∑ i ∈ B t ∇ f i ( x t − 1 ) \boldsymbol{g}_{t} \leftarrow \nabla f_{\mathcal{B}_{t}}\left(\boldsymbol{x}_{t-1}\right)=\frac{1}{|\mathcal{B}|} \sum_{i \in \mathcal{B}_{t}} \nabla f_{i}\left(\boldsymbol{x}_{t-1}\right) gtfBt(xt1)=B1iBtfi(xt1)
梯度更新: x t ← x t − 1 − η t g t \boldsymbol{x}_{t} \leftarrow \boldsymbol{x}_{t-1}-\eta_{t} \boldsymbol{g}_{t} xtxt1ηtgt

动量法

ADam法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值