特異値分解(SVD)でどの特異値まで残すか決める方法

特異値分解では Trancation (小さな特異値を無視すること) でデータを圧縮することができます.

今回は特異値の閾値の決め方について話したいと思います.

  • オリジナルデータの分散かエネルギーの90%や99%でtrancateするとあらかじめ決めておき,そのような特異値の大きいほうからr番目以降を削除する.
  • 特異値の分布の“肘”を見つける.“肘”とは分布の傾きが大きく変化するような点のことで重要なパターンを表現している特異値とノイズを反映している特異値を分ける点に相当する.
  • 低いランクの構造にガウシアンホワイトノイズが混ざったデータと仮定して閾値を決める方法[1].数式で書くと\(X=X_{true}+\gamma X_{noise}\)と考える方法.
    ノイズ強度\(\gamma\)がわかっているとき閾値\(\tau\)を以下の数式で決定し\(\tau\)以下の特異値を消す.
    もし\(X \in R^{n \times n}\)のように正方行列の時
    \[\tau = (4/\sqrt{3})\sqrt{n} \gamma\]
    もし\(X \in R^{n \times m}\)のように長方形の行列で\(m \ll n\)のとき,上記の式の\(4/\sqrt{3}\)は\(\beta = m/n\)であらわされる以下の関数に置き変わる.
    \[\tau = \lambda (\beta) \sqrt{n} \gamma\]
    \[\lambda (\beta) = \left(2(\beta + 1) + \frac{8\beta}{(\beta+1) + (\beta^2+14\beta+1)^{1/2}}\right)^{1/2}\]
    もし\(n \ll m\)のとき\(\beta = n/m\)
スポンサーリンク

参考文献

  1. Gavish, Matan, and David L. Donoho. “The optimal hard threshold for singular values is \(4/\sqrt {3} \).” IEEE Transactions on Information Theory 60.8 (2014): 5040-5053.

コメント

タイトルとURLをコピーしました