HMM 做训练的 Sigma not positive definite (非正定的)原因及处理办法
来源:互联网 发布:松下plc编程实例 编辑:程序博客网 时间:2024/05/20 00:36
最近使用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 做训练的 Sigma not positive definite (非正定的)原因及处理办法
- Positive-definite matrix(正定矩阵)
- 正定矩阵(positive definite matrix)
- 正定矩阵(Positive-definite Matrix)
- 正定矩阵 Positive definite matrix
- 正定矩阵(Positive-definite Matrix)
- 正定矩阵(definite matrix)
- HMM的训练
- 网页打开慢的原因及处理办法
- Positive Semi-definite matrix
- Positive-definite matrix
- Positive-definite kernel
- MIMO中矩阵的小笔记(正定,半正定)
- regExp的test方法取得的值变化的原因及处理办法
- 鼠标.键盘.HOOK时.会时不时的有个mousemove进来.原因及处理办法
- 连接oracle时出现 ORA-12514 错误信息的原因及处理办法
- 【深度剖析HMM(附Python代码)】2.隐马尔科夫链HMM的EM训练过程
- 关于线性模型出现非正定矩阵的问题解释
- 香梨股份 600506 2013-08-27
- 查找二叉树中的最大距离
- Hoj 3133 White-box testing
- 【python】python 转换为json时候 汉字编码问题
- 软件编码规范
- HMM 做训练的 Sigma not positive definite (非正定的)原因及处理办法
- Java中的main线程是不是最后一个退出的线程
- n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系, 存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j 的队伍中更强的一支。
- 求1+2+3+...+n
- hashSet根据compareTo()方法的写法不同,hashSet是可以加入重复元素的(即使这2个元素的hashCode相同)。
- DOM编程之一
- VMware下扩展硬盘空间 fdisk命令详解
- 构建静态链表
- 关于MKMapView操作过程崩溃问题