优化算法

随机梯度

$$x_t = x{t-1}+\eta \nabla f(x)$$

小批量随机梯度下降

$$x_t=x_{t-1}+\frac{1}{m}\sum_i^m\nabla f(x^i)$$

动量法

$$v_t=v_{t-1}+g_t$$

$$x_t=x_{t-1}+v_t$$

如果当前某个方向梯度和上一个方向不一致,则会衰减,如果一致则会得到加强

Adagrad

自动调整学习率,通过不断累积梯度,梯度累积多少用以调整后期的学习率

$$s_t = s_{t-1}+g_t \bigodot g_t$$

$$x_t = x_{t-1}- \sqrt{\frac{\eta}{s_t+\epsilon}}g_t$$

RMSProp

在Adagrad基础上,元素带参数指数加权平均,具体的就是在梯度累积s前面加$\gamma$,梯度累积的时候有方向

$$s_t = \gamma s_{t-1}+(1-\gamma)g_t \bigodot g_t$$

$$x_t = x_{t-1}+\sqrt \frac{\eta}{s_t+\epsilon}g_t$$

Adadelta

$$s_t=s_{t-1}+ (1-\gamma )g_t \bigodot g_t$$

$$g_t`=\sqrt \frac{\nabla x+\epsilon}{s_t + \epsilon}\bigodot g_t$$

$$x_t = x_{t-1}+g_t`$$

$$\nabla x​$$按元素加权平均

$$\nabla x = \rho \nabla x +(1-\rho)g_t\bigodot g_t$$

Adam

结合动量法和自动调整学习率

$$v_t = (\beta_1)v_{t-1} + 1-\beta_1)g_t$$

$$s_t = \beta_2s_{t-1}+(1-\beta_2)g_t \bigodot g_t$$

$$x_t = x_{t-1} + \sqrt{\frac{\eta}{s_t+\epsilon}}v_t$$

以上推倒中x代表参数,t代表一步迭代,t-1代表前一时刻迭代,v代表梯度的惯量,g代表梯度