You are on page 1of 2

EX -06 :-

PROGRAM :- ALGORITHM TO DEMONSTRATE BACK PROPAGATION

import numpy y = w1*x1 + w2*x2

import matplotlib.pyplot predicted = sigmoid(y)

def sigmoid(sop): err = error(predicted, target)

return 1.0/(1+numpy.exp(-1*sop)) predicted_output.append(predicted)

def error(predicted, target): network_error.append(err)

return numpy.power(predicted-target, 2) # Backward Pass

def error_predicted_deriv(predicted, target): g1 = error_predicted_deriv(predicted, target)

return 2*(predicted-target) g2 = sigmoid_sop_deriv(y)

def sigmoid_sop_deriv(sop): g3w1 = sop_w_deriv(x1)

return sigmoid(sop)*(1.0-sigmoid(sop)) g3w2 = sop_w_deriv(x2)

def sop_w_deriv(x): gradw1 = g3w1*g2*g1

return x gradw2 = g3w2*g2*g1

def update_w(w, grad, learning_rate): w1 = update_w(w1, gradw1, learning_rate)

return w - learning_rate*grad w2 = update_w(w2, gradw2, learning_rate)

x1=0.1 matplotlib.pyplot.figure()

x2=0.4 matplotlib.pyplot.plot(network_error)

target = 0.7 matplotlib.pyplot.title("Iteration Number vs Error")

learning_rate = 0.01 matplotlib.pyplot.xlabel("Iteration Number")

w1=numpy.random.rand() matplotlib.pyplot.ylabel("Error")

w2=numpy.random.rand() matplotlib.pyplot.figure()

print("Initial W : ", w1, w2) matplotlib.pyplot.plot(predicted_output)

predicted_output = [] matplotlib.pyplot.title("Iteration Number vs Prediction")

network_error = [] matplotlib.pyplot.xlabel("Iteration Number")

old_err = 0 matplotlib.pyplot.ylabel("Prediction")

for k in range(80000): matplotlib.pyplot.show()

# Forward Pass
OUTPUT :-

You might also like