RMSProp(Root Mean Square Propagation)

RMSProp(Root Mean Square Propagation)

RMSProp(Root Mean Square Propagation)是一种自适应学习率优化算法,用于加速梯度下降过程并提高收敛性。它通过引入梯度的移动平均和学习率的自适应调整,使得参数更新能够更好地适应不同的梯度尺度。

RMSProp的原理

RMSProp 的核心思想是保持梯度平方的移动平均,并使用这个移动平均值来调整学习率,从而使参数更新更加稳定和高效。具体来说,RMSProp的更新公式如下:

  1. 计算梯度平方的移动平均
    E [ g 2 ] t = β E [ g 2 ] t − 1 + ( 1 − β ) g t 2 E[g^2]_t = \beta E[g^2]_{t-1} + (1 - \beta) g_t^2 E[g2]t=βE[g2]t1+(1β)gt2
    其中:
    - E [ g 2 ] t E[g^2]_t E[g2]t是第 t t t次迭代的梯度平方的移动平均。
    - β \beta β是衰减率,通常取值在0到1之间,控制移动平均的权重。
    - g t g_t gt是第 t t t次迭代的梯度。

  2. 更新参数
    θ t = θ t − 1 − α E [ g 2 ] t + ϵ g t \theta_t = \theta_{t-1} - \frac{\alpha}{\sqrt{E[g^2]_t + \epsilon}} g_t θt=θt1E[g2]t+ϵ αgt
    其中:
    - θ t \theta_t θt是第 t t t次迭代的参数。
    - α \alpha α是学习率。
    - ϵ \epsilon ϵ是一个小常数,用于防止除零错误,通常取 1 0 − 8 10^{-8} 108

具体数据示例

假设我们有一个简单的线性回归问题,训练数据集如下:

xy
12
23
34
45

我们要拟合的线性模型为 h ( θ ) = θ 0 + θ 1 x h(\theta) = \theta_0 + \theta_1 x h(θ)=θ0+θ1x

步骤1:初始化参数

假设 θ 0 = 0 \theta_0 = 0 θ0=0 θ 1 = 0 \theta_1 = 0 θ1=0,学习率 α = 0.01 \alpha = 0.01 α=0.01,衰减率 β = 0.9 \beta = 0.9 β=0.9,并且初始化梯度平方的移动平均 E [ g 2 ] 0 = 0 E[g^2]_0 = 0 E[g2]0=0

步骤2:计算梯度

损失函数 J ( θ ) J(\theta) J(θ)为均方误差(MSE):
J ( θ ) = 1 2 m ∑ i = 1 m ( h ( θ ) − y i ) 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h(\theta) - y_i)^2 J(θ)=2m1i=1m(h(θ)yi)2
其中, m m m是训练样本的数量。

对于第一个样本 ( x 1 , y 1 ) = ( 1 , 2 ) (x_1, y_1) = (1, 2) (x1,y1)=(1,2),模型预测值为:
h ( θ ) = θ 0 + θ 1 x 1 = 0 h(\theta) = \theta_0 + \theta_1 x_1 = 0 h(θ)=θ0+θ1x1=0

计算损失函数对参数的梯度:
∂ J ∂ θ 0 = h ( θ ) − y 1 = 0 − 2 = − 2 \frac{\partial J}{\partial \theta_0} = h(\theta) - y_1 = 0 - 2 = -2 θ0J=h(θ)y1=02=2
∂ J ∂ θ 1 = ( h ( θ ) − y 1 ) x 1 = − 2 ⋅ 1 = − 2 \frac{\partial J}{\partial \theta_1} = (h(\theta) - y_1) x_1 = -2 \cdot 1 = -2 θ1J=(h(θ)y1)x1=21=2

