机器学习系列25:随机梯度下降算法

时间:2019-07-25 来源:www.ouchun.net

如今,机器学习的数据集已经达数千万或数亿。如果我们使用之前学过的批量梯度下降算法,我们会发现效率非常低,因为当梯度下降时,必须为每个周期执行所有数据。总结一下,这会浪费很多时间。有没有更好的方法来处理大数据?答案是肯定的。在处理大数据时,我们选择随机梯度下降。

以下是随机梯度下降算法的成本函数:

b34fb9ee9f5c4061901805730dccf280

接下来是随机梯度下降算法:

ed85ebe575494434ab2e1fed13685e8c

首先,我们需要随机混淆所有数据集,然后我们到达算法的核心。该算法有两层循环。外环通常有1-10次。具体数量取决于问题。内部循环遍历所有数据集一次。与批量梯度下降算法相比,它不需要每次遍历数据集。

我们可以在图表上绘制批量梯度下降算法和随机梯度下降算法:

999ff5baed9f4da4a0b2ea80cdfdd81a

红色路径是批量梯度下降算法的收敛路径,粉红色是随机梯度下降算法的收敛路径。可以看出,随机梯度下降算法不一定每次都收敛,但总体将在收敛方向上进行并最终收敛到全局最小值。