Introduction to Deep Learning

Goal : This notebook explains the building blocks of a neural network model.

Data : Data is taken from sklearn's make_moon dataset. There are two features and and the target is a categorical variable (0/1). The aim is to devise an algorithm that correctly classifies the datapoints.

Aproach: We will build the neural networks from first principles. We will create a very simple model and understand how it works. We will also be implementing backpropagation algorithm. Please note that this code is not optimized. This is for instructive purpose - for us to understand how ANN works. Libraries like theano have highly optimized code.


In [11]:
# Import the required packages
import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import scipy
import math
import random
import string

random.seed(123)
# Display plots inline 
%matplotlib inline
# Define plot's default figure size
matplotlib.rcParams['figure.figsize'] = (10.0, 8.0)

In [12]:
#read the datasets
train = pd.read_csv("data/intro_to_ann.csv")
print (train.head())
X, y = np.array(train.ix[:,0:2]), np.array(train.ix[:,2])
print(X.shape, y.shape)
plt.scatter(X[:,0], X[:,1], s=40, c=y, cmap=plt.cm.BuGn)


   Feature1  Feature2  Target
0  2.067788  0.258133       1
1  0.993994 -0.609145       1
2 -0.690315  0.749921       0
3  1.023582  0.529003       0
4  0.700747 -0.496724       1
(500, 2) (500,)
Out[12]:
<matplotlib.collections.PathCollection at 0x11e701f98>

Let's start building our NN's building blocks.

This process will eventually result in our own NN class

Function to generate a random number, given two numbers

When we initialize the neural networks, the weights have to be randomly assigned.


In [13]:
# calculate a random number where:  a <= rand < b
def rand(a, b):
    return (b-a)*random.random() + a

# Make a matrix 
def makeMatrix(I, J, fill=0.0):
    return np.zeros([I,J])

# our sigmoid function
def sigmoid(x):
    #return math.tanh(x)
    return 1/(1+np.exp(-x))

# derivative of our sigmoid function, in terms of the output (i.e. y)
def dsigmoid(y):
    return (y * (1- y))

Our NN class

When we first create a neural networks architecture, we need to know the number of inputs, number of hidden layers and number of outputs.

The weights have to be randomly initialized.


In [14]:
class NN:
    def __init__(self, ni, nh, no):
        # number of input, hidden, and output nodes
        self.ni = ni + 1 # +1 for bias node
        self.nh = nh
        self.no = no

        # activations for nodes
        self.ai = [1.0]*self.ni
        self.ah = [1.0]*self.nh
        self.ao = [1.0]*self.no
        
        # create weights
        self.wi = makeMatrix(self.ni, self.nh)
        self.wo = makeMatrix(self.nh, self.no)
        
        # set them to random vaules
        for i in range(self.ni):
            for j in range(self.nh):
                self.wi[i][j] = rand(-0.2, 0.2)
        for j in range(self.nh):
            for k in range(self.no):
                self.wo[j][k] = rand(-2.0, 2.0)

        # last change in weights for momentum   
        self.ci = makeMatrix(self.ni, self.nh)
        self.co = makeMatrix(self.nh, self.no)

In [15]:
class NN:
    def __init__(self, ni, nh, no):
        # number of input, hidden, and output nodes
        self.ni = ni + 1 # +1 for bias node
        self.nh = nh
        self.no = no

        # activations for nodes
        self.ai = [1.0]*self.ni
        self.ah = [1.0]*self.nh
        self.ao = [1.0]*self.no
        
        # create weights
        self.wi = makeMatrix(self.ni, self.nh)
        self.wo = makeMatrix(self.nh, self.no)
        
        # set them to random vaules
        for i in range(self.ni):
            for j in range(self.nh):
                self.wi[i][j] = rand(-0.2, 0.2)
        for j in range(self.nh):
            for k in range(self.no):
                self.wo[j][k] = rand(-2.0, 2.0)

        # last change in weights for momentum   
        self.ci = makeMatrix(self.ni, self.nh)
        self.co = makeMatrix(self.nh, self.no)
        

    def backPropagate(self, targets, N, M):
        
        if len(targets) != self.no:
            print(targets)
            raise ValueError('wrong number of target values')

        # calculate error terms for output
        #output_deltas = [0.0] * self.no
        output_deltas = np.zeros(self.no)
        for k in range(self.no):
            error = targets[k]-self.ao[k]
            output_deltas[k] = dsigmoid(self.ao[k]) * error

        # calculate error terms for hidden
        
        #hidden_deltas = [0.0] * self.nh
        hidden_deltas = np.zeros(self.nh)
        for j in range(self.nh):
            error = 0.0
            for k in range(self.no):
                error = error + output_deltas[k]*self.wo[j][k]
            hidden_deltas[j] = dsigmoid(self.ah[j]) * error

        # update output weights
        for j in range(self.nh):
            for k in range(self.no):
                change = output_deltas[k]*self.ah[j]
                self.wo[j][k] = self.wo[j][k] + N*change + M*self.co[j][k]
                self.co[j][k] = change
                #print N*change, M*self.co[j][k]

        # update input weights
        for i in range(self.ni):
            for j in range(self.nh):
                change = hidden_deltas[j]*self.ai[i]
                self.wi[i][j] = self.wi[i][j] + N*change + M*self.ci[i][j]
                self.ci[i][j] = change

        # calculate error
        error = 0.0
        for k in range(len(targets)):
            error = error + 0.5*(targets[k]-self.ao[k])**2
        return error


    def test(self, patterns):
        self.predict = np.empty([len(patterns), self.no])
        for i, p in enumerate(patterns):
            self.predict[i] = self.activate(p)
            #self.predict[i] = self.activate(p[0])

    def weights(self):
        print('Input weights:')
        for i in range(self.ni):
            print(self.wi[i])
        
        print('Output weights:')
        for j in range(self.nh):
            print(self.wo[j])
            
    def activate(self, inputs):
        
        if len(inputs) != self.ni-1:
            print(inputs)
            raise ValueError('wrong number of inputs')

        # input activations
        for i in range(self.ni-1):
            #self.ai[i] = sigmoid(inputs[i])
            self.ai[i] = inputs[i]
            
        

        # hidden activations
        for j in range(self.nh):
            sum = 0.0
            for i in range(self.ni):
                sum = sum + self.ai[i] * self.wi[i][j]
            self.ah[j] = sigmoid(sum)
           
        # output activations
        for k in range(self.no):
            sum = 0.0
            for j in range(self.nh):
                sum = sum + self.ah[j] * self.wo[j][k]
            self.ao[k] = sigmoid(sum)

        
        return self.ao[:]
    
    def train(self, patterns, iterations=1000, N=0.5, M=0.1):
        # N: learning rate
        # M: momentum factor
        patterns = list(patterns)
        for i in range(iterations):
            error1 = 0.0
            #j = 0
            for p in patterns:
                inputs = p[0]
                targets = p[1]
                self.activate(inputs)
                error1 = error1 + self.backPropagate([targets], N, M)
                #j= j+1
                #print (j)
                #self.weights()    
            #if i % 5 == 0:
            print('error in iiteration %d : %-.5f' % (i,error1))
            #print('Final training error: %-.5f' % error1)

