向量化实现的解释
首先要把几个符号的上下标搞清楚
在下面这个前向传播的推导中
关键点如下:
- 单样本的推导公式是这个
i代表第i个样本,1代表第一层。
W的shape是[第1层的神经元个数,和第0层的神经元个数];b的shape是[第1层的神经元个数,1]; - 多样本的推导是这个
将各个样本按照列向量堆叠
1代表第1层隐藏层
在多样本中,X的shape是[样本的特征数(输入层的神经元个数), 样本数]
激活函数
激活函数的导数
梯度下降
参数
n
x
=
n
[
0
]
代
表
第
0
层
(
输
入
层
)
的
神
经
元
个
数
n_x=n^{[0]}代表第0层(输入层)的神经元个数
nx=n[0]代表第0层(输入层)的神经元个数
n
[
1
]
代
表
第
1
层
的
神
经
元
个
数
n^{[1]} 代表第1层的神经元个数
n[1]代表第1层的神经元个数
W
[
1
]
W^{[1]}
W[1]的shape是
(
n
[
1
]
(n^{[1]}
(n[1],
n
[
0
]
)
n^{[0]})
n[0]), 即:(第1层的神经元个数, 上一层(0层)的神经元个数)
b
[
1
]
b^{[1]}
b[1]的shape是
(
n
[
1
]
(n^{[1]}
(n[1],
1
)
1)
1), 即:(第1层的神经元个数, 1)
依次类推其他层的W,b的意思和shape
损失函数
损失函数J是一个关于网络参数W,b 的函数。整体来说可以这么去求:
等号右边是算所有样本的y_true和y_pred的误差(mse或者是mae等等)
梯度下降
整体是做一个循环,就是收敛时循环结束
在循环内
①计算所有样本的y_pred。(就是课程第三节提到的计算神经网络的输出)
②计算每一层网络参数(
W
[
1
]
W^{[1]}
W[1],
b
[
1
]
b^{[1]}
b[1],
W
[
2
]
W^{[2]}
W[2],
b
[
2
]
b^{[2]}
b[2] …)的梯度
③④更新W,b了