机器学习之梯度下降(BGD,SGD, MBGD)

梯度下降

(批量)梯度下降法(BGD)

1. 递推公式推导过程

通过多项式对函数进行逼近的方法得到
f ( x ) = f ( x 0 ) + f ′ ( x 0 ) 1 ! ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + ⋯ + f ( n ) ( x 0 ) n ! ( x − x 0 ) n + R n ( x ) f(x)=f(x_0)+\frac{f'(x_0)}{1!}(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^2+\dots+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n+R_n(x) f(x)=f(x0)+1!f(x0)(xx0)+2!f(x0)(xx0)2++n!f(n)(x0)(xx0)n+Rn(x)

f ( x ) ≈ f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) f(x)≈f(x_0)+f'(x_0)(x-x_0) f(x)f(x0)+f(x0)(xx0)
其中令 Δ x = x − x 0 \Delta x=x-x_0 Δx=xx0,则有
f ( x ) ≈ f ( x 0 ) + Δ x ∇ f ( x 0 ) f(x)≈f(x_0)+\Delta x\nabla f(x_0) f(x)f(x0)+Δxf(x0)
则得到
f ( x ) − f ( x 0 ) = Δ x ∇ f ( x 0 ) f(x)-f(x_0)=\Delta x\nabla f(x_0) f(x)f(x0)=Δxf(x0)
其实 Δ x \Delta x Δx ∇ f ( x 0 ) \nabla f(x_0) f(x0)都是向量,因此需要 f ( x ) − f ( x 0 ) f(x)-f(x_0) f(x)f(x0)最小,只有当 Δ x \Delta x Δx ∇ f ( x 0 ) \nabla f(x_0) f(x0)两个方向相反,故有
Δ x = − α ∇ f ( x 0 )         α > 0 \Delta x=-\alpha \nabla f(x_0)~~~~~~~\alpha >0 Δx=αf(x0)       α>0
最终得到梯度下降法的递推公式为
x : = x − α ∇ f ( x ) x:=x-\alpha \nabla f(x) x:=xαf(x)

2. 求解最小二乘问题(采用梯度下降算法求解线性回归模型最优解)
  • 线性回归模型
    f ω ( x ) = ω 0 + ω 1 x + ⋯ + ω d x d f_\omega(x)=\omega_0+\omega_1x+\dots+\omega_dx_d fω(x)=ω0+ω1x++ωdxd
    其中d表示有d个特征.
  • 损失函数
    J ( ω ^ ) = 1 2 m ∑ i = 1 m ( X i ω ^ − y i ) 2 J(\widehat{\omega})=\frac{1}{2m}\sum\limits_{i=1}^m(X_i\widehat{\omega}-y_i)^2 J(ω )=2m1i=1m(Xiω yi)2
    其中m表示有m个样本点.
  • 使用梯度下降最小化损失函数,求解最优解

根据梯度下降递推公式有
ω ^ : = ω ^ − α ∂ J ( ω ^ ) ∂ ω ^ \widehat{\omega}:=\widehat{\omega}-\alpha\frac{\partial{J(\widehat{\omega})}}{\partial{\widehat{\omega}}} ω :=ω αω J(ω )

ω ^ : = ω ^ − α m X T ( X ω ^ − y ) = ω ^ − α m ∑ i = 1 m ( X i ω ^ − y i ) X i T \widehat{\omega}:=\widehat{\omega}-\frac{\alpha}{m}X^T(X\widehat{\omega}-y)=\widehat{\omega}-\frac{\alpha}{m}\sum\limits_{i=1}^m(X_i\widehat{\omega}-y_i)X_i^T ω :=ω mαXT(Xω y)=ω mαi=1m(Xiω yi)XiT

3. 优点

此时时间复杂度为 O ( m d ) O(md) O(md),迭代次数少

4. 缺点

每次迭代都要用到训练集所有的数据,因此当数据量大的时候迭代速度会很慢

随机梯度下降(SGD)

通过观察发现 1 m ∑ i = 1 m ( X i ω ^ − y i ) X i T \frac{1}{m}\sum\limits_{i=1}^m(X_i\widehat{\omega}-y_i)X_i^T m1i=1m(Xiω yi)XiT相当于是所有训练集样本点的均值

z i = ( X i ω ^ − y i ) X i T z_i=(X_i\widehat{\omega}-y_i)X_i^T zi=(Xiω yi)XiT,每个样本点i选取的概率为 1 m \frac{1}{m} m1,则有
E i ( z i ) = 1 m ∑ i = 1 m ( X i ω ^ − y i ) X i T E_i(z_i)=\frac{1}{m}\sum\limits_{i=1}^m(X_i\widehat{\omega}-y_i)X_i^T Ei(zi)=m1i=1m(Xiω yi)XiT
故随机梯度下降法的递推公式为
ω ^ : = ω ^ − α ( X j ω ^ − y j ) X j T \widehat{\omega}:=\widehat{\omega}-\alpha(X_j\widehat{\omega}-y_j)X_j^T ω :=ω α(Xjω yj)XjT

1. 优点

每次迭代使用随机的一个样本来对参数进行更新,使得训练速度加快,此时的时间复杂度为 O ( d ) O(d) O(d)

2. 缺点
  1. 准确度下降,当目标函数为强凸函数的情况下,无法做到线性收敛
  2. 可能会收敛到局部最优
  3. 迭代次数比BGD多

小批量梯度下降法(MBGD)

鉴于BGD,SGD的优缺点,提出每次迭代使用部分样本来对参数进行更新,故MBGD的迭代公式为
ω ^ : = ω ^ − α # J ∑ j ∈ J ( X j ω ^ − y j ) X j T \widehat{\omega}:=\widehat{\omega}-\frac{\alpha}{\# J}\sum\limits_{j\in J}(X_j\widehat{\omega}-y_j)X_j^T ω :=ω #JαjJ(Xjω yj)XjT

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值