Let's visualize and observe the resultset


In [16]:
# Helper function to plot a decision boundary.
# This generates the contour plot to show the decision boundary visually
def plot_decision_boundary(nn_model):
    # Set min and max values and give it some padding
    x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
    y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
    h = 0.01
    # Generate a grid of points with distance h between them
    xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
    # Predict the function value for the whole gid
    nn_model.test(np.c_[xx.ravel(), yy.ravel()])
    Z = nn_model.predict
    Z[Z>=0.5] = 1
    Z[Z<0.5] = 0
    Z = Z.reshape(xx.shape)
    # Plot the contour and training examples
    plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral)
    plt.scatter(X[:, 0], X[:, 1], s=40,  c=y, cmap=plt.cm.BuGn)

Create Neural networks with 1 hidden layer.


In [23]:
n = NN(2, 4, 1)

In [24]:
print (n.weights())


Input weights:
[-0.11725501  0.04356101  0.01082998  0.12373541]
[-0.07389474 -0.04070474  0.10771164  0.00510085]
[ 0.07393489  0.05534131  0.06666305  0.15603943]
Output weights:
[-0.05545412]
[ 0.67388089]
[-0.50191347]
[-1.87263477]
None

Data Set

(X1,X2) = (2.067788 0.258133), y=1

(X1,X2) = (0.993994 -0.609145), y=1

(X1,X2) = (-0.690315 0.749921), y=0

(X1,X2) = (1.023582 0.529003), y=0

(X1,X2) = (0.700747 -0.496724), y=1


In [25]:
print ("prediction")
print ("y=1 --- yhat=",n.activate([2.067788, 0.258133]))
print ("y=1 --- yhat=",n.activate([0.993994, 0.258133]))
print ("y=0 --- yhat=",n.activate([-0.690315, 0.749921]))
print ("y=0 --- yhat=",n.activate([1.023582, 0.529003]))
print ("y=1 --- yhat=",n.activate([0.700747, -0.496724]))


prediction
y=1 --- yhat= [0.25766039880443892]
y=1 --- yhat= [0.26777235157632973]
y=0 --- yhat= [0.28237829568507083]
y=0 --- yhat= [0.26634065892326242]
y=1 --- yhat= [0.273860450282844]

Train the Neural Networks = estimate the ws while minimizing the error


In [26]:
%timeit -n 1 -r 1 n.train(zip(X,y), iterations=1000)
plot_decision_boundary(n)
plt.title("Our next model with 4 hidden units")


