5种梯度下降法的公式推演:
1. 梯度下降 (Gradient Descent)
梯度下降法的更新公式为:
θ t + 1 = θ t − η ∇ θ J ( θ ) \theta_{t+1} = \theta_t - \eta \nabla_\theta J(\theta) θt+1=θt−η∇θJ(θ)
其中, θ t \theta_t θt 是当前参数, η \eta η 是学习率, J ( θ ) J(\theta) J(θ) 是损失函数, ∇ θ J ( θ ) \nabla_\theta J(\theta) ∇θJ(θ) 是损失函数关于参数的梯度。
通俗解释:这就像是一个人在下山,他每一步都选择最陡峭的方向(梯度的反方向)走一步,直到走到山脚(损失函数的最小值)。
2. Momentum
Momentum的更新公式为:
v t = γ v t − 1 + η ∇ θ J ( θ ) v_t = \gamma v_{t-1} + \eta \nabla_\theta J(\theta) vt=γvt−1+η∇θJ(θ)
θ t + 1 = θ t − v t \theta_{t+1} = \theta_t - v_t θt+1=θt−vt
其中, v t v_t vt 是速度, γ \gamma γ 是动量因子。
通俗解释:这就像是一个人在滑冰,他每一步都会考虑上一步的速度和方向,然后再根据当前的梯度来调整自己的速度和方向。这样可以让他在下山的过程中更加平稳和快速。
3. AdaGrad
AdaGrad的更新公式为:
G t = G t − 1 + ∇ θ J ( θ ) ⊙ ∇ θ J ( θ ) G_t = G_{t-1} + \nabla_\theta J(\theta) \odot \nabla_\theta J(\theta) Gt=Gt−1+∇θJ(θ)⊙∇θJ(θ)
θ t + 1 = θ t − η G t + ϵ ⊙ ∇ θ J ( θ ) \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{G_t + \epsilon}} \odot \nabla_\theta J(\theta) θt+1=θt−Gt+ϵη⊙∇θJ(θ)
其中, G t G_t Gt 是梯度平方的累积, ⊙ \odot ⊙ 表示元素乘法, ϵ \epsilon ϵ 是一个很小的数,用来防止分母为0。
通俗解释:这就像是一个人在下山,他每一步都会根据之前走过的路的坡度(梯度的平方)来调整自己的步伐大小。如果之前走过的路很陡峭,他就会走得小心一些(步伐小一些)。
4. RMSProp
RMSProp的更新公式为:
E [ g 2 ] t = γ E [ g 2 ] t − 1 + ( 1 − γ ) ∇ θ J ( θ ) ⊙ ∇ θ J ( θ ) E[g^2]_t = \gamma E[g^2]_{t-1} + (1 - \gamma) \nabla_\theta J(\theta) \odot \nabla_\theta J(\theta) E[g2]t=γE[g2]t−1+(1−γ)∇θJ(θ)⊙∇θJ(θ)
θ t + 1 = θ t − η E [ g 2 ] t + ϵ ⊙ ∇ θ J ( θ ) \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{E[g^2]_t + \epsilon}} \odot \nabla_\theta J(\theta) θt+1=θt−E[g2]t+ϵη⊙∇θJ(θ)
其中, E [ g 2 ] t E[g^2]_t E[g2]t 是梯度平方的指数移动平均。
通俗解释:这就像是一个人在下山,他每一步都会根据最近走过的路的坡度(梯度的平方)来调整自己的步伐大小,而不是像AdaGrad那样考虑整个历史。这样可以让他更加适应当前的地形。
5. Adam
Adam的更新公式为:
m t = β 1 m t − 1 + ( 1 − β 1 ) ∇ θ J ( θ ) m_t = \beta_1 m_{t-1} + (1 - \beta_1) \nabla_\theta J(\theta) mt=β1mt−1+(1−β1)∇θJ(θ)
v t = β 2 v t − 1 + ( 1 − β 2 ) ∇ θ J ( θ ) ⊙ ∇ θ J ( θ ) v_t = \beta_2 v_{t-1} + (1 - \beta_2) \nabla_\theta J(\theta) \odot \nabla_\theta J(\theta) vt=β2vt−1+(1−β2)∇θJ(θ)⊙∇θJ(θ)
m ^ t = m t 1 − β 1 t \hat{m}_t = \frac{m_t}{1 - \beta_1^t} m^t=1−β1tmt
v ^ t = v t 1 − β 2 t \hat{v}_t = \frac{v_t}{1 - \beta_2^t} v^t=1−β2tvt
θ t + 1 = θ t − η v ^ t + ϵ m ^ t \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t θt+1=θt−v^t+ϵηm^t
其中, m t m_t mt 和 v t v_t vt 分别是梯度和梯度平方的指数移动平均, β 1 \beta_1 β1 和 β 2 \beta_2 β2 是衰减率, m ^ t \hat{m}_t m^t 和 v ^ t \hat{v}_t v^t 是对 m t m_t mt 和 v t v_t vt 的偏差修正。
通俗解释:Adam就像是一个结合了Momentum和RMSProp优点的下山者。他既考虑了之前的速度和方向(Momentum),又根据最近走过的路的坡度来调整自己的步伐大小(RMSProp)。而且,他还会对自己的速度和坡度进行偏差修正,让自己更加准确地朝着山脚前进。