0
下面有一段代码,它一步一步地做GD,但theta是发散的。什么可能是错的?渐变下降发散,学习速率过高
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]
如果您执行10个步骤而不是仅仅执行一个步骤,它会发散么? –
是的,每一步越来越错误的方式。 – ArekBulski