我在理解如何在Coursera上提供的机器学习课程上向量化函数时遇到了问题。
在课程中,Andrew Ng解释说,假设可以向量化为theta乘以x的转置:
H(x) = theta' * X我的第一个问题是当我在练习中实现它的时候。为什么纸上的向量化是θ乘以x的转置,而在Octave上是X乘θ?
theta'*X % leads to errors while multiplying我的第二个问题紧跟第一个问题。
当我想要向量化这个梯度下降函数的和时:
sum((h(x)-y)*x))我真的不明白你是怎么做到这一点的,一旦矢量化:
X'*(h(x)-y)有人能解释这个吗?
发布于 2017-10-31 15:51:26
这是一个品味的问题。通常的约定是矩阵-向量乘法,也就是你喜欢的。您可以通过转置everything从一种模式切换到另一种模式。也就是说,如果您的乘法X*theta有效,则转置后的公式为theta.' * X.'
在X*theta中,X的每一行都包含一个采样点的数据(内核函数值)。
在theta.'*X约定中,X的列包含采样点数据。
所以它总是依赖于上下文,什么被定义为行,什么被定义为列向量,以及它们如何在更大的对象或操作中组合在一起。
发布于 2018-08-09 23:01:23
斯坦福大学在Andrew Ng的Coursera ML MOOC中解释理论时,你可能也是refering.He,使用thetha作为n×1的向量,但在课程工作中,我们有一个1 x n的向量。所以实际中的theta是theta(theta')的转置
https://stackoverflow.com/questions/46742462
复制相似问题