【机器学习】 7. 梯度下降法,随机梯度下降法SGD,Mini-batch SGD

梯度下降法

  • 从一个随机点开始
  • 决定下降方向(重要)
  • 确定步长(重要)
    • 太小: 迭代太多次,消耗过多资源
    • 太大: 容易越界,不稳定
  • 不断更新,直到符合停止标准
    • e.g. 变化足够小
      ∣ f ( w 0 ) − f ( w 6 ) ∣ < e = 1 0 − 3 |f(w0) - f(w6)| < e = 10^{-3} f(w0)f(w6)<e=103

凸函数(convex)和非凸函数

凸函数:最小二乘,岭回归,逻辑回归…
在这里插入图片描述
非凸函数:会在第一个最小的拐点停止,但是实际上还有更低点。

在这里插入图片描述

梯度更新方向选择

更新规则:
w i + 1 = w i − α i d f d w ( w i ) w_{i+1} = w_i - α_i\frac{df}{dw}(w_i) wi+1=wiαidwdf(wi)
-dw : 斜率的负数,决定更新的方向
如果 -dw > 0 则往左走
如果 -dw < 0 则往右走
α : 步长

公式推导:
Loss :
f ( x ) = ∣ ∣ w x − y ∣ ∣ 2 2 f(x) = ||wx - y||^2_2 f(x)=∣∣wxy22
求导:
d f d w ( w ) = 2 ∣ ∣ w x − y ∣ ∣ 2 \frac{df}{dw}(w) = 2||wx-y||_2 dwdf(w)=2∣∣wxy2
梯度更新:
w i + 1 = w i − α ∣ ∣ w x − y ∣ ∣ w_{i+1} = w_i - α||wx -y|| wi+1=wiα∣∣wxy∣∣

2 包含在α里

步长的选择

α i = α n i α_i = \frac{α}{n\sqrt{i}} αi=ni α

α : 常量
n : 训练集数量
i : iteration 迭代次数
随着迭代次数增加,步长越来越小。

随机梯度下降SGD(Stochastic Gradient Descent)

梯度下降法:

w i + 1 = w i − α i ∑ j = 1 n ( w i T x ( j ) − y ( j ) ) x ( j ) w_{i+1} = w_i - α_i\sum^n_{j=1}(w^T_ix^{(j)} - y^{(j)})x^{(j)} wi+1=wiαij=1n(wiTx(j)y(j))x(j)
空间复杂度: O(nk)

SGD:

随机样本计算梯度,如果全部样本都计算梯度,计算量过大
w i + 1 = w i − α i ( w i T x ( j ) − y ( j ) ) x ( j ) w_{i+1} = w_i - α_i(w^T_ix^{(j)} - y^{(j)})x^{(j)} wi+1=wiαi(wiTx(j)y(j))x(j)
空间复杂度: O(k) 【取消了sum】
w i + 1 = w i + α i ▼ f j ( w i ) w_{i+1} = w_i + α_i▼f_j(w_i) wi+1=wi+αifj(wi)

j 表示随机抽取的样本

  • 优点:
    • 每次更快,计算量更少
  • 缺点:
    • 需要迭代更多次

Mini-batch SGD

w i + 1 = w i − α i ∑ j ∈ B n ( w i T x ( j ) − y ( j ) ) x ( j ) w_{i+1} = w_i - α_i\sum^n_{j∈B}(w^T_ix^{(j)} - y^{(j)})x^{(j)} wi+1=wiαijBn(wiTx(j)y(j))x(j)

只计算最小batch的梯度更新

  • 优点
    • 比SGD更大的计算量
    • 比GD更小的计算量
  • 缺点
    • 多了一个参数 batch size
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值