Vectorize Gradient Descent Numpy

时间:2014-10-06 14:47:13

标签: numpy vectorization gradient-descent

我在Numpy中实现了这种梯度下降:

def gradientDescent(X, y, theta, alpha, iterations):
    m = len(y)

    for i in range(iterations):
        h = np.dot(X,theta)
        loss = h-y
        theta = theta - (alpha/m)*np.dot(X.T, loss) #update theta

    return theta

虽然代码的其他部分完全被矢量化,但仍然存在一个for循环,在我看来这是不可能消除的;特别要求在每一步更新theta我不知道如何对其进行矢量化或以更有效的方式编写它。

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

您无法对for循环进行矢量化,因为每次迭代都在更新状态。矢量化主要用于可以进行计算,使得每次迭代都计算独立(在某种意义上)结果。