error in iiteration 0 : 34.31783
error in iiteration 1 : 25.28755
error in iiteration 2 : 24.79263
error in iiteration 3 : 24.72136
error in iiteration 4 : 24.69802
error in iiteration 5 : 24.67707
error in iiteration 6 : 24.65321
error in iiteration 7 : 24.62786
error in iiteration 8 : 24.60300
error in iiteration 9 : 24.57993
error in iiteration 10 : 24.55918
error in iiteration 11 : 24.54079
error in iiteration 12 : 24.52455
error in iiteration 13 : 24.51011
error in iiteration 14 : 24.49714
error in iiteration 15 : 24.48535
error in iiteration 16 : 24.47449
error in iiteration 17 : 24.46437
error in iiteration 18 : 24.45484
error in iiteration 19 : 24.44580
error in iiteration 20 : 24.43716
error in iiteration 21 : 24.42887
error in iiteration 22 : 24.42087
error in iiteration 23 : 24.41314
error in iiteration 24 : 24.40565
error in iiteration 25 : 24.39840
error in iiteration 26 : 24.39137
error in iiteration 27 : 24.38454
error in iiteration 28 : 24.37792
error in iiteration 29 : 24.37149
error in iiteration 30 : 24.36526
error in iiteration 31 : 24.35921
error in iiteration 32 : 24.35334
error in iiteration 33 : 24.34764
error in iiteration 34 : 24.34212
error in iiteration 35 : 24.33676
error in iiteration 36 : 24.33156
error in iiteration 37 : 24.32652
error in iiteration 38 : 24.32162
error in iiteration 39 : 24.31688
error in iiteration 40 : 24.31228
error in iiteration 41 : 24.30782
error in iiteration 42 : 24.30349
error in iiteration 43 : 24.29929
error in iiteration 44 : 24.29523
error in iiteration 45 : 24.29128
error in iiteration 46 : 24.28746
error in iiteration 47 : 24.28375
error in iiteration 48 : 24.28016
error in iiteration 49 : 24.27668
error in iiteration 50 : 24.27331
error in iiteration 51 : 24.27004
error in iiteration 52 : 24.26687
error in iiteration 53 : 24.26380
error in iiteration 54 : 24.26082
error in iiteration 55 : 24.25794
error in iiteration 56 : 24.25514
error in iiteration 57 : 24.25243
error in iiteration 58 : 24.24981
error in iiteration 59 : 24.24726
error in iiteration 60 : 24.24479
error in iiteration 61 : 24.24240
error in iiteration 62 : 24.24008
error in iiteration 63 : 24.23782
error in iiteration 64 : 24.23564
error in iiteration 65 : 24.23351
error in iiteration 66 : 24.23145
error in iiteration 67 : 24.22945
error in iiteration 68 : 24.22750
error in iiteration 69 : 24.22561
error in iiteration 70 : 24.22377
error in iiteration 71 : 24.22198
error in iiteration 72 : 24.22023
error in iiteration 73 : 24.21853
error in iiteration 74 : 24.21687
error in iiteration 75 : 24.21525
error in iiteration 76 : 24.21366
error in iiteration 77 : 24.21211
error in iiteration 78 : 24.21059
error in iiteration 79 : 24.20909
error in iiteration 80 : 24.20762
error in iiteration 81 : 24.20617
error in iiteration 82 : 24.20473
error in iiteration 83 : 24.20330
error in iiteration 84 : 24.20188
error in iiteration 85 : 24.20046
error in iiteration 86 : 24.19904
error in iiteration 87 : 24.19761
error in iiteration 88 : 24.19616
error in iiteration 89 : 24.19468
error in iiteration 90 : 24.19316
error in iiteration 91 : 24.19159
error in iiteration 92 : 24.18997
error in iiteration 93 : 24.18827
error in iiteration 94 : 24.18648
error in iiteration 95 : 24.18457
error in iiteration 96 : 24.18254
error in iiteration 97 : 24.18035
error in iiteration 98 : 24.17797
error in iiteration 99 : 24.17538
error in iiteration 100 : 24.17254
error in iiteration 101 : 24.16941
error in iiteration 102 : 24.16595
error in iiteration 103 : 24.16210
error in iiteration 104 : 24.15782
error in iiteration 105 : 24.15306
error in iiteration 106 : 24.14774
error in iiteration 107 : 24.14179
error in iiteration 108 : 24.13514
error in iiteration 109 : 24.12770
error in iiteration 110 : 24.11934
error in iiteration 111 : 24.10992
error in iiteration 112 : 24.09928
error in iiteration 113 : 24.08719
error in iiteration 114 : 24.07335
error in iiteration 115 : 24.05737
error in iiteration 116 : 24.03875
error in iiteration 117 : 24.01679
error in iiteration 118 : 23.99056
error in iiteration 119 : 23.95875
error in iiteration 120 : 23.91953
error in iiteration 121 : 23.87027
error in iiteration 122 : 23.80715
error in iiteration 123 : 23.72461
error in iiteration 124 : 23.61461
error in iiteration 125 : 23.46601
error in iiteration 126 : 23.26434
error in iiteration 127 : 22.99289
error in iiteration 128 : 22.63497
error in iiteration 129 : 22.17628
error in iiteration 130 : 21.60445
error in iiteration 131 : 20.90340
error in iiteration 132 : 20.04600
error in iiteration 133 : 19.00377
error in iiteration 134 : 17.79742
error in iiteration 135 : 16.54074
error in iiteration 136 : 15.37518
error in iiteration 137 : 14.36909
error in iiteration 138 : 13.51896
error in iiteration 139 : 12.79571
error in iiteration 140 : 12.17125
error in iiteration 141 : 11.62494
error in iiteration 142 : 11.14130
error in iiteration 143 : 10.70602
error in iiteration 144 : 10.30410
error in iiteration 145 : 9.92122
error in iiteration 146 : 9.54728
error in iiteration 147 : 9.18135
error in iiteration 148 : 8.83512
error in iiteration 149 : 8.52633
error in iiteration 150 : 8.26684
error in iiteration 151 : 8.05785
error in iiteration 152 : 7.89246
error in iiteration 153 : 7.76114
error in iiteration 154 : 7.65535
error in iiteration 155 : 7.56858
error in iiteration 156 : 7.49612
error in iiteration 157 : 7.43462
error in iiteration 158 : 7.38168
error in iiteration 159 : 7.33557
error in iiteration 160 : 7.29498
error in iiteration 161 : 7.25894
error in iiteration 162 : 7.22670
error in iiteration 163 : 7.19766
error in iiteration 164 : 7.17136
error in iiteration 165 : 7.14741
error in iiteration 166 : 7.12551
error in iiteration 167 : 7.10539
error in iiteration 168 : 7.08684
error in iiteration 169 : 7.06968
error in iiteration 170 : 7.05375
error in iiteration 171 : 7.03892
error in iiteration 172 : 7.02508
error in iiteration 173 : 7.01213
error in iiteration 174 : 6.99997
error in iiteration 175 : 6.98854
error in iiteration 176 : 6.97777
error in iiteration 177 : 6.96760
error in iiteration 178 : 6.95797
error in iiteration 179 : 6.94884
error in iiteration 180 : 6.94017
error in iiteration 181 : 6.93192
error in iiteration 182 : 6.92406
error in iiteration 183 : 6.91656
error in iiteration 184 : 6.90939
error in iiteration 185 : 6.90252
error in iiteration 186 : 6.89594
error in iiteration 187 : 6.88962
error in iiteration 188 : 6.88354
error in iiteration 189 : 6.87770
error in iiteration 190 : 6.87207
error in iiteration 191 : 6.86663
error in iiteration 192 : 6.86139
error in iiteration 193 : 6.85632
error in iiteration 194 : 6.85141
error in iiteration 195 : 6.84666
error in iiteration 196 : 6.84205
error in iiteration 197 : 6.83758
error in iiteration 198 : 6.83323
error in iiteration 199 : 6.82901
error in iiteration 200 : 6.82490
error in iiteration 201 : 6.82090
error in iiteration 202 : 6.81700
error in iiteration 203 : 6.81320
error in iiteration 204 : 6.80949
error in iiteration 205 : 6.80587
error in iiteration 206 : 6.80233
error in iiteration 207 : 6.79886
error in iiteration 208 : 6.79547
error in iiteration 209 : 6.79215
error in iiteration 210 : 6.78890
error in iiteration 211 : 6.78571
error in iiteration 212 : 6.78258
error in iiteration 213 : 6.77951
error in iiteration 214 : 6.77649
error in iiteration 215 : 6.77352
error in iiteration 216 : 6.77060
error in iiteration 217 : 6.76773
error in iiteration 218 : 6.76490
error in iiteration 219 : 6.76212
error in iiteration 220 : 6.75937
error in iiteration 221 : 6.75667
error in iiteration 222 : 6.75400
error in iiteration 223 : 6.75137
error in iiteration 224 : 6.74877
error in iiteration 225 : 6.74620
error in iiteration 226 : 6.74366
error in iiteration 227 : 6.74115
error in iiteration 228 : 6.73867
error in iiteration 229 : 6.73622
error in iiteration 230 : 6.73379
error in iiteration 231 : 6.73139
error in iiteration 232 : 6.72901
error in iiteration 233 : 6.72665
error in iiteration 234 : 6.72432
error in iiteration 235 : 6.72200
error in iiteration 236 : 6.71971
error in iiteration 237 : 6.71743
error in iiteration 238 : 6.71517
error in iiteration 239 : 6.71293
error in iiteration 240 : 6.71071
error in iiteration 241 : 6.70850
error in iiteration 242 : 6.70631
error in iiteration 243 : 6.70414
error in iiteration 244 : 6.70198
error in iiteration 245 : 6.69983
error in iiteration 246 : 6.69770
error in iiteration 247 : 6.69558
error in iiteration 248 : 6.69347
error in iiteration 249 : 6.69138
error in iiteration 250 : 6.68930
error in iiteration 251 : 6.68724
error in iiteration 252 : 6.68518
error in iiteration 253 : 6.68314
error in iiteration 254 : 6.68110
error in iiteration 255 : 6.67908
error in iiteration 256 : 6.67707
error in iiteration 257 : 6.67508
error in iiteration 258 : 6.67309
error in iiteration 259 : 6.67111
error in iiteration 260 : 6.66914
error in iiteration 261 : 6.66719
error in iiteration 262 : 6.66524
error in iiteration 263 : 6.66331
error in iiteration 264 : 6.66139
error in iiteration 265 : 6.65947
error in iiteration 266 : 6.65757
error in iiteration 267 : 6.65567
error in iiteration 268 : 6.65379
error in iiteration 269 : 6.65192
error in iiteration 270 : 6.65006
error in iiteration 271 : 6.64821
error in iiteration 272 : 6.64636
error in iiteration 273 : 6.64453
error in iiteration 274 : 6.64271
error in iiteration 275 : 6.64090
error in iiteration 276 : 6.63910
error in iiteration 277 : 6.63731
error in iiteration 278 : 6.63553
error in iiteration 279 : 6.63377
error in iiteration 280 : 6.63201
error in iiteration 281 : 6.63026
error in iiteration 282 : 6.62853
error in iiteration 283 : 6.62680
error in iiteration 284 : 6.62509
error in iiteration 285 : 6.62339
error in iiteration 286 : 6.62170
error in iiteration 287 : 6.62002
error in iiteration 288 : 6.61835
error in iiteration 289 : 6.61669
error in iiteration 290 : 6.61504
error in iiteration 291 : 6.61341
error in iiteration 292 : 6.61178
error in iiteration 293 : 6.61017
error in iiteration 294 : 6.60857
error in iiteration 295 : 6.60698
error in iiteration 296 : 6.60540
error in iiteration 297 : 6.60383
error in iiteration 298 : 6.60227
error in iiteration 299 : 6.60073
error in iiteration 300 : 6.59919
error in iiteration 301 : 6.59767
error in iiteration 302 : 6.59616
error in iiteration 303 : 6.59466
error in iiteration 304 : 6.59317
error in iiteration 305 : 6.59169
error in iiteration 306 : 6.59023
error in iiteration 307 : 6.58877
error in iiteration 308 : 6.58733
error in iiteration 309 : 6.58590
error in iiteration 310 : 6.58447
error in iiteration 311 : 6.58306
error in iiteration 312 : 6.58166
error in iiteration 313 : 6.58027
error in iiteration 314 : 6.57890
error in iiteration 315 : 6.57753
error in iiteration 316 : 6.57617
error in iiteration 317 : 6.57483
error in iiteration 318 : 6.57349
error in iiteration 319 : 6.57216
error in iiteration 320 : 6.57085
error in iiteration 321 : 6.56954
error in iiteration 322 : 6.56825
error in iiteration 323 : 6.56696
error in iiteration 324 : 6.56569
error in iiteration 325 : 6.56443
error in iiteration 326 : 6.56317
error in iiteration 327 : 6.56193
error in iiteration 328 : 6.56069
error in iiteration 329 : 6.55947
error in iiteration 330 : 6.55825
error in iiteration 331 : 6.55704
error in iiteration 332 : 6.55584
error in iiteration 333 : 6.55466
error in iiteration 334 : 6.55348
error in iiteration 335 : 6.55231
error in iiteration 336 : 6.55115
error in iiteration 337 : 6.54999
error in iiteration 338 : 6.54885
error in iiteration 339 : 6.54771
error in iiteration 340 : 6.54659
error in iiteration 341 : 6.54547
error in iiteration 342 : 6.54436
error in iiteration 343 : 6.54326
error in iiteration 344 : 6.54217
error in iiteration 345 : 6.54108
error in iiteration 346 : 6.54000
error in iiteration 347 : 6.53893
error in iiteration 348 : 6.53787
error in iiteration 349 : 6.53682
error in iiteration 350 : 6.53577
error in iiteration 351 : 6.53474
error in iiteration 352 : 6.53370
error in iiteration 353 : 6.53268
error in iiteration 354 : 6.53166
error in iiteration 355 : 6.53066
error in iiteration 356 : 6.52965
error in iiteration 357 : 6.52866
error in iiteration 358 : 6.52767
error in iiteration 359 : 6.52669
error in iiteration 360 : 6.52572
error in iiteration 361 : 6.52475
error in iiteration 362 : 6.52379
error in iiteration 363 : 6.52284
error in iiteration 364 : 6.52189
error in iiteration 365 : 6.52095
error in iiteration 366 : 6.52001
error in iiteration 367 : 6.51909
error in iiteration 368 : 6.51816
error in iiteration 369 : 6.51725
error in iiteration 370 : 6.51634
error in iiteration 371 : 6.51543
error in iiteration 372 : 6.51454
error in iiteration 373 : 6.51364
error in iiteration 374 : 6.51276
error in iiteration 375 : 6.51188
error in iiteration 376 : 6.51100
error in iiteration 377 : 6.51014
error in iiteration 378 : 6.50927
error in iiteration 379 : 6.50841
error in iiteration 380 : 6.50756
error in iiteration 381 : 6.50671
error in iiteration 382 : 6.50587
error in iiteration 383 : 6.50504
error in iiteration 384 : 6.50421
error in iiteration 385 : 6.50338
error in iiteration 386 : 6.50256
error in iiteration 387 : 6.50174
error in iiteration 388 : 6.50093
error in iiteration 389 : 6.50013
error in iiteration 390 : 6.49933
error in iiteration 391 : 6.49853
error in iiteration 392 : 6.49774
error in iiteration 393 : 6.49695
error in iiteration 394 : 6.49617
error in iiteration 395 : 6.49539
error in iiteration 396 : 6.49462
error in iiteration 397 : 6.49385
error in iiteration 398 : 6.49309
error in iiteration 399 : 6.49233
error in iiteration 400 : 6.49157
error in iiteration 401 : 6.49082
error in iiteration 402 : 6.49008
error in iiteration 403 : 6.48933
error in iiteration 404 : 6.48860
error in iiteration 405 : 6.48786
error in iiteration 406 : 6.48713
error in iiteration 407 : 6.48641
error in iiteration 408 : 6.48569
error in iiteration 409 : 6.48497
error in iiteration 410 : 6.48425
error in iiteration 411 : 6.48354
error in iiteration 412 : 6.48284
error in iiteration 413 : 6.48214
error in iiteration 414 : 6.48144
error in iiteration 415 : 6.48075
error in iiteration 416 : 6.48005
error in iiteration 417 : 6.47937
error in iiteration 418 : 6.47868
error in iiteration 419 : 6.47801
error in iiteration 420 : 6.47733
error in iiteration 421 : 6.47666
error in iiteration 422 : 6.47599
error in iiteration 423 : 6.47532
error in iiteration 424 : 6.47466
error in iiteration 425 : 6.47400
error in iiteration 426 : 6.47335
error in iiteration 427 : 6.47270
error in iiteration 428 : 6.47205
error in iiteration 429 : 6.47140
error in iiteration 430 : 6.47076
error in iiteration 431 : 6.47012
error in iiteration 432 : 6.46949
error in iiteration 433 : 6.46886
error in iiteration 434 : 6.46823
error in iiteration 435 : 6.46760
error in iiteration 436 : 6.46698
error in iiteration 437 : 6.46636
error in iiteration 438 : 6.46574
error in iiteration 439 : 6.46513
error in iiteration 440 : 6.46452
error in iiteration 441 : 6.46391
error in iiteration 442 : 6.46331
error in iiteration 443 : 6.46270
error in iiteration 444 : 6.46211
error in iiteration 445 : 6.46151
error in iiteration 446 : 6.46092
error in iiteration 447 : 6.46033
error in iiteration 448 : 6.45974
error in iiteration 449 : 6.45915
error in iiteration 450 : 6.45857
error in iiteration 451 : 6.45799
error in iiteration 452 : 6.45742
error in iiteration 453 : 6.45684
error in iiteration 454 : 6.45627
error in iiteration 455 : 6.45570
error in iiteration 456 : 6.45514
error in iiteration 457 : 6.45457
error in iiteration 458 : 6.45401
error in iiteration 459 : 6.45345
error in iiteration 460 : 6.45290
error in iiteration 461 : 6.45234
error in iiteration 462 : 6.45179
error in iiteration 463 : 6.45125
error in iiteration 464 : 6.45070
error in iiteration 465 : 6.45016
error in iiteration 466 : 6.44962
error in iiteration 467 : 6.44908
error in iiteration 468 : 6.44854
error in iiteration 469 : 6.44801
error in iiteration 470 : 6.44748
error in iiteration 471 : 6.44695
error in iiteration 472 : 6.44642
error in iiteration 473 : 6.44589
error in iiteration 474 : 6.44537
error in iiteration 475 : 6.44485
error in iiteration 476 : 6.44433
error in iiteration 477 : 6.44382
error in iiteration 478 : 6.44331
error in iiteration 479 : 6.44279
error in iiteration 480 : 6.44228
error in iiteration 481 : 6.44178
error in iiteration 482 : 6.44127
error in iiteration 483 : 6.44077
error in iiteration 484 : 6.44027
error in iiteration 485 : 6.43977
error in iiteration 486 : 6.43928
error in iiteration 487 : 6.43878
error in iiteration 488 : 6.43829
error in iiteration 489 : 6.43780
error in iiteration 490 : 6.43731
error in iiteration 491 : 6.43682
error in iiteration 492 : 6.43634
error in iiteration 493 : 6.43586
error in iiteration 494 : 6.43538
error in iiteration 495 : 6.43490
error in iiteration 496 : 6.43442
error in iiteration 497 : 6.43395
error in iiteration 498 : 6.43348
error in iiteration 499 : 6.43300
error in iiteration 500 : 6.43254
error in iiteration 501 : 6.43207
error in iiteration 502 : 6.43160
error in iiteration 503 : 6.43114
error in iiteration 504 : 6.43068
error in iiteration 505 : 6.43022
error in iiteration 506 : 6.42976
error in iiteration 507 : 6.42931
error in iiteration 508 : 6.42885
error in iiteration 509 : 6.42840
error in iiteration 510 : 6.42795
error in iiteration 511 : 6.42750
error in iiteration 512 : 6.42705
error in iiteration 513 : 6.42661
error in iiteration 514 : 6.42616
error in iiteration 515 : 6.42572
error in iiteration 516 : 6.42528
error in iiteration 517 : 6.42484
error in iiteration 518 : 6.42440
error in iiteration 519 : 6.42397
error in iiteration 520 : 6.42354
error in iiteration 521 : 6.42310
error in iiteration 522 : 6.42267
error in iiteration 523 : 6.42224
error in iiteration 524 : 6.42182
error in iiteration 525 : 6.42139
error in iiteration 526 : 6.42097
error in iiteration 527 : 6.42054
error in iiteration 528 : 6.42012
error in iiteration 529 : 6.41970
error in iiteration 530 : 6.41929
error in iiteration 531 : 6.41887
error in iiteration 532 : 6.41846
error in iiteration 533 : 6.41804
error in iiteration 534 : 6.41763
error in iiteration 535 : 6.41722
error in iiteration 536 : 6.41681
error in iiteration 537 : 6.41640
error in iiteration 538 : 6.41600
error in iiteration 539 : 6.41559
error in iiteration 540 : 6.41519
error in iiteration 541 : 6.41479
error in iiteration 542 : 6.41439
error in iiteration 543 : 6.41399
error in iiteration 544 : 6.41359
error in iiteration 545 : 6.41320
error in iiteration 546 : 6.41280
error in iiteration 547 : 6.41241
error in iiteration 548 : 6.41202
error in iiteration 549 : 6.41163
error in iiteration 550 : 6.41124
error in iiteration 551 : 6.41085
error in iiteration 552 : 6.41047
error in iiteration 553 : 6.41008
error in iiteration 554 : 6.40970
error in iiteration 555 : 6.40932
error in iiteration 556 : 6.40894
error in iiteration 557 : 6.40856
error in iiteration 558 : 6.40818
error in iiteration 559 : 6.40780
error in iiteration 560 : 6.40743
error in iiteration 561 : 6.40705
error in iiteration 562 : 6.40668
error in iiteration 563 : 6.40631
error in iiteration 564 : 6.40594
error in iiteration 565 : 6.40557
error in iiteration 566 : 6.40520
error in iiteration 567 : 6.40483
error in iiteration 568 : 6.40447
error in iiteration 569 : 6.40410
error in iiteration 570 : 6.40374
error in iiteration 571 : 6.40338
error in iiteration 572 : 6.40302
error in iiteration 573 : 6.40266
error in iiteration 574 : 6.40230
error in iiteration 575 : 6.40194
error in iiteration 576 : 6.40159
error in iiteration 577 : 6.40123
error in iiteration 578 : 6.40088
error in iiteration 579 : 6.40053
error in iiteration 580 : 6.40018
error in iiteration 581 : 6.39983
error in iiteration 582 : 6.39948
error in iiteration 583 : 6.39913
error in iiteration 584 : 6.39879
error in iiteration 585 : 6.39844
error in iiteration 586 : 6.39810
error in iiteration 587 : 6.39775
error in iiteration 588 : 6.39741
error in iiteration 589 : 6.39707
error in iiteration 590 : 6.39673
error in iiteration 591 : 6.39639
error in iiteration 592 : 6.39605
error in iiteration 593 : 6.39572
error in iiteration 594 : 6.39538
error in iiteration 595 : 6.39505
error in iiteration 596 : 6.39471
error in iiteration 597 : 6.39438
error in iiteration 598 : 6.39405
error in iiteration 599 : 6.39372
error in iiteration 600 : 6.39339
error in iiteration 601 : 6.39306
error in iiteration 602 : 6.39274
error in iiteration 603 : 6.39241
error in iiteration 604 : 6.39209
error in iiteration 605 : 6.39176
error in iiteration 606 : 6.39144
error in iiteration 607 : 6.39112
error in iiteration 608 : 6.39080
error in iiteration 609 : 6.39048
error in iiteration 610 : 6.39016
error in iiteration 611 : 6.38984
error in iiteration 612 : 6.38952
error in iiteration 613 : 6.38921
error in iiteration 614 : 6.38889
error in iiteration 615 : 6.38858
error in iiteration 616 : 6.38826
error in iiteration 617 : 6.38795
error in iiteration 618 : 6.38764
error in iiteration 619 : 6.38733
error in iiteration 620 : 6.38702
error in iiteration 621 : 6.38671
error in iiteration 622 : 6.38641
error in iiteration 623 : 6.38610
error in iiteration 624 : 6.38579
error in iiteration 625 : 6.38549
error in iiteration 626 : 6.38519
error in iiteration 627 : 6.38488
error in iiteration 628 : 6.38458
error in iiteration 629 : 6.38428
error in iiteration 630 : 6.38398
error in iiteration 631 : 6.38368
error in iiteration 632 : 6.38338
error in iiteration 633 : 6.38308
error in iiteration 634 : 6.38279
error in iiteration 635 : 6.38249
error in iiteration 636 : 6.38220
error in iiteration 637 : 6.38190
error in iiteration 638 : 6.38161
error in iiteration 639 : 6.38132
error in iiteration 640 : 6.38103
error in iiteration 641 : 6.38074
error in iiteration 642 : 6.38045
error in iiteration 643 : 6.38016
error in iiteration 644 : 6.37987
error in iiteration 645 : 6.37958
error in iiteration 646 : 6.37930
error in iiteration 647 : 6.37901
error in iiteration 648 : 6.37873
error in iiteration 649 : 6.37844
error in iiteration 650 : 6.37816
error in iiteration 651 : 6.37788
error in iiteration 652 : 6.37760
error in iiteration 653 : 6.37732
error in iiteration 654 : 6.37704
error in iiteration 655 : 6.37676
error in iiteration 656 : 6.37648
error in iiteration 657 : 6.37620
error in iiteration 658 : 6.37593
error in iiteration 659 : 6.37565
error in iiteration 660 : 6.37538
error in iiteration 661 : 6.37510
error in iiteration 662 : 6.37483
error in iiteration 663 : 6.37456
error in iiteration 664 : 6.37428
error in iiteration 665 : 6.37401
error in iiteration 666 : 6.37374
error in iiteration 667 : 6.37347
error in iiteration 668 : 6.37320
error in iiteration 669 : 6.37294
error in iiteration 670 : 6.37267
error in iiteration 671 : 6.37240
error in iiteration 672 : 6.37214
error in iiteration 673 : 6.37187
error in iiteration 674 : 6.37161
error in iiteration 675 : 6.37134
error in iiteration 676 : 6.37108
error in iiteration 677 : 6.37082
error in iiteration 678 : 6.37056
error in iiteration 679 : 6.37030
error in iiteration 680 : 6.37004
error in iiteration 681 : 6.36978
error in iiteration 682 : 6.36952
error in iiteration 683 : 6.36926
error in iiteration 684 : 6.36900
error in iiteration 685 : 6.36875
error in iiteration 686 : 6.36849
error in iiteration 687 : 6.36824
error in iiteration 688 : 6.36798
error in iiteration 689 : 6.36773
error in iiteration 690 : 6.36748
error in iiteration 691 : 6.36722
error in iiteration 692 : 6.36697
error in iiteration 693 : 6.36672
error in iiteration 694 : 6.36647
error in iiteration 695 : 6.36622
error in iiteration 696 : 6.36597
error in iiteration 697 : 6.36572
error in iiteration 698 : 6.36548
error in iiteration 699 : 6.36523
error in iiteration 700 : 6.36498
error in iiteration 701 : 6.36474
error in iiteration 702 : 6.36449
error in iiteration 703 : 6.36425
error in iiteration 704 : 6.36400
error in iiteration 705 : 6.36376
error in iiteration 706 : 6.36352
error in iiteration 707 : 6.36328
error in iiteration 708 : 6.36304
error in iiteration 709 : 6.36279
error in iiteration 710 : 6.36255
error in iiteration 711 : 6.36232
error in iiteration 712 : 6.36208
error in iiteration 713 : 6.36184
error in iiteration 714 : 6.36160
error in iiteration 715 : 6.36136
error in iiteration 716 : 6.36113
error in iiteration 717 : 6.36089
error in iiteration 718 : 6.36066
error in iiteration 719 : 6.36042
error in iiteration 720 : 6.36019
error in iiteration 721 : 6.35996
error in iiteration 722 : 6.35972
error in iiteration 723 : 6.35949
error in iiteration 724 : 6.35926
error in iiteration 725 : 6.35903
error in iiteration 726 : 6.35880
error in iiteration 727 : 6.35857
error in iiteration 728 : 6.35834
error in iiteration 729 : 6.35811
error in iiteration 730 : 6.35789
error in iiteration 731 : 6.35766
error in iiteration 732 : 6.35743
error in iiteration 733 : 6.35721
error in iiteration 734 : 6.35698
error in iiteration 735 : 6.35675
error in iiteration 736 : 6.35653
error in iiteration 737 : 6.35631
error in iiteration 738 : 6.35608
error in iiteration 739 : 6.35586
error in iiteration 740 : 6.35564
error in iiteration 741 : 6.35542
error in iiteration 742 : 6.35520
error in iiteration 743 : 6.35498
error in iiteration 744 : 6.35476
error in iiteration 745 : 6.35454
error in iiteration 746 : 6.35432
error in iiteration 747 : 6.35410
error in iiteration 748 : 6.35388
error in iiteration 749 : 6.35366
error in iiteration 750 : 6.35345
error in iiteration 751 : 6.35323
error in iiteration 752 : 6.35302
error in iiteration 753 : 6.35280
error in iiteration 754 : 6.35259
error in iiteration 755 : 6.35237
error in iiteration 756 : 6.35216
error in iiteration 757 : 6.35195
error in iiteration 758 : 6.35173
error in iiteration 759 : 6.35152
error in iiteration 760 : 6.35131
error in iiteration 761 : 6.35110
error in iiteration 762 : 6.35089
error in iiteration 763 : 6.35068
error in iiteration 764 : 6.35047
error in iiteration 765 : 6.35026
error in iiteration 766 : 6.35005
error in iiteration 767 : 6.34984
error in iiteration 768 : 6.34964
error in iiteration 769 : 6.34943
error in iiteration 770 : 6.34922
error in iiteration 771 : 6.34902
error in iiteration 772 : 6.34881
error in iiteration 773 : 6.34861
error in iiteration 774 : 6.34840
error in iiteration 775 : 6.34820
error in iiteration 776 : 6.34799
error in iiteration 777 : 6.34779
error in iiteration 778 : 6.34759
error in iiteration 779 : 6.34739
error in iiteration 780 : 6.34719
error in iiteration 781 : 6.34698
error in iiteration 782 : 6.34678
error in iiteration 783 : 6.34658
error in iiteration 784 : 6.34638
error in iiteration 785 : 6.34619
error in iiteration 786 : 6.34599
error in iiteration 787 : 6.34579
error in iiteration 788 : 6.34559
error in iiteration 789 : 6.34539
error in iiteration 790 : 6.34520
error in iiteration 791 : 6.34500
error in iiteration 792 : 6.34480
error in iiteration 793 : 6.34461
error in iiteration 794 : 6.34441
error in iiteration 795 : 6.34422
error in iiteration 796 : 6.34402
error in iiteration 797 : 6.34383
error in iiteration 798 : 6.34364
error in iiteration 799 : 6.34345
error in iiteration 800 : 6.34325
error in iiteration 801 : 6.34306
error in iiteration 802 : 6.34287
error in iiteration 803 : 6.34268
error in iiteration 804 : 6.34249
error in iiteration 805 : 6.34230
error in iiteration 806 : 6.34211
error in iiteration 807 : 6.34192
error in iiteration 808 : 6.34173
error in iiteration 809 : 6.34154
error in iiteration 810 : 6.34135
error in iiteration 811 : 6.34117
error in iiteration 812 : 6.34098
error in iiteration 813 : 6.34079
error in iiteration 814 : 6.34061
error in iiteration 815 : 6.34042
error in iiteration 816 : 6.34023
error in iiteration 817 : 6.34005
error in iiteration 818 : 6.33986
error in iiteration 819 : 6.33968
error in iiteration 820 : 6.33950
error in iiteration 821 : 6.33931
error in iiteration 822 : 6.33913
error in iiteration 823 : 6.33895
error in iiteration 824 : 6.33877
error in iiteration 825 : 6.33858
error in iiteration 826 : 6.33840
error in iiteration 827 : 6.33822
error in iiteration 828 : 6.33804
error in iiteration 829 : 6.33786
error in iiteration 830 : 6.33768
error in iiteration 831 : 6.33750
error in iiteration 832 : 6.33732
error in iiteration 833 : 6.33714
error in iiteration 834 : 6.33697
error in iiteration 835 : 6.33679
error in iiteration 836 : 6.33661
error in iiteration 837 : 6.33643
error in iiteration 838 : 6.33626
error in iiteration 839 : 6.33608
error in iiteration 840 : 6.33590
error in iiteration 841 : 6.33573
error in iiteration 842 : 6.33555
error in iiteration 843 : 6.33538
error in iiteration 844 : 6.33521
error in iiteration 845 : 6.33503
error in iiteration 846 : 6.33486
error in iiteration 847 : 6.33468
error in iiteration 848 : 6.33451
error in iiteration 849 : 6.33434
error in iiteration 850 : 6.33417
error in iiteration 851 : 6.33400
error in iiteration 852 : 6.33382
error in iiteration 853 : 6.33365
error in iiteration 854 : 6.33348
error in iiteration 855 : 6.33331
error in iiteration 856 : 6.33314
error in iiteration 857 : 6.33297
error in iiteration 858 : 6.33280
error in iiteration 859 : 6.33263
error in iiteration 860 : 6.33247
error in iiteration 861 : 6.33230
error in iiteration 862 : 6.33213
error in iiteration 863 : 6.33196
error in iiteration 864 : 6.33180
error in iiteration 865 : 6.33163
error in iiteration 866 : 6.33146
error in iiteration 867 : 6.33130
error in iiteration 868 : 6.33113
error in iiteration 869 : 6.33097
error in iiteration 870 : 6.33080
error in iiteration 871 : 6.33064
error in iiteration 872 : 6.33047
error in iiteration 873 : 6.33031
error in iiteration 874 : 6.33015
error in iiteration 875 : 6.32998
error in iiteration 876 : 6.32982
error in iiteration 877 : 6.32966
error in iiteration 878 : 6.32949
error in iiteration 879 : 6.32933
error in iiteration 880 : 6.32917
error in iiteration 881 : 6.32901
error in iiteration 882 : 6.32885
error in iiteration 883 : 6.32869
error in iiteration 884 : 6.32853
error in iiteration 885 : 6.32837
error in iiteration 886 : 6.32821
error in iiteration 887 : 6.32805
error in iiteration 888 : 6.32789
error in iiteration 889 : 6.32773
error in iiteration 890 : 6.32757
error in iiteration 891 : 6.32742
error in iiteration 892 : 6.32726
error in iiteration 893 : 6.32710
error in iiteration 894 : 6.32694
error in iiteration 895 : 6.32679
error in iiteration 896 : 6.32663
error in iiteration 897 : 6.32648
error in iiteration 898 : 6.32632
error in iiteration 899 : 6.32617
error in iiteration 900 : 6.32601
error in iiteration 901 : 6.32586
error in iiteration 902 : 6.32570
error in iiteration 903 : 6.32555
error in iiteration 904 : 6.32539
error in iiteration 905 : 6.32524
error in iiteration 906 : 6.32509
error in iiteration 907 : 6.32493
error in iiteration 908 : 6.32478
error in iiteration 909 : 6.32463
error in iiteration 910 : 6.32448
error in iiteration 911 : 6.32433
error in iiteration 912 : 6.32417
error in iiteration 913 : 6.32402
error in iiteration 914 : 6.32387
error in iiteration 915 : 6.32372
error in iiteration 916 : 6.32357
error in iiteration 917 : 6.32342
error in iiteration 918 : 6.32327
error in iiteration 919 : 6.32312
error in iiteration 920 : 6.32297
error in iiteration 921 : 6.32283
error in iiteration 922 : 6.32268
error in iiteration 923 : 6.32253
error in iiteration 924 : 6.32238
error in iiteration 925 : 6.32223
error in iiteration 926 : 6.32209
error in iiteration 927 : 6.32194
error in iiteration 928 : 6.32179
error in iiteration 929 : 6.32165
error in iiteration 930 : 6.32150
error in iiteration 931 : 6.32135
error in iiteration 932 : 6.32121
error in iiteration 933 : 6.32106
error in iiteration 934 : 6.32092
error in iiteration 935 : 6.32077
error in iiteration 936 : 6.32063
error in iiteration 937 : 6.32049
error in iiteration 938 : 6.32034
error in iiteration 939 : 6.32020
error in iiteration 940 : 6.32006
error in iiteration 941 : 6.31991
error in iiteration 942 : 6.31977
error in iiteration 943 : 6.31963
error in iiteration 944 : 6.31949
error in iiteration 945 : 6.31934
error in iiteration 946 : 6.31920
error in iiteration 947 : 6.31906
error in iiteration 948 : 6.31892
error in iiteration 949 : 6.31878
error in iiteration 950 : 6.31864
error in iiteration 951 : 6.31850
error in iiteration 952 : 6.31836
error in iiteration 953 : 6.31822
error in iiteration 954 : 6.31808
error in iiteration 955 : 6.31794
error in iiteration 956 : 6.31780
error in iiteration 957 : 6.31766
error in iiteration 958 : 6.31752
error in iiteration 959 : 6.31739
error in iiteration 960 : 6.31725
error in iiteration 961 : 6.31711
error in iiteration 962 : 6.31697
error in iiteration 963 : 6.31684
error in iiteration 964 : 6.31670
error in iiteration 965 : 6.31656
error in iiteration 966 : 6.31643
error in iiteration 967 : 6.31629
error in iiteration 968 : 6.31615
error in iiteration 969 : 6.31602
error in iiteration 970 : 6.31588
error in iiteration 971 : 6.31575
error in iiteration 972 : 6.31561
error in iiteration 973 : 6.31548
error in iiteration 974 : 6.31534
error in iiteration 975 : 6.31521
error in iiteration 976 : 6.31508
error in iiteration 977 : 6.31494
error in iiteration 978 : 6.31481
error in iiteration 979 : 6.31468
error in iiteration 980 : 6.31454
error in iiteration 981 : 6.31441
error in iiteration 982 : 6.31428
error in iiteration 983 : 6.31415
error in iiteration 984 : 6.31402
error in iiteration 985 : 6.31388
error in iiteration 986 : 6.31375
error in iiteration 987 : 6.31362
error in iiteration 988 : 6.31349
error in iiteration 989 : 6.31336
error in iiteration 990 : 6.31323
error in iiteration 991 : 6.31310
error in iiteration 992 : 6.31297
error in iiteration 993 : 6.31284
error in iiteration 994 : 6.31271
error in iiteration 995 : 6.31258
error in iiteration 996 : 6.31245
error in iiteration 997 : 6.31232
error in iiteration 998 : 6.31219
error in iiteration 999 : 6.31207
1 loop, best of 1: 28.9 s per loop
Out[26]:
<matplotlib.text.Text at 0x11e7ea9e8>