步骤3:更新梯度平方的移动平均和参数
  1. 更新梯度平方的移动平均:
    E [ g 2 ] 1 = β E [ g 2 ] 0 + ( 1 − β ) g 1 2 = 0.9 × 0 + 0.1 × ( − 2 ) 2 = 0.4 E[g^2]_1 = \beta E[g^2]_0 + (1 - \beta) g_1^2 = 0.9 \times 0 + 0.1 \times (-2)^2 = 0.4 E[g2]1=βE[g2]0+(1β)g12=0.9×0+0.1×(2)2=0.4

  2. 更新参数:
    θ 0 = θ 0 − α E [ g 2 ] 1 + ϵ g 1 = 0 − 0.01 0.4 + 1 0 − 8 × ( − 2 ) ≈ 0.01 \theta_0 = \theta_0 - \frac{\alpha}{\sqrt{E[g^2]_1 + \epsilon}} g_1 = 0 - \frac{0.01}{\sqrt{0.4 + 10^{-8}}} \times (-2) \approx 0.01 θ0=θ0E[g2]1+ϵ αg1=00.4+108 0.01×(2)0.01
    θ 1 = θ 1 − α E [ g 2 ] 1 + ϵ g 1 = 0 − 0.01 0.4 + 1 0 − 8 × ( − 2 ) ≈ 0.01 \theta_1 = \theta_1 - \frac{\alpha}{\sqrt{E[g^2]_1 + \epsilon}} g_1 = 0 - \frac{0.01}{\sqrt{0.4 + 10^{-8}}} \times (-2) \approx 0.01 θ1=θ1E[g2]1+ϵ αg1=00.4+108 0.01×(2)0.01

第二次迭代

假设下一次随机选择的样本是 ( x 2 , y 2 ) = ( 2 , 3 ) (x_2, y_2) = (2, 3) (x2,y2)=(2,3)

  1. 计算新的预测值:
    h ( θ ) = θ 0 + θ 1 x 2 = 0.01 + 0.01 × 2 = 0.03 h(\theta) = \theta_0 + \theta_1 x_2 = 0.01 + 0.01 \times 2 = 0.03 h(θ)=θ0+θ1x2=0.01+0.01×2=0.03

  2. 计算新的梯度:
    ∂ J ∂ θ 0 = h ( θ ) − y 2 = 0.03 − 3 = − 2.97 \frac{\partial J}{\partial \theta_0} = h(\theta) - y_2 = 0.03 - 3 = -2.97 θ0J=h(θ)y2=0.033=2.97
    ∂ J ∂ θ 1 = ( h ( θ ) − y 2 ) x 2 = − 2.97 × 2 = − 5.94 \frac{\partial J}{\partial \theta_1} = (h(\theta) - y_2) x_2 = -2.97 \times 2 = -5.94 θ1J=(h(θ)y2)x2=2.97×2=5.94

  3. 更新梯度平方的移动平均:
    E [ g 2 ] 2 = β E [ g 2 ] 1 + ( 1 − β ) g 2 2 = 0.9 × 0.4 + 0.1 × ( − 2.97 ) 2 = 0.9 × 0.4 + 0.1 × 8.8209 = 0.88209 + 0.36 = 1.24209 E[g^2]_2 = \beta E[g^2]_1 + (1 - \beta) g_2^2 = 0.9 \times 0.4 + 0.1 \times (-2.97)^2 = 0.9 \times 0.4 + 0.1 \times 8.8209 = 0.88209 + 0.36 = 1.24209 E[g2]2=βE[g2]1+(1β)g22=0.9×0.4+0.1×(2.97)2=0.9×0.4+0.1×8.8209=0.88209+0.36=1.24209

  4. 更新参数:
    θ 0 = θ 0 − α E [ g 2 ] 2 + ϵ g 2 = 0.01 − 0.01 1.24209 + 1 0 − 8 × ( − 2.97 ) ≈ 0.037 \theta_0 = \theta_0 - \frac{\alpha}{\sqrt{E[g^2]_2 + \epsilon}} g_2 = 0.01 - \frac{0.01}{\sqrt{1.24209 + 10^{-8}}} \times (-2.97) \approx 0.037 θ0=θ0E[g2]2+ϵ αg2=0.011.24209+108 0.01×(2.97)0.037
    θ 1 = θ 1 − α E [ g 2 ] 2 + ϵ g 2 = 0.01 − 0.01 1.24209 + 1 0 − 8 × ( − 5.94 ) ≈ 0.037 \theta_1 = \theta_1 - \frac{\alpha}{\sqrt{E[g^2]_2 + \epsilon}} g_2 = 0.01 - \frac{0.01}{\sqrt{1.24209 + 10^{-8}}} \times (-5.94) \approx 0.037 θ1=θ1E[g2]2+ϵ αg2=0.011.24209+108 0.01×(5.94)0.037

