Optimization algorithms
优化算法以加速训练。
Mini-batch gradient descend
- Batch gradient descend:每一小步梯度下降否需要计算所有的训练样本。很耗时。
- Mini-batch gradient descend:将训练集分为很多小的mini-batch,每一个epoch用到一个mini-batch的训练样本,进行一次梯度下降(向前传播,计算cost,向后传播)。训练速度会提升很多。
选择mini-batch的size
如果size=1:随机梯度下降,过程会曲折反复,不收敛,在最优值附近徘徊(紫色线)。一个很大的缺点在于每次只处理一个样本,失去了向量化的提升效率的作用。
- 如果size=m:批梯度下降,过程比较直接但是每步都很耗时。(蓝色线)
size适中,则可以既利用到向量化的作用,又每一步下降不需要耗时过长,因此效率较高。(绿色线)
size选择大致原则:
- 如果训练集很小(如m <= 2000):Batch gradient descend
- 如果训练集相对大,那么典型的mini-batch的大小如:64,128,256,512。考虑到计算机的内存,所以常用的mini-batch都是2的次方。
- 确保mini-batch和计算机CPU/GPU的内存相适应。
mini-batch size是需要调整的超参数之一,尝试不同的值,然后选择一个最好的。
(未完待续)