向量化梯度下降函数

时间:2019-11-28 02:20:18

标签: machine-learning vectorization octave linear-regression gradient-descent

我对线性代数还很陌生,目前正在参加Andrew Ng的机器学习课程。我正在努力了解以下两个功能是如何相同的。我正在对梯度下降进行矢量化处理,以进行线性/逻辑回归。

theta = theta - (alpha/m)*(X')*(X*theta - y)

theta = theta - (alpha/m)*sum((X*theta -y)*x(i))

我的想法是x(i)是一个向量,为了进行向量乘法,我需要对其进行转置,但是当尝试模拟一个示例时,我没有看到这是多么必要。任何帮助或解释将不胜感激。

1 个答案:

答案 0 :(得分:1)

假设您正在参考底部的等式,第4讲,第8页,则求和错误。术语x (i)的意思是内部,而不是外部。在“向量化”的情况下,您的输入X包含所有单独的观察值x (i)作为(大概)列向量(请确认您的代码)。因此,正确的等效较低表达式应为:

theta = theta - (alpha/m)*sum((X*theta -y) .* X)

的确等同于顶部的其他向量化表达式,因为通常,对于任何两个(列)向量 ab,确实a.' * b等同于sum(a .* b)