gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 05:11:45 29 4
gpt4 key购买 nike

我遇到了一个从头开始实现的高斯过程: http://krasserm.github.io/2018/03/19/gaussian-processes/

在那里,各向同性平方指数核是在 numpy 中实现的。看起来像: enter image description here

实现是:

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 的实现一致:https://www.cs.ubc.ca/~nando/540-2013/lectures/gp.py

但是,我不太确定这个实现如何匹配提供的公式,尤其是在 sqdist 部分。在我看来,这是错误的,但它有效(并且提供与 scipy 的 cdist 相同的结果,具有平方欧氏距离)。为什么我觉得不对?如果你将两个矩阵的乘积相乘,你会得到

enter image description here

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

我希望任何人都能阐明这一点。

最佳答案

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

关于numpy - 用numpy实现各向同性平方指数核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55218154/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com