In [1]:
import numpy as np
In [2]:
w1 = 0
w2 = 0
b = 0
loss = 0
acc = 0
total_test = 100000
to_print = total_test / 10
eta = 0.001
for i in range(total_test):
#Data
x1 = np.random.rand()
x2 = np.random.rand()
z_ = float( x1 + x2 > 1 )
#Feedforward
y = w1 * x1 + w2 * x2 + b
z = 1 / (1 + np.exp(-y))
#Loss
loss += -z_ * np.log(z) - (1 - z_) * np.log(1 - z) #Cross entropy
acc += float(z_ == float(z > 0.5))
if (i + 1) % to_print == 0:
print loss, acc / float(to_print), (i + 1) / to_print
loss = 0
acc = 0
#Backpropagation
w1 -= eta * (z - z_) * x1
w2 -= eta * (z - z_) * x2
b -= eta * (z - z_)