2.14 向量化 logistic 回归的梯度输出(Vectorizing Logistic Regression’s Gradient)

如何向量化计算的同时,对整个训练集预测结果a,这是我们之前已经讨论过的内容。在本次视频中我们将学习如何向量化地计算m个训练数据的梯度,本次视频的重点是如何同时计算 m 个数据的梯度,并且实现一个非常高效的逻辑回归算法(Logistic Regression)。



上述(伪)代码就是我们在之前实现中做的,我们已经去掉了一个for循环,但用上述方法计算 dw 仍然需要一个循环遍历训练集,我们现在要做的就是将其向量化!

现在,让我们回顾一下,看看我们之前怎么实现的逻辑回归,可以发现,没有向量化是非常低效的,如下图所示代码:


现在我们利用前五个公式完成了前向和后向传播,也实现了对所有训练样本进行预测和求导,再利用后两个公式,梯度下降更新参数。我们的目的是不使用for循环,所以我们就通过一次迭代实现一次梯度下降,但如果你希望多次迭代进行梯度下降,那么仍然需要for循环,放在最外层。不过我们还是觉得一次迭代就进行一次梯度下降,避免使用任何循环比较舒服一些。

最后,我们得到了一个高度向量化的、非常高效的逻辑回归的梯度下降算法,我们将在下次视频中讨论Python中的Broadcasting技术。