在rbf.py中,k(r)的数学定义为:
k(r) = \sigma^2 \exp \\bigg(- \\frac{1}{2} r^2 \\bigg)
然而,rbf.py中的K_of_r方法跳过了sigma^2,而是使用了sigma(self.variance)。这里我是不是遗漏了什么,还是K_of_r方法的实现存在bug?
def K_of_r(self, r): return self.variance * np.exp(-0.5 * r**2)
我认为实现应该如下:
def K_of_r(self, r): return (self.variance ** 2) * np.exp(-0.5 * r**2)
https://github.com/SheffieldML/GPy/blob/devel/GPy/kern/src/rbf.py#L34
回答:
sigma是标准差。方差等于标准差的平方。因此sigma^2等于方差。