用NumPy实现两层神经网络
一个全连接ReLU神经网络,一个隐藏层,没有bias。用来从x预测y,使用Square Loss。
这一实现完全使用NumPy来计算前向神经网络,loss,和反向传播算法。
N—样本数据的大小 D i n D_{in} Din—输入层向量大小 H—隐藏层向量大小 D o u t D_{out} Dout—输出层向量大小
- forward pass
-
h = x w 1 h = xw_1 h=xw1 x = > N ∗ D i n w 1 = > D i n ∗ 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
-
h r e l u = m a x ( 0 , h ) h r e l u = > N ∗ H h_{relu} = max(0,h)\ \ \ \ \ \ \ \ h_{relu}=>N*H hrelu=max(0,h) hrelu=>N∗H
-
y ^ = h r e l u w 2 w 2 = > H ∗ D o u t y ^ = > N ∗ D o u t \hat{y} = h_{relu}w_2\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ w_2 => H * D_{out}\ \ \ \ \ \ \ \hat{y} => N * D_{out} y^=hreluw2 w2=>H∗D
-