Deep Learning (3) - Optimization Algorithms
Posted on
Edited on
Batch. vs. Mini-Batch
机器学习算法通常会有大量的training sample需要处理,这个数字可能是百万量级,甚至更高。这会导致矩阵迭代的时候,计算时间过长。当sample数达到一定数量的时候,通常会采用将整个训练集,分成若干小集合,即mini-batch,采用迭代的方法来计算。这样就将一次矩阵运算串行化,降低运算复杂度,速度会大幅提升。缺点是收敛会困难一些。看下图:
How to choose mini-batch size?
- If small training set (m 2000), use batch gradient descent.
- Typical mini-batch size: 64, 128, 256, 512, -> ~
- Make sure mini-batch size fit your CPU/GPU memory.
Learning Rate Decay
动态调整learning rate的算法有很多种,下面这种是比较常用的
随着epoch_num越来越大,越来越小。
Other learning rate decay methods:
- discrete stair case
- manual decay
指数加权平均相关算法
Momentum, RMSprop, Adam都是和指数加权平均算法(Exponential Weighted Average)相关的。下面一一介绍:
Exponential Weighted Average
公式是:
- 蓝点是原始数据
- 红线采用,累积前10个数据的影响
- 绿线采用,累积前20个数据的影响
- 黄线采用,累积前2个数据的影响
可见,采用指数加权平均后,数据变平滑,且越大,数据越平滑,越小,数据越趋近于原始数据。
How it works?
其工作原理如下图:
Bias Correction Exponential Weighted Average
之所以有这个bias correction,因为这个指数加权的初始值选的是0,造成开始一段的迭代,会偏离真实值较远。例如下面绿线和紫线。
Momentum
Momentum就是指数加权平均算法的一种应用。
RMSprop (Root Mean Square prop)
RMSprop是根据Momentum衍生出来的算法。具体做法如下:
On iteration t:
- Compute dw and db on current mini-batch
为了区分Momentum和Exponential Weighted Average中的hyper parameter ,此处用
Adam optimization algorithm
Adam = Adaptive Moment Estimation
Adam = Momentum + Bias Correction + RMSprop
具体算法如下:
On iteration t:
- Compute dw and db on current mini-batch
- ,
- ,
- ,
- ,
Hyper parameters (通常去经验值)
Local Optima Problem
Andrew解释了,在现代的机器学习问题中,不太可能出现local optima