optimization problem
θ∗=argminθL(θ) θ ∗ = arg min θ L ( θ )
Tip 1: Tuning your Learning rates
- 1 small 如果步伐非常小 训练的时间会非常长。
- 2 large 如果步伐非常大 没有办法走到最低点。会在一个范围震荡
- 3 very large 如果步伐太大 loss很快就飞出去了。
visionlize loss 和 参数更新的关系。
- 1 learning rate 太小 loss下降非常慢
- 2 lerning rate 太大 loss下降非常快 但是很快就卡住。
- 3 learning rate 特别大 loss很快就飞出去了。
在做梯度下降的时候,最好把这个图画出来。否则你不知道这个梯度下降在哪里坏掉了。
Adaptive Learning Rates
Popular & Simple Idea: Reduce the learning rate by some factor every few epochs.
通常leaning rate 随着参数的update会减小。
- At the beginning, we are far from the destination, so we use larger learning rate(刚开始的时候,离最低点比较远,所以你的步伐需要大一点。)
- After several epochs, we are close to the destination, so we reduce the learning rate(经过几次更新之后呢,已经比较靠近目标了,这时候就应该减小learning rate)
- eg
ηt=η/t+1‾‾‾‾‾√ η t = η / t + 1
Learning rate cannot be one-size-fits-all
Giving different parameters different learning rates
不同的参数有不同的learning rate)
Adagrad
w1←w0−η0δ0g0δ0=(g0)2‾‾‾‾‾√ w 1 ← w 0 − η 0 δ 0 g 0 δ 0 = ( g 0 ) 2
w2←w1−η1δ1g1δ1=12[(g0)2+(g1)2]‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√ w 2 ← w 1 − η 1 δ 1 g 1 δ 1 = 1 2 [ ( g 0 ) 2 + ( g 1 ) 2 ]
w