【问题标题】:SVM Kernel's O(n) timeSVM 内核的 O(n) 时间
【发布时间】:2018-11-12 08:06:58
【问题描述】:

尽管在 O(n^d) 维空间中工作,但我无法理解如何计算内核 K(x,z) 只需要线性时间。 请解释一下。我是 ML 的新手。

【问题讨论】:

    标签: machine-learning svm machine-learning-model kernel-methods


    【解决方案1】:

    为了计算K(x, z),您必须:

    • 执行O(n) 乘法x1 * z1, x2 * x2, ..., xn * zn,
    • 执行O(n)添加(x1 * z1) + (x2 * x2) + ... + (xn * zn)
    • 执行两个O(1) 操作_ + c_ ^ d

    因此,计算K(x, z) = (dot(x, z) + c)^d 需要O(n) 时间。

    特征空间的维数远高于计算内核所需的时间是完全正常的:否则我们一开始就不需要内核,因为我们可以直接计算特征向量。

    如果您想要一个更极端的例子,请查看K(x, y) = min(x, y) 的非负实数x, y。评估min(x, y) 需要一定的时间。但是,特征空间是L^2(R)(实线上的平方可积函数,与标准希尔伯特空间标量积),特征映射是phi(x) = chi_{[0, x]},其中chi_{[0, x]}表示区间@的特征函数987654339@。因此,特征空间是无限维的,但评估内核所需的时间是恒定的。

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 2013-11-01
      • 1970-01-01
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      相关资源
      最近更新 更多