Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
各向同性平方指数核的numpy实现_Numpy_Machine Learning_Scipy - Fatal编程技术网

各向同性平方指数核的numpy实现

各向同性平方指数核的numpy实现,numpy,machine-learning,scipy,Numpy,Machine Learning,Scipy,我遇到了一个针对高斯过程的从头开始的实现: 在这里,各向同性平方指数核用numpy实现。它看起来像: 实施计划如下: def kernel(X1, X2, l=1.0, sigma_f=1.0): sqdist = np.sum(X1**2, 1).reshape(-1, 1) + np.sum(X2**2, 1) - 2 * np.dot(X1, X2.T) return sigma_f**2 * np.exp(-0.5 / l**2 * sqdist) 与Nando d

我遇到了一个针对高斯过程的从头开始的实现:

在这里,各向同性平方指数核用numpy实现。它看起来像:

实施计划如下:

def kernel(X1, X2, l=1.0, sigma_f=1.0):
    sqdist = np.sum(X1**2, 1).reshape(-1, 1) + np.sum(X2**2, 1) - 2 * np.dot(X1, X2.T)
    return sigma_f**2 * np.exp(-0.5 / l**2 * sqdist)
与Nando de Freitas的实施相一致:

但是,我不太确定这个实现如何匹配所提供的公式,特别是在sqdist部分。在我看来,这是错误的,但它是有效的(并提供了与scipy的cdist相同的结果,即平方欧几里德距离)。为什么我认为这是错误的?如果你把两个矩阵的乘积相乘,得到

它等于向量x_i的标量或nxn矩阵,具体取决于是否将x_i定义为列向量。然而,该实现返回一个带有平方值的nx1向量


我希望任何人都能对此有所了解。

我发现:实现是正确的。我只是不知道模糊符号(在我看来)有时在ML上下文中使用。要实现的是一个距离矩阵,矩阵a的每一行向量都要与矩阵B的行向量进行比较,以推断协方差矩阵,而不是(正如我所猜测的)两个矩阵/向量之间的直接距离