我感到很愚蠢,不理解这个东西为什么不能工作。
我想用一些数据拟合高斯过程。我的协方差函数是基本的平方指数函数:
k(x,x0) =σ0²*exp(-(x-x0)²/(2*λ²))
我有三个超参数需要拟合我的数据:来自协方差函数的两个参数(σ和λ),以及假设我的数据有噪声时来自σ0。 所以我只需要最小化负对数似然,对吧?
logp(y|X,θ) =1/2*t(y)*C(θ)^(−1)*y+1/2log|C(θ)|+(n/2)*log 2π
使用 θ=(σ,λ,σ0)
和 C(θ)=K-σ0²*I
其中,K 是对我的 x 向量应用 k 得到的协方差矩阵。
唯一的边界条件是参数需要为正数。
但是,无论我使用什么优化算法,都会失败,因为它直接进入了 -Inf(负无穷)。 在经过几个小时认为我不能以适当的方式使用优化算法之后,我意识到这其实是很正常的:
我的 σ0 和 σ 直接变成 0,因为这样可以得到 K=0,C=0,所以 det(C)=0,我的负似然函数变成了 -Inf。
当然,这是无意义的,最适合数据的方差不能为 0。但是我不知道我在这里做错了什么,特别是因为这个公式写在哪里都是这样,现在我想不出如何优化它能给出 σ=0 以外的结果...
我错在哪里?