开公众号啦,分享读书心得,欢迎一起交流成长。
Andrew CS230: Deep Learning课程笔记。Logistic Regression with a Neural Network mindset
LR由输入到Loss,可看做简易神经网络的前向传播。其计算过程可用计算图表示:
lr-computation-graph
其中z
和线性回归的输出是完全一致的。$\hat y = a = \sigma(z)$,a
作为activation的简写,和神经网络的激活函数保持一致。$\sigma$表示sigmoid函数,是激活函数的一种。
LR由Loss对变量求导,可看做简易神经网络的反向传播。其计算过程可用计算图表示:
lr-derivative
利用链式求导法则,a
和z
都是中间变量,最后对w
和b
求导。注意$a=\sigma(z)$的导数是$a(1-a)$,简单也好推导,记住即可。
对多个training sample,用循环性能很差,利用科学计算的向量化。通过推导得到$dz = A - Y$,然后计算$dw = \frac{1}{m}X dz^T$和$db = \frac{1}{m} np.sum(dz)$。关于$\frac{1}{m}$可这样理解,每一个样本在对梯度计算都有贡献,取平均值。
lr-vectorization
求出中间量$dz$,然后计算$dw$和$db$。
lr-vectorization-1
注意此时$db$是(1, 1),而$dw$是(n, 1)。
lr-impl
每次迭代,更新$w$和$b$,直到满足退出条件。