矩阵(256 * 256)的行列式可能是无穷大的

时间:2014-01-28 14:26:01

标签: matlab matrix artificial-intelligence classification

我有(256 * 1)特征向量来自(16 * 16)灰度图像。向量的数量是550 当我计算这个向量的样本协方差并计算协方差矩阵行列式时 答案是inf

有限矩阵的可能决定因素是有限范围(0:255)的值是无限的还是我错误的某些地方?

事实上,我想要用贝叶斯估计进行分类,我的分布是高斯分布的 我计算行列式是inf和最终答案(似然)是零。

我的代码的一部分:

Mean =  mean(dataSet,2);
MeanMatrix = Mean*ones(1,NoC);
Xc = double(dataSet)-MeanMatrix; % transform data to the origine
Sigma = (1/NoC) *Xc*Xc'; % calculate sample covariance matrix 
Parameters(i).M = Mean';
Parameters(i).C = Sigma;

likelihoods(i) = (1/(2*pi*sqrt(det(params(i).C)))) * (exp(-0.5 * (double(X)-params(i).M)' * inv(params(i).C) * (double(X)-params(i).M)));

变量我展示我的课程; 变量X显示我的特征向量;

3 个答案:

答案 0 :(得分:6)

这种矩阵的决定因素可以是无限的吗?不,它不能。

它可以评估为无限吗?当然是。

这是一个具有有限数量元素的矩阵的例子,它不是太大,但行列式很少会被评估为有限数:

det(rand(255)*255)

答案 1 :(得分:1)

在你的情况下,可能发生的事情是你的数据点太少而不能产生全秩协方差矩阵。

例如,如果您有N个示例,每个示例都包含维度dN<d,那么您的d x d协方差矩阵将不会满级,并且会有决定性为零。

在这种情况下,不存在矩阵逆(精度矩阵)。但是,尝试计算逆的行列式(通过取1/|X'*X|=1/0 -> \infty)将产生无限值。

解决此问题的一种方法是将协方差设置为X'*X+eps*eye(d),其中eps是一个较小的值。该技术对应于在X的元素上放置弱先验分布。

答案 2 :(得分:0)

不,这是不可能的。它可能是单数,但是将元素作为一个较大的值会有一个决定性的价值。