【问题标题】:Writing sigmoid function with input as (X * theta)编写输入为 (X * theta) 的 sigmoid 函数
【发布时间】:2018-12-24 13:45:48
【问题描述】:

在机器学习课程中,我无法想象下面的输入。

我们在逻辑回归中有以下等式:

我们可以在sigmoid.m 中将其写成八度音阶如下:

g = (1 ./ ( 1 + e.^(-z)));

现在,要计算costFUnction.m,我们得到的概率为:

h = sigmoid(X*theta);

从上图来看,不应该是:

h = sigmoid(theta'*X);

我在这里错过了什么。我是 ML 的新手,如果我在这里遗漏了什么,请原谅我。

【问题讨论】:

  • size(X) 和 size(theta) 是多少?

标签: machine-learning octave logistic-regression


【解决方案1】:

最重要的是理解每个向量的含义。在他们谈论的大多数课程中

    h = theta'* x

但这里他们使用列向量,因此 h 是一个训练示例的标量。 矢量化符号告诉你

    h = X * theta

其中 X 是所有训练示例的矩阵,其中每个示例是一行,特征是列。所以 m x n 有 m 个训练示例和 n 个特征。您希望 h 为每个训练示例提供一个输出,因此您需要一个 m x 1 矩阵。您知道 theta 将是一个 n x 1 矩阵,因为它是每个特征的一个 theta 并且您有 1 个模型。如果您执行我在顶部写下的第二个公式,您将得到 h 一个 m x 1 矩阵,这是首选。

【讨论】:

    【解决方案2】:

    如果你参考the material shared here,你可以看到

    而我们想要从h(x) 得到的是:

    将其可视化:

    X =  [ 1 x1 ; 1 x2 ; 1 x3;]
    theta = [ t0 t1;]
    X * theta
    % will give  [ t0+(x1*t1) ; t0+(x2*t1) ; t0+(x3*t1) ; ] 
    

    上述矩阵的每一行代表单独的假设。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-24
      • 2021-04-25
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 2017-10-08
      • 1970-01-01
      • 2021-07-26
      相关资源
      最近更新 更多