1024次元の月画像が32成分で蘇る、Truncated SVDの威力
Truncated SVDは、行列の特異値分解で上位n個の特異値のみを残すことでデータを圧縮する手法だ。1024x1024の月画像に適用すると、32成分(全体の約3%)で元の16分の1の数値量ながら月と認識できる画像が再構成される。PCA/SVDは分散に基づく基底変換であり、上位成分が情報の大部分を担う。回転した図形では離散化の影響で分解が不純になるなど、ケースによる難易度の違いも興味深い。
注目すべきは(PCA/SVDの魔法だが)、誤差グラフがいかに急速に減少するかだ。これは最初の成分がMに存在する情報の大部分を捉え、後続の成分は高周波・低振幅の微細な詳細しか運んでいないことを証明している。
- bee_rider
切り詰めSVDを使いたいなら、ランダム化SVDで満足できる可能性がかなり高いですよ。
論文「Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions」(Halko, Martinsson, Tropp)はarxivにあります。一般的にかなり読みやすいです(少し数学的ではありますが)、それに多くの一般的なユースケース向けの優れた擬似コードも載っています。
- nomel
誤差の減少曲線はいつも同じ形をしているように見えます。この形には名前があるのでしょうか?いくつかの点をサンプリングするだけで、任意の打ち切りに対する誤差をうまく推定できると思います。
そして、これは素朴な仮定ですが、これ(打ち切りSVD)を適用する前に画像に何らかの可逆変換を施して、「知覚的な」誤差の一部を減らせるのではないかと思いました(たとえ数値誤差を犠牲にしても)?
- thearn4
私の博士課程時代を少し思い出させる話題で、かつてはSVDと離散積分作用素への応用についてよく考えていました。
参考までに、著者の脚注について:打ち切りSVDと畳み込みの低ランク近似への応用に興味がある方がいれば、まさにそれについての私の非常に古い論文があります! :)
https://www.sciencedirect.com/science/article/abs/pii/S01689...