【发布时间】:2018-03-26 07:56:04
【问题描述】:
我在了解如何在 Coursera 上提供的机器学习课程中对函数进行矢量化处理时遇到问题。
在课程中,Andrew Ng 解释说,可以将假设向量化为 theta 乘以 x 的转置:
H(x) = theta' * X
我的第一个问题是当我在练习中实现它时。为什么纸上的向量化是 theta 的转置乘以 x 而 Octave 是 X 乘以 theta?
theta'*X % leads to errors while multiplying
我的第二个问题跟第一个一样。
当我想向量化这个梯度下降函数的总和时:
sum((h(x)-y)*x))
我真的不明白你如何在矢量化后得到这个:
X'*(h(x)-y)
谁能解释一下?
【问题讨论】:
-
要回答这个问题,了解矩阵的大小(X、theta、x、y...)很重要。顺便说一句,你不应该使用
'作为转置,使用.' -
感谢您的回答。目前我的 X 值是一个 47x3 矩阵,其中填充了一个和值:github.com/yhyap/machine-learning-coursera/blob/master/…。第三列是 y(47x1 矩阵)。 Theta 为 [0 ; 0; 0]。在这种特殊情况下,你知道为什么我们可以这样对它进行 vecotrize 吗?
标签: math machine-learning vectorization octave gradient-descent