2019-01-29 小批量梯度下降

小批量梯度下降有时候甚至比随机梯度下降还要快一点,每次迭代使用b个样本,b是一个叫做"小批量规模"的参数。b的一个标准的取值可能是2到100之间的任何一个数,常用的数字是10。

小批量梯度下降算法思想是每次用b个样本而不是每次用1个或者m个样本进行迭代。如果是10个样本,最多索引值达到(x(i+9),y(i+9)),用这10个样本做一个实际上是梯度下降的更新。

小批量梯度下降算法
小批量梯度下降算法

相比批量梯度下降,小批量梯度下降算法也让进展快很多。每处理了前10个样本之后就开始优化参数θ,不需要扫描整个训练集,只要每处理10个样本然后这可以让参数有所改进。

相比随机梯度下降,每次处理b个样本而不是像随机梯度下降一样每次处理一个样本可以实现向量化,仅当你有好的向量化实现时, 10个样本求和可以用一种更向量化的方法实现,允许你部分并行计算10个样本的和,有时可以使用数值代数库来部分地并行计算b个样本,然而只处理一个样本没有太多的并行计算,至少并行计算更少,这回带来计算速度的影响。

小批量梯度下降的一个缺点是有一个额外的参数b,调试小批量大小会需要一些时间。但是如果你有一个好的向量化实现这种方法有时甚至比随机梯度下降更快。

你可能感兴趣的:(2019-01-29 小批量梯度下降)