首页 🌀深度学习

欢迎回到目录查看更多总结:【deeplearning.ai】吴恩达深度学习课程笔记目录


按照吴恩达老师的话讲,反向传播的数学推导过程实际上是他看过的最复杂的数学之一,涉及线性代数 矩阵 导数 链式法则等等,如果你微积分专家,你可以尝试从头进行数学推导,这是机器学习领域最难的推导之一。不管怎样,如果能实现这些方程,相信能让你有足够的直觉来调整神经网络并使其工作。

一、前向传播公式的回顾

$$Z^{[1]}=W^{[1]}X+b^{[1]}$$

$$A^{[1]}=\sigma(Z^{[1]})$$

$$Z^{[2]}=W^{[2]}A^{[1]}+b^{[2]}$$

$$A^{[2]}=\sigma(Z^{[2]})$$

二、反向传播的梯度下降算法

$$dz^{[2]}=A^{[2]}-y$$

$$dw^{[2]}=\frac{1}{m} dz^{[2]} {A^{[1]}}^T$$

$$db^{[2]}=\frac{1}{m} np.sum(dz^{[2]}, axis=1, keepdims=True)$$

$$dz^{[1]}={w^{[2]}}^Tdz^{[2]}*g^{[1]'}(z^{[1]})$$

$$dw^{[1]}=\frac{1}{m} dz^{[1]}X^T$$

$$db^{[1]}=\frac{1}{m} np.sum(dz^{[1]}, axis=1, keepdims=True)$$

直观理解反向传播

在逻辑回归中,求导的核心是链式法则,很容易得到每一个参数的导数值。
$$da=-\frac{y}{a}+\frac{1-y}{1-a}$$

$$dz=a-y$$

$$dw=xdz$$

$$db=dz$$

在这里插入图片描述
在一个隐藏层的神经网络中,其实是重复了两次逻辑回归,那么应该如何求得梯度?
下图中紫色框为6个核心公式,红色框为$dz^{[1]}$的维度检查。
在这里插入图片描述
事实上,训练的数据同样是多个样本(将向量以列堆积,在公式中的体现是小写变量名改大写),所以总结一下反向传播的计算公式。
在这里插入图片描述



文章评论