2016-12-14 15 views
0

GDを段階的に実行しますが、シータが発散している以下のコードがあります。何が間違っていますか?グラデーション・ディセントが足りない、学習率が高すぎる

X = arange(100) 
Y = 50 + 4*X + uniform(-20, 20, X.shape) 

theta = array([0,0]) 
alpha = 0.001 
# one step of GD 
theta0 = theta[0] - alpha * sum(theta[0]+theta[1]*x-y for x,y in zip(X,Y))/len(X) 
theta1 = theta[1] - alpha * sum((theta[0]+theta[1]*x-y)*x for x,y in zip(X,Y))/len(X) 
theta = [theta0, theta1] 
+0

1つではなく10つのステップを実行すると、それは発散しますか? –

+0

ええ、すべてのステップが間違った方法をますます行く。 – ArekBulski

答えて

0

学習率が高すぎます。

alpha = 0.0001 
関連する問題