-
- 词汇
- 前言
- 1. Mini-batch gradient descent
- 2.Understanding mini-batch gradient descent
- 3.指数加权平均Exponentially weighted averages
- 4.Understanding exponentially weighted averages
- 5.偏差纠正Bias correction in exponentially weighted averages
- 6.动量梯度下降法Gradient descent with momentum
- 7.RMSprop
- 8.自适应矩估计Adam optimization algorithm
- 9.[番外]不同优化算法的对比
- 10.学习率衰减Learning rate decay
- 11.The problem of local optima
- 12.小测题目
- 13.Programming assignment
词汇
单词 | 中文解释 |
---|---|
Exponentially | adv. 以指数方式 |
correction | n. 改正,修正 |
momentum | n. 势头;[物] 动量 |
local optima | [专]局部最优 |
前言
学习目标
- 学习随机梯度下降SGD,动量Momentum,RMSProp,Adam等算法
- 使用随机bathches来加速收敛和改进优化
- 了解学习率衰减的益处,并将它应用到优化算法中
1. Mini-batch gradient descent
小批量梯度下降(算法)
【相对的,Batch gradient descent.是一次处理整个训练集】
Vectorization化,将样本数据全部放到一个大矩阵中,不使用for-loop可以提升计算的速度。然后如果m非常大(比如100w以上的样本),速度依然会很慢。
处理方式:假设有500w的训练样本。可以将大批量的样本拆分成小批量训练集(mini-batch)。每个训练集只有1000左右的样本。总共分成5000组训练集。同时将Y也同样分成5000组。
for t=1,….,5000:
Forward propagation on X{t}
[Vectorized implement 1000 example]
Z[1]=W[1]X{t}+b[1]
A[1]=g1
…
A[L]=gL
Compute Cost J=(1/1000)sum(L(y_pred,y))+正则项
Backpropagation to comput gradients J{t}的梯度
事实上从Batch改为mini-batch算法上没有变化。只是将全训练集改为mini-batch,m由全训练集的样本总数替换为小训练集的样本数,在这之上套一个循环遍历每一个mini-batch.
2.Understanding mini-batch gradient descent
如上左图:全批量训练梯度下降曲线,是单调下降的,如果有出现上升那肯定哪里有错误
如上右图:mini-batch训练梯度下降的曲线,不同的mini-batch是不同的训练样本,会给下降曲线带来一定的噪音。随着轮数(全样本训练一次为一轮)不断增加,总体cost也是往下降的趋势。
Choosing your mini-batch size
mini-batch size=1,即一批次只训练一个样本的缺点:
1. 无法利用cpu/gpu对向量化计算的加速
2. 噪声太大,梯度下降并不是指向最低点,虽然总体趋势是下降,但会非常曲折,这反而会损耗时间。
3. 可能永远无法收敛,而是在最优解附近一直徘徊。
选择size的法则:
- 如果你训练集较小,就直接用Batch gradient descent.[m<2000]
- 选择mini-batch size大小为2的幂数64,128,254,512之间,这根据内存或gpu现存的大小来调整设定。[m>2000]
- 确保你的mini-batch数据能放进内存或显存。
- mini-batch size也是一个超参数,选择的好能让J更快的下降。
3.指数加权平均Exponentially weighted averages
(统计学:EWMA(Exponentially Weighted Moving Average)指数加权平滑平均,是一种常用的序列数据处理方式。)
假设伦敦一年的气温: θ1=40,θ2=49,θ3=45,...θ180=60,...θ365=39 θ 1 = 40 , θ 2 = 49 , θ 3 = 45 , . . . θ 180 = 60 , . . . θ 365 = 39 单位华氏度(F)
重新加权计算每一天的温度值,如下:
V0=0 V 0 = 0
V1=0.9V0+0.1θ1 V 1 = 0.9 V 0 + 0.1 θ 1
V2=0.9V1+0.1θ2 V 2 = 0.9 V 1 + 0.1 θ 2
V3=0.9V2+0.1θ3 V 3 = 0.9 V 2 + 0.1 θ 3
…
Vt=0.1θt+0.1⋅(0.9)1θt−1+0.1⋅(0.9)2θt−2+0.1⋅(0.9)3θt−3+0.1⋅(0.9)4θt−4+...+0.1⋅(0.9)nθt−n V t = 0.1 θ t + 0.1 ⋅ ( 0.9 ) 1 θ t − 1 + 0.1 ⋅ ( 0.9 ) 2 θ t − 2 + 0.1 ⋅ ( 0.9 ) 3 θ t − 3 + 0.1 ⋅ ( 0.9 ) 4 θ t − 4 + . . . + 0.1 ⋅ ( 0.9 ) n θ t − n
Vt V t 近似于 11−β 1 1 − β 天的温度均值。
情形 | 图例 |
---|---|
365天温度图 | |
β=0.9红色线 β=0.98绿色线 |
50天均值线比10天均值线更平滑,并且会向后移动。
4.Understanding exponentially weighted averages
根据上一节所描述公式,我们将任意 Vt V t 展开如下:
Vt=(1−β)θt+(1−β)⋅(β)1θt−1+(1−β)⋅(β)2θt−2+(1−β)⋅(β)3θt−3+...+(1−β)⋅(β)nθt−n V t = ( 1 − β ) θ t + ( 1 − β ) ⋅ ( β ) 1 θ t − 1 + ( 1 − β ) ⋅ ( β ) 2 θ t − 2 + ( 1 − β