Math Coursera机器学习:梯度下降矢量化

Math Coursera机器学习:梯度下降矢量化,math,machine-learning,vectorization,octave,gradient-descent,Math,Machine Learning,Vectorization,Octave,Gradient Descent,我在理解如何在Coursera上提供的机器学习课程中对函数进行矢量化时遇到问题 在这一过程中,Andrew Ng解释说,这个假设可以被向量化为θ乘以x:< /p>的转置。 H(x) = theta' * X 我的第一个问题是当我在练习中实现这一点时。为什么纸上的矢量化是θ乘以x的转置,而在倍频程上是x乘以θ theta'*X % leads to errors while multiplying 我的第二个问题跟在第一个问题后面 当我想对梯度下降函数的和进行矢量化时: sum((h(x)-y

我在理解如何在Coursera上提供的机器学习课程中对函数进行矢量化时遇到问题

在这一过程中,Andrew Ng解释说,这个假设可以被向量化为θ乘以x:< /p>的转置。
H(x) = theta' * X
我的第一个问题是当我在练习中实现这一点时。为什么纸上的矢量化是θ乘以x的转置,而在倍频程上是x乘以θ

theta'*X % leads to errors while multiplying
我的第二个问题跟在第一个问题后面

当我想对梯度下降函数的和进行矢量化时:

sum((h(x)-y)*x))
我真的不明白,一旦矢量化,你是如何做到这一点的:

X'*(h(x)-y)

任何人都能解释这一点吗?

这是一个品味问题。通常的惯例是使用矩阵向量乘法,即您喜欢的。通过变换所有内容,您可以从一种模式切换到另一种模式。也就是说,如果乘法
X*theta
有效,那么转置的公式是
theta.*X.

X*θ中,
X
的每一行都包含一个采样点的数据(核函数值)

theta.*X
约定中,包含采样点数据的是
X
的列


<> P>这总是依赖于上下文,定义为行和列向量,以及如何将它们放在更大的对象或操作中。

< P>在StanSera ML MOOC的解释中,Andrew Ng,斯坦福,你也可以引用。他使用ththa作为n x 1的向量,但是在课程工作中,我们有一个1×N向量。所以θ实际上是θ的转置(θ’

为了回答这个问题,知道矩阵的大小很重要(X,θ,X,y…)。顺便说一句,你不应该使用
作为转置,请使用
谢谢你的回答。目前,我的X值是一个47x3矩阵,其中包含了以下可用的值:。第三列是y(47x1矩阵)。θ是[0;0;0]。在这种情况下,你知道为什么我们可以用这种方式将其矢量化吗