前回実装した、NNLSのLawson–Hansonアルゴリズムで、能動集合(passive set)に制限した最小二乗問題を解くときにコレスキー分解を行っている。
辞書行列Eが、各半音ごとに独立した倍音スペクトル分布を列として持つため、ほぼフルランク(すべて線形独立)であることを前提にしている。
コレスキー分解とは?
コレスキー分解とは、対称正定値行列 を次のように分解する方法である。
ここで:
は 下三角行列(対角要素は正)
は
の転置
つまり、複雑な行列を「三角形の形」に分解できる、というのがコレスキー分解のポイントである。
直感的なイメージ
行列の連立方程式を解くとき、そのままでは計算が重かったり不安定だったりする。
しかし三角行列は「順番に代入していくだけ」で解ける。
具体例で理解する
例として、次の行列を考える:
この行列は対称かつ正定値である。
コレスキー分解すると、
となり、
が確認できる。