Problem 4
In [33]:
import numpy as np
import math
In [55]:
def s(gamma):
return 1.0/(1.0 + math.exp(-gamma))
def R(w, X, y):
net = 0
for i in range(X.shape[0]):
print(X[i])
net += y[i] * math.log(s(np.dot(w, X[i]))) + (1-y[i])*math.log(s(np.dot(w, X[i])))
return -net
In [56]:
X = np.array([[0,3,1],
[1,3,1],
[0,1,1],
[1,1,1]])
y = np.array([1,1,0,0])
w0 = np.array([-2,1,0])
In [57]:
R(w0,X,y)
Out[57]:
In [58]:
def delta_w(w,X,y):
net = np.zeros(w.shape[0])
for i in range(X.shape[0]):
net += y[i] - s(np.dot(X[i], w))*X[i]
return -net
In [59]:
w1 = w0 + delta_w(w0, X,y)
w1
Out[59]:
In [60]:
R(w1,X,y)
Out[60]:
In [61]:
w2 = w1 + delta_w(w0, X,y)
w2
Out[61]:
In [62]:
R(w2,X,y)
Out[62]:
In [ ]: