def gradient_descent(initial_point, gradient, cost_function, alpha=0.001, max_it=100):
current_point = initial_point
done = False
costs = [cost_function(current_point)]
it = 0
while not done:
initial_point = current_point
#print "Cost = "+str(cost_function(current_point))
delta = gradient(initial_point)
#print "Delta: "+str(delta)
#print "Alpha x Delta: "+str(np.dot(delta, alpha))
current_point = np.subtract(initial_point, np.dot(delta, alpha))
#print "Current Point:"+str(current_point)
costs.append(cost_function(current_point))
if it > max_it:
done = True
it += 1
print it
return current_point, costs
评论列表
文章目录