参数的初始化
搭建深层的神经网络,各层W,X,B的维度一定要搞清楚
如上图所示,第i层W的维度为(n^[i],n^[i-1])
其中12288是特征数量,209是样本数,n^[i]是第i层神经元的数量。
1 |
|
Forward Propagation
实现Relu或者sigmoid激活函数
1 | def sigmoid(Z): |
以下是linear_activation_forward的函数
1 |
|
对于L层网络的forwarding
前L-1层作Relu变换,最后一层做sigmoid变换(由于是二分类)
1 |
|
在这里你得到的AL就是经过L曾训练后的parameters,可以用来测试结果,同时所有中间结果都保存在了caches中。
cost function
1 |
|
backward propagation
要通过计算dL/dz 来算出dw,dAprev,db 来进行梯度下降
假设已知第l层的dZ,同时我们在做forward propagation的时候把对应该层的A_PREV,W已经存起来了
两个辅助函数
1 |
|
linear backward
计算公式如上图所示
1 | def linear_backward(dZ, cache): |
linear_activation_backward
那么上一个函数的dZ又是怎么计算?
我们运用最开始定义的两个辅助函数来计算
1 | def linear_activation_backward(dA, cache, activation): |
对L层的神经网络的backward
对最后一层是sigmoid_backward,剩下的所有层是linear_backward
1 | # GRADED FUNCTION: L_model_backward |
更新参数
1 | def update_parameters(parameters, grads, learning_rate): |