In [22]:
print (n.weights())


Input weights:
[ 12.70675186  -0.20252168  -0.74290998  -0.19596548]
[-1.49198991 -8.85315023  7.05710334 -8.29617985]
[-19.85000109  -2.61742209  -3.59368972  -2.70835334]
Output weights:
[ 7.44186771]
[ 2.78666447]
[-4.31600864]
[ 2.70058949]
None

Data Set

(X1,X2) = (2.067788 0.258133), y=1

(X1,X2) = (0.993994 -0.609145), y=1

(X1,X2) = (-0.690315 0.749921), y=0

(X1,X2) = (1.023582 0.529003), y=0

(X1,X2) = (0.700747 -0.496724), y=1


In [87]:
print ("prediction")
print ("y=1 --- yhat=",n.activate([2.067788, 0.258133]))
print ("y=1 --- yhat=",n.activate([0.993994, 0.258133]))
print ("y=0 --- yhat=",n.activate([-0.690315, 0.749921]))
print ("y=0 --- yhat=",n.activate([1.023582, 0.529003]))
print ("y=1 --- yhat=",n.activate([0.700747, -0.496724]))


prediction
y=1 --- yhat= [0.99906543814635684]
y=1 --- yhat= [0.013522955424105166]
y=0 --- yhat= [0.00048261392429525964]
y=0 --- yhat= [0.003109085836609233]
y=1 --- yhat= [0.99871469627279474]

In [ ]: