(X, W1, b1, W2, b2)
| 10 | import numpy as np |
| 11 | |
| 12 | def forward(X, W1, b1, W2, b2): |
| 13 | # sigmoid |
| 14 | # Z = 1 / (1 + np.exp(-( X.dot(W1) + b1 ))) |
| 15 | |
| 16 | # relu |
| 17 | Z = X.dot(W1) + b1 |
| 18 | Z[Z < 0] = 0 |
| 19 | |
| 20 | A = Z.dot(W2) + b2 |
| 21 | expA = np.exp(A) |
| 22 | Y = expA / expA.sum(axis=1, keepdims=True) |
| 23 | return Y, Z |
| 24 | |
| 25 | def derivative_w2(Z, T, Y): |
| 26 | return Z.T.dot(Y - T) |