优化器参数

下面分别给出Adagrad、Adadelta和Adam算法的更新公式:

1. **Adagrad**(自适应梯度算法):

Adagrad是一种自适应学习率的优化算法,它会根据参数的历史梯度调整学习率,使得稀疏梯度的参数可以具有更大的学习率,而常见梯度的参数则会有较小的学习率。

Adagrad的更新公式如下:

\[
\theta_{t+1,i} = \theta_{t,i} - \frac{\eta}{\sqrt{G_{t,ii} + \epsilon}} \cdot g_{t,i}
\]

其中:
- \(\theta_{t,i}\) 是第 \(t\) 次迭代时参数 \(i\) 的值;
- \(g_{t,i}\) 是第 \(t\) 次迭代时参数 \(i\) 的梯度;
- \(G_{t,ii}\) 是前 \(t\) 次迭代时参数 \(i\) 的梯度的平方和的累积;
- \(\eta\) 是学习率;
- \(\epsilon\) 是为了避免除以零而添加的一个小的常数(通常取 \(10^{-8}\))。

2. **Adadelta**:

Adadelta是Adagrad的一种变体,它解决了Adagrad学习率过早衰减的问题,并且不需要手动设置全局学习率。

Adadelta的更新公式如下:

\[
\Delta \theta_{t} = -\frac{\sqrt{E[g^2]_{t-1} + \epsilon}}{\sqrt{E[\Delta \theta^2]_{t-1} + \epsilon}} \cdot g_t
\]

\[
\theta_{t+1} = \theta_{t} + \Delta \theta_{t}
\]

其中:
- \(g_t\) 是第 \(t\) 次迭代时的梯度;
- \(E[g^2]_{t-1}\) 是梯度平方的指数加权平均;
- \(E[\Delta \theta^2]_{t-1}\) 是参数变化量平方的指数加权平均;
- \(\epsilon\) 是为了数值稳定性而添加的一个小的常数。

3. **Adam**(Adaptive Moment Estimation):

Adam是一种结合了动量和自适应学习率的优化算法,它可以自适应地调整每个参数的学习率,并且具有动量的加速作用。

Adam的更新公式如下:

\[
m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t
\]

\[
v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2
\]

\[
\hat{m}_t = \frac{m_t}{1 - \beta_1^t}
\]

\[
\hat{v}_t = \frac{v_t}{1 - \beta_2^t}
\]

\[
\theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \cdot \hat{m}_t
\]

其中:
- \(m_t\) 是第 \(t\) 次迭代时的一阶矩(梯度的指数加权平均);
- \(v_t\) 是第 \(t\) 次迭代时的二阶矩(梯度平方的指数加权平均);
- \(\beta_1\) 和 \(\beta_2\) 是指数加权平均的衰减率;
- \(\hat{m}_t\) 和 \(\hat{v}_t\) 是对一阶矩和二阶矩的修正项;
- \(\eta\) 是学习率;
- \(\epsilon\) 是为了数值稳定性而添加的一个小的常数。

这些算法都是用于训练深度学习模型时常用的优化算法,具有不同的优缺点适用于不同的场景。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值