最近使用pmtk3工具,做 HMM with Gaussian Mixture Model 的 fitting 的时候总是报错问题是
Sigma is not positive definite.
大致搜了下什么是非正定,以及解决办法。
(I)问题出现:四种情况可以出现此问题
1. 输入的 covariance 或者corelation matrix 非正定。例如在最小二乘规划中需要covariance or correlation 一定要正定的。
ML estimation 也需要这个要求。
2. 渐近互变异收矩阵 (asymptotic covariance matrix)。这个错误不是由于covariance matrix,而是a weight matrix to
be used with asymptotically distribution-free / weighted least squares (ADF/WLS) estimation
3. Sigma 的 estimate
4. other
(II) 什么是非正定
正定矩阵 <=> 矩阵的所有特征值为正
矩阵的正定性和矩阵的determinant有一定的关系。 determinant 是矩阵的标量函数,即求矩阵行列式的值。
一个对称的矩阵,矩阵的正定需要其所有的Principal submatrices 正定。
如果一个矩阵的determinant 是0, 则这个矩阵就是奇异矩阵 Singular matrix (其实就是对应的行列式值为0,或者n*n矩阵M 的秩 Rank(M)< n).
正定性的重要性在于,在某些运算中需要计算输入矩阵的逆矩阵。 如果矩阵是奇异的,那么在计算他的逆矩阵时候就会使得矩阵除0.
ML estimetion中也需要计算Sigma的逆,因为需要最大化输入matrix和sigma的相似度, 如果Sigma是非正定的,问题就会很大。
(III)为什么矩阵会不正定,怎么办
问题在于为什么输入的矩阵的determinant是0 或者负的。
怎么回避这些问题。
1. 线性相关
如果两个变量线性相关,那么他们的covariance 矩阵将会是非正定的。 解决办法是减少变量的个数,或者做主成分分析。
2. 初始值
初始值时候Sigma矩阵不为正定的矩阵, 确保参数初始正确。可以使用deta * I 矩阵初始化
3. 抽样误差
当数据很少的时候
4.数据读取错误
例如一个空的covariance 矩阵 总是非正定的。
5. other
(IV) HMM with Gaussian Mixture Model 出现问题
主要是因为Sigma 是variable的 covariance 矩阵。 因为我使用word 作为feature,而且只取top的一些word,时间片切分的有点短
感觉可能是因为word之间有些相关性导致问题的出现。而且我输出每轮的sigma发现sigma很多元素为0
使用PCA做了主成分分析 确实效果能好些。
http://www2.gsu.edu/~mkteer/npdmatri.html
Sigma is not positive definite.
大致搜了下什么是非正定,以及解决办法。
(I)问题出现:四种情况可以出现此问题
1. 输入的 covariance 或者corelation matrix 非正定。例如在最小二乘规划中需要covariance or correlation 一定要正定的。
ML estimation 也需要这个要求。
2. 渐近互变异收矩阵 (asymptotic covariance matrix)。这个错误不是由于covariance matrix,而是a weight matrix to
be used with asymptotically distribution-free / weighted least squares (ADF/WLS) estimation
3. Sigma 的 estimate
4. other
(II) 什么是非正定
正定矩阵 <=> 矩阵的所有特征值为正
矩阵的正定性和矩阵的determinant有一定的关系。 determinant 是矩阵的标量函数,即求矩阵行列式的值。
一个对称的矩阵,矩阵的正定需要其所有的Principal submatrices 正定。
如果一个矩阵的determinant 是0, 则这个矩阵就是奇异矩阵 Singular matrix (其实就是对应的行列式值为0,或者n*n矩阵M 的秩 Rank(M)< n).
正定性的重要性在于,在某些运算中需要计算输入矩阵的逆矩阵。 如果矩阵是奇异的,那么在计算他的逆矩阵时候就会使得矩阵除0.
ML estimetion中也需要计算Sigma的逆,因为需要最大化输入matrix和sigma的相似度, 如果Sigma是非正定的,问题就会很大。
(III)为什么矩阵会不正定,怎么办
问题在于为什么输入的矩阵的determinant是0 或者负的。
怎么回避这些问题。
1. 线性相关
如果两个变量线性相关,那么他们的covariance 矩阵将会是非正定的。 解决办法是减少变量的个数,或者做主成分分析。
2. 初始值
初始值时候Sigma矩阵不为正定的矩阵, 确保参数初始正确。可以使用deta * I 矩阵初始化
3. 抽样误差
当数据很少的时候
4.数据读取错误
例如一个空的covariance 矩阵 总是非正定的。
5. other
(IV) HMM with Gaussian Mixture Model 出现问题
主要是因为Sigma 是variable的 covariance 矩阵。 因为我使用word 作为feature,而且只取top的一些word,时间片切分的有点短
感觉可能是因为word之间有些相关性导致问题的出现。而且我输出每轮的sigma发现sigma很多元素为0
使用PCA做了主成分分析 确实效果能好些。
http://www2.gsu.edu/~mkteer/npdmatri.html

在使用HMM进行Gaussian Mixture Model拟合时遇到Sigma非正定的问题,这可能导致ML估计失败。非正定矩阵可能源于输入协方差矩阵、渐近互变异收矩阵估计、初始化值或数据问题。解决方案包括检查线性相关性、初始化参数、处理抽样误差和数据读取错误,以及应用PCA进行主成分分析。
5226

被折叠的 条评论
为什么被折叠?



