In line 28, what is written is: `k0 = X` It should be: `k0 = nonlin(X)` this is so that the weights are effected by the output of the node and not the input, and would also be consistent with the k1 and k2 values used.