我有一个模型可以估计物体位于二维空间中的概率。将高斯与我选择的一组标准混合使用,我得到了有趣的结果,现在我面临另一个问题:找到最大概率的点。
我想知道,在高斯混合中找到最大概率点是一个易于分析的问题还是需要使用搜索方法?
我有一个模型可以估计物体位于二维空间中的概率。将高斯与我选择的一组标准混合使用,我得到了有趣的结果,现在我面临另一个问题:找到最大概率的点。
我想知道,在高斯混合中找到最大概率点是一个易于分析的问题还是需要使用搜索方法?
如果你有个一维高斯的混合,你可以有 1 到局部最大值之间的任何值:
weights <- c(0.2,0.3,0.5)
weights <- weights/sum(weights)
sds <- c(1,2,3)
means <- c(-1,0,1)
xx <- seq(min(means-3*sds),max(means+3*sds),by=0.01)
plot(xx,
rowSums(mapply(dnorm,mean=means,sd=sds,MoreArgs=list(x=xx))),
type="l",xlab="",ylab="")
means <- c(-5,0,5)
xx <- seq(min(means-3*sds),max(means+3*sds),by=0.01)
plot(xx,
rowSums(mapply(dnorm,mean=means,sd=sds,MoreArgs=list(x=xx))),
type="l",xlab="",ylab="")
当然,(其中一些)这些最大值可能具有相同的高度,因此您可能不仅有多个局部最大值,而且还有多个全局最大值。
正如Martin O'Leary 非常有帮助地指出的那样,链接到这个非常有帮助的页面,这在更高维度上是不成立的。相反,您可以轻松地在更高维度上拥有超过最大值。
因此,你不会到处寻找你的最大值。在混合密度上使用多个起始值和一个简单的牛顿型最大化器,在找到的每个局部最大值处评估密度,并输出具有最高密度的局部最大值。
在一个维度中,如果在搜索过程中您发现了不同的局部最大值,那么您知道密度最高的那个是您的全局最大值之一。如果不是,您的局部最大值可能少于(如上面的示例),或者您可能错过了一些(以及其中的全局最大值)。如上所述,此检查不适用于更高的维度。