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