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]
1つではなく10つのステップを実行すると、それは発散しますか? –
ええ、すべてのステップが間違った方法をますます行く。 – ArekBulski