第三次迭代

假设下一次随机选择的样本是 ( x 3 , y 3 ) = ( 3 , 4 ) (x_3, y_3) = (3, 4) (x3,y3)=(3,4)

  1. 计算新的预测值:
    h ( θ ) = θ 0 + θ 1 x 3 = 0.037 + 0.037 × 3 = 0.148 h(\theta) = \theta_0 + \theta_1 x_3 = 0.037 + 0.037 \times 3 = 0.148 h(θ)=θ0+θ1x3=0.037+0.037×3=0.148

  2. 计算新的梯度:
    ∂ J ∂ θ 0 = h ( θ ) − y 3 = 0.148 − 4 = − 3.852 \frac{\partial J}{\partial \theta_0} = h(\theta) - y_3 = 0.148 - 4 = -3.852 θ0J=h(θ)y3=0.1484=3.852
    ∂ J ∂ θ 1 = ( h ( θ ) − y 3 ) x 3 = − 3.852 × 3 = − 11.556 \frac{\partial J}{\partial \theta_1} = (h(\theta) - y_3) x_3 = -3.852 \times 3 = -11.556 θ1J=(h(θ)y3)x3=3.852×3=11.556

  3. 更新梯度平方的移动平均:
    E [ g 2 ] 3 = β E [ g 2 ] 2 + ( 1 − β ) g 3 2 = 0.9 × 1.24209 + 0.1 × ( − 3.852 ) 2 = 1.117881 + 1.4849 = 2.602781 E[g^2]_3 = \beta E[g^2]_2 + (1 - \beta) g_3^2 = 0.9 \times 1.24209 + 0.1 \times (-3.852)^2 = 1.117881 + 1.4849 = 2.602781 E[g2]3=βE[g2]2+(1β)g32=0.9×1.24209+0.1×(3.852)2=1.117881+1.4849=2.602781

  4. 更新参数:
    θ 0 = θ 0 − α E [ g 2 ] 3 + ϵ g 3 = 0.037 − 0.01 2.602781 + 1 0 − 8 × ( − 3.852 ) ≈ 0.061 \theta_0 = \theta_0 - \frac{\alpha}{\sqrt{E[g^2]_3 + \epsilon}} g_3 = 0.037 - \frac{0.01}{\sqrt{2.602781 + 10^{-8}}} \times (-3.852) \approx 0.061 θ0=θ0E[g2]3+ϵ αg3=0.0372.602781+108 0.01×(3.852)0.061
    θ 1 = θ 1 − α E [ g 2 ] 3 + ϵ g 3 = 0.037 − 0.01 2.602781 + 1 0 − 8 × ( − 11.556 ) ≈ 0.071 \theta_1 = \theta_1 - \frac{\alpha}{\sqrt{E[g^2]_3 + \epsilon}} g_3 = 0.037 - \frac{0.01}{\sqrt{2.602781 + 10^{-8}}} \times (-11.556) \approx 0.071 θ1=θ1E[g2]3+ϵ αg3=0.0372.602781+108 0.01×(11.556)0.071

总结

RMSProp通过保持梯度平方的移动平均并使用它来调整学习率,使得参数更新更加稳定和高效。通过具体数据的示例,我们可以看到RMSProp如何在每次迭代中逐步计算移动平均并更新参数,从而加速模型的收敛。

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值