回归|深度学习(李宏毅)(一)

1. 偏差和方差

  • 欠拟合的loss主要来自偏差

  • 过拟合的loss主要来自方差

  • 应对大的偏差的方法:

    1. 增加更多特征作为输入
    2. 使用更复杂的模型
  • 应对大的方差的方法:

    1. 更多数据
    2. 正则化
  • k折交叉验证

2. 梯度下降

  • Adagrad

二次微分大的点梯度虽然大但是可能会比梯度小的点离极值点更近,因此学习率需要考虑二次微分的影响,除以所有梯度的均方根是为了近似表示二次微分。

Adagrad

  • RMSProp

类比Adagrad的一种优化方法,与Adagrad不同的是学习率所除的分母。Adagrad学习率所除的分母会无限累加,导致后期参数更新幅度很小,RMSProp避免了这个问题。然而RMSProp无法解决卡在鞍点的问题。

RMSProp

  • SGD(随机梯度下降)

  • SGDM

为梯度下降加入一个冲量,每次迭代移动的方向为梯度的反方向向量加上上次移动的方向向量,向量前面可能会有系数。

SGDM

  • Adam

结合RMSProp和SGDM两种算法优点的一种优化算法。m和v需要除上1-β是为了前期的纠偏。分母加上一个ε是为了防止分母下溢到0导致学习率是未定义的。

Adam

  • Adam vs SGDM

Adam:训练速度快但是泛化误差大、不稳定。
SGDM:稳定、泛化误差小、更好的收敛性。

训练函数和测试函数

  • 改善Adam

   (1). AMSGrad

AMSGrad

   (2). AdaBound

AdaBound

  • 改善SGD

   (1). Cyclical LR

Cyclical LR

   (2). SGDR

SGDR

   (3). One-cycle LR

One-cycle LR

  • 特征缩放

特征缩放

  • 泰勒级数解释梯度下降

将loss函数在当前θ处进行泰勒展开,当参数位于当前θ处附近时,泰勒级数的二阶及以上的项可以忽略不计,由此可以解释当将参数沿梯度反方向调整的时候可以使得loss减小。注意一定保证学习率足够小,否则泰勒展开的高阶项是不可以忽略的。