【优化算法】2. 梯度下降优化算法

概论

梯度下降不会直接用于深度学习,在生产环境中,会使用梯度下降的优化算法

深度学习中的目标函数通常是训练集中每个样本的损失函数平均值。给定 n n n个样本的训练数据集,假设 f i ( x ) f_i(x) fi(x)是第 i i i个训练样本的损失函数,其中 X X X是参数向量。然后我们得到目标函数

f ( X ) = 1 n ∑ i = 1 n f i ( X ) f(X) = \frac{1}{n}\sum_{i=1}^nf_i(X) f(X)=n1i=1nfi(X)

X X X的目标函数的梯度计算方式为

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

梯度下降法,每个自变量的计算代价是 O ( n ) \mathcal{O}(n) O(n),训练数据集较大时,时间复杂度较高。

梯度下降

随机梯度下降

随机梯度下降(stochastic gradient descent)算法是深度学习中使用最广泛的优化算法。随机梯度下降(SGD)可降低每次迭代时的计算代价。在每次迭代过程中,我们对数据样本随机均匀采样一个索引 i i i,其中 i ∈ { 1 , … , n } i\in\{1,\ldots, n\} i{ 1,,n},并计算梯度 ∇ f i ( x ) \nabla f_i(x) fi(x)来更新 x x x

x ← x − η ∇ f i ( x ) x \leftarrow x- \eta \nabla f_i(x) xxηfi(x)

其中 η \eta η是学习率。每次迭代的时间复杂度从 O ( n ) \mathcal{O}(n) O(n)降低到 O ( 1 ) \mathcal{O}(1) O(1)。其中随机梯度 ∇ f i ( x ) \nabla f_i(x) fi(x)是对完整梯度 ∇ f ( x ) \nabla f(x) f(x)的无偏估计,因为

E i ∇ f i ( x ) = 1 n ∑ i = 1 n ∇ f i ( x ) = ∇ f ( x ) . \mathbb{E}_i \nabla f_i(\mathbf{x}) = \frac{1}{n} \sum_{i = 1}^n \nabla f_i(\mathbf{x}) = \nabla f(\mathbf{x}). E

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值