我尝试实现 GMM,但在 em 算法中遇到了一些问题。
假设我有用于训练 GMM 的 3D 样本(stat1、stat2、stat3)。
我的一个 GMM 训练集几乎在每个样本中都有一个 stat1 的“0”。在训练期间,我在协方差矩阵的第一行和第一列中得到非常小的数字(如“1.4456539880060609E-124”),这在 EM 算法的下一次迭代中导致第一行和第一列中的 0.0。
我得到这样的东西:
0.0 0.0 0.0
0.0 5.0 6.0
0.0 2.0 1.0
我需要逆协方差矩阵来计算密度,但由于一列为零,我不能这样做。
我想过回到旧的协方差矩阵(和均值),或者用一个非常小的数字替换每个 0。
或者这个问题有另一个简单的解决方案吗?