背景音乐:fish in the pool - ヘクとパスカル
学习计划:Deeplearning.ai学习计划
为什么要用优化算法
在大数据时代,数据的规模越来越大,训练模型的时间也越来越长,简单的梯度下降法已经不能满足我们的需求。
因此选用合适的优化算法,能够帮助你更快地训练模型。
Mini-batch梯度下降法
优势
在训练巨大的数据集的时候都会用到的一个技巧,比普通的梯度下降法(又称为Batch梯度下降法)运行更快。
原理
将数据集(包括总共m个训练样本)拆分成若干个子训练集,每个子训练集只经过少数几次迭代,遍历所有训练集,直到最后收敛到想要的精度。
理解
子训练集的大小是一个重要的参数。特别地,子训练集的大小为m时(相当于只有一个子训练集),就是Batch梯度下降法,训练比较久;大小为1时(相当于每个样本都是独立的子训练集),就是随机梯度下降法,训练很快,但是失去了向量化带来的好处。Mini-batch介于两者之间。
而选择哪种梯度下降法主要由数据的规模决定,规模小(小于2000个样本)的话用Batch梯度下降法,否则用Mini-batch梯度下降法会比较合适。然后每个子训练集的大小(推荐为2的倍数,一般为2^6至2^9次之间)也需要去尝试,从而让梯度下降法更加高效。
补充说明
由于子训练集都是随机选择的,因此每次迭代后的代价函数虽然整体走势是往下的,但是有大量噪音,不过不要紧。
参考资料:深度机器学习中的batch的大小对学习效果有何影响? - 知乎
待续……
网友评论