用NumPy实现两层神经网络
一个全连接ReLU神经网络,一个隐藏层,没有bias。用来从x预测y,使用Square Loss。
这一实现完全使用NumPy来计算前向神经网络,loss,和反向传播算法。
N—样本数据的大小 DinD_{in}Din—输入层向量大小 H—隐藏层向量大小 DoutD_{out}Dout—输出层向量大小
- forward pass
-
h=xw1h = xw_1h=xw1 x=>N∗Din w1=>Din∗H h=>N∗H\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x => N * D_{in}\ \ \ \ \ \ \ w_1 => D_{in} * H\ \ \ \ \ \ \ h => N * H x=>N∗Din w1=>Din∗H h=>N∗H
-
hrelu=max(0,h) hrelu=>N∗Hh_{relu} = max(0,h)\ \ \ \ \ \ \ \ h_{relu}=>N*Hhrelu=max(0,h) hrelu=>N∗H
-
y^=hreluw2 w2=>H∗Dout y^=>N∗Dout\hat{y} = h_{relu}w_2\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ w_2 => H * D_{out}\ \ \ \ \ \ \ \hat{y} => N * D_{out}y^=hreluw2 w2=>H∗Dout y^=>N∗
-