文章目录
一、调整learning rate
1.1 自适应学习率
- 刚开始,初始点距离最低点比较远,所以可以采用大一点的学习率
- 逐渐接近最低点时减少学习率
- 因此可以通过一些因子来减少学习率
- 例如 η t = η t / ( t + 1 ) 1 / 2 \eta^t=\eta^t/(t+1)^{1/2} ηt=ηt/(t+1)1/2
1.2 Adagrad算法
- 不同参数需要不同的学习率
- 每个参数的学习率都把它除以之前微分的均方根
- 比如,普通的梯度下降: w t + 1 = w t − η t g t w^{t+1}=w^t-\eta^tg^t wt+1=wt−ηtgt η t = η t / ( t + 1 ) 1 / 2 \eta^t=\eta^t/(t+1)^{1/2} ηt=ηt/(t+1)1/2 g t = ∂ L ( θ t ) / ∂ w g^t=\partial L(\theta^t) / \partial w gt=∂L(θt)/∂w
- 使用Adagrad:
w
t
+
1
=
w
t
−
η
t
g
t
/
σ
t
w^{t+1}=w^t-\eta^tg^t/\sigma^t
wt+1=wt−ηtgt/σt
σ t \sigma^t σt为该参数所有微分的均方根,因此对于每个参数都不一样
1.3 Adagrad算法存在的矛盾?
- 在 Adagrad 中,当梯度越大的时候,步伐应该越大,但下面分母又导致当梯度越大的时候,步伐会越小。所以如果踏出去的步伐和微分成正比,它可能是比较好的。因此得出结论:梯度越大,离最低点的距离越远。这个结论在多个参数的时候就不一定成立了。
- 最好的步伐应该是一次微分/二次微分
- 得到adagrad进一步的解释
二、随机梯度下降法
- 随机挑选一个例子来计算loss函数,赶紧更新参数
三、特征缩放
3.1 为什么要特征缩放?
- 个人认为可以按归一化理解,消除量纲的影响
3.2 怎么做缩放?
- 例子,类似标准化
四、梯度下降的理论基础
这部分挖个坑,回头再更