一、随机梯度下降算法
之前了解的梯度下降是指批量梯度下降;如果我们一定需要一个大规模的训练集,我们可以尝试使用随机梯度下降法(SGD)来代替批量梯度下降法。
在随机梯度下降法中,我们定义代价函数为一个单一训练实例的代价:
随机梯度下降算法为:首先对训练集随机“洗牌”,然后:
下面是随机梯度下降算法的过程以及和批量梯度下降算法的异同:
随机梯度下降算法是先只对第1个训练样本计算一小步的梯度下降,即这个过程包括调参过程,然后转向第2个训练样本,对第2个训练样本计算一小步的梯度下降,这个过程也包括调参,接着转向第3个训练样本.......
批量梯度下降和随机梯度下降算法的收敛过程是不同的,实际上,随机梯度下降是在某个靠近全局最小值的区域内徘徊,而不是真的逼近全局最小值并停留在那个点,不过其最终也会得到一个很接近全局最小值的参数。这对于绝大多数的实际应用的目的来说,已经足够了。
随机梯度下降算法收敛比较快。
二、随机梯度下降算法的收敛
在批量梯度下降中,我们可以令代价函数