Не могу понять проблему с этой простой двухуровневой сетью.Процесс пересылки, как представляется, не содержит ошибок, однако я не могу понять, как рассчитать стоимость для w1, w2 и b1, которые являются весами и смещением для первого слоя.
//forward
z1 = point[0]*w1 + point[1]*w2 + b1
z2 = sigmoid(z1)*w3 + b2
pred = sigmoid(z2)
//backward
z2_d_cost = 2 * (pred-target)
z2_d_pred = sigmoid_p(z2)
z2_cost_pred = z2_d_cost * z2_d_pred
w3 = w3 - z2*lrate*z2_cost_pred
b2 = b2 - lrate*z2_cost_pred
z1_d_pred = sigmoid_p(z1) * z2_cost_pred * w3
w1 = w1 - point[0]*lrate*z1_d_pred
w2 = w2 - point[1]*lrate*z1_d_pred
b1 = b1 - lrate*z1_d_pred