我对线性代数还很陌生,目前正在参加Andrew Ng的机器学习课程。我正在努力了解以下两个功能是如何相同的。我正在对梯度下降进行矢量化处理,以进行线性/逻辑回归。
theta = theta - (alpha/m)*(X')*(X*theta - y)
theta = theta - (alpha/m)*sum(X*theta -y)*x(i)
[我的想法是x(i)
是一个向量,为了进行向量乘法,我需要对其进行转置,但是当尝试模拟一个示例时,我没有看到这是多么必要。任何帮助或解释将不胜感激。
假设您正在参考底部的等式,第4讲,第8页,则求和错误。术语x [(i)的意思是内部,而不是外部。在“向量化”的情况下,您的输入X包含所有单个观测值x(i)(大概)为列向量(请确保与您的代码确认)。因此,正确的等效较低表达式应为:
theta = theta - (alpha/m)*sum(X*theta -y .* X)
它的确等价于顶部的其他向量化表达式,因为通常,对于任何两个vectors a
和b
,a * b
等同于sum(a .* b)
]是正确的>