Kok*_*ose 7 machine-learning octave
在 Andrew Ng 对 ML 进行 MOOC 时,他在理论上解释了theta'*X给我们假设,而在做课程时我们使用theta*X. 为什么会这样?
小智 6
theta'*X用于计算X 为向量时单个训练示例 的假设。然后你必须计算theta'以获得 h(x) 定义。
在实践中,因为你有一个以上的训练例子,X是一个矩阵(你的训练集)与“MX N”的尺寸,其中m为你的训练实例数和n您的功能数量。
现在,您想用您的 theta 参数一步计算所有训练示例的 h(x) 对吗?
这是诀窍:theta 必须是 anx 1 向量,然后当您进行矩阵向量乘法 (X*theta) 时,您将获得一个 mx 1 向量,其中包含训练集(X 矩阵)中所有 h(x) 的训练示例)。矩阵乘法将逐行创建向量 h(x) 进行相应的数学运算,这将等于每个训练示例中的 h(x) 定义。
你可以手工计算,我已经做到了,现在很清楚了。希望我能帮助别人。:)
在数学中,“向量”始终定义为垂直堆叠的数组,例如
,表示3 维空间中的单个点。
“水平”向量通常表示一系列观察结果,例如
是 3 个标量观测值的元组。
同样,矩阵可以被视为向量的集合。例如,以下是四个 3 维向量的集合:
![]()
标量可以被认为是大小为 1x1 的矩阵,因此它的转置与原始矩阵相同。
更一般地,n×m 矩阵W也可以被认为是从 m 维向量x到 n 维向量的变换y,因为将该矩阵与 m 维向量相乘将产生一个新的 n 维向量。如果你的“矩阵”W是“1xn”,那么这表示从 n 维向量到标量的转换。
因此,在符号上,习惯上从数学符号的角度来引入问题,例如y = Wx。
然而,出于计算原因,有时将计算作为“向量乘以矩阵”而不是“矩阵乘以向量”更有意义。因为(Wx)' === x'W',有时我们会这样解决问题,并将其视为x'水平向量。另外,如果W不是矩阵,而是标量,则Wx表示标量乘法,因此在本例中Wx === xW。
我不知道你所说的练习,但我的假设是,在课程中他theta作为一个适当的垂直向量引入,然后将其转置以执行适当的计算,即从 n 维向量到标量(这是你的预测)。
然后在练习中,假设您正在处理标量“theta”,因此没有必要转置它,并且为了方便起见保留为 theta,或者,theta 现在被定义为水平(即转置)向量,以开始某些原因(例如打印方便),然后在执行必要的转换时保持该状态。
| 归档时间: |
|
| 查看次数: |
3623 次 |
| 最近记录: |