【课程笔记】2.2 优化算法

背景音乐: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的大小对学习效果有何影响? - 知乎


待续……

你可能感兴趣的:(【课程笔记】2.2 优化算法)