梯度下降是一种迭代优化算法,用于最小化各种机器学习算法中的成本函数。
梯度下降的类型
1、批量梯度下降
为梯度下降的每次迭代处理所有训练示例。但是如果训练样本的数量很大,那么批量梯度下降在计算成本上是非常昂贵的。
因此,如果训练示例的数量很大,那么批量梯度下降不是首选。相反,随机梯度下降或小批量梯度下降会更适合。
2、随机梯度下降
每次迭代处理一个训练示例,即使仅仅处理了一个示例的一次迭代之后,参数也会被更新。
因此,运算速率比批量梯度下降要快得多。但是同样的,当训练示例集的数量很大时,基于随机梯度下降原理,导致迭代次数变多,还是会给系统带来额外的开销。
3、小批量梯度下降
结合了批量梯度下降和随机梯度下降,在计算效率和速度上更加快捷。它适用于大型的训练示例,并且迭代次数也更少。
梯度下降不同变体的收敛趋势
在批量梯度下降的情况下,算法沿着一条直线走向最小值。如果成本函数是凸的,那么它会收敛到全局最小值,如果成本函数不是凸的,那么它会收敛到局部最小值。这里学习率通常保持不变。
在随机梯度下降和小批量梯度下降的情况下,算法不会收敛,而是继续在全局最小值附近波动。因此,为了使其收敛,我们必须慢慢改变学习率。然而,随机梯度下降的收敛噪声更大,因为在一次迭代中,它只处理一个训练样本。