忍者ブログ

研究の掃溜ノオト

since 2011/2/13 知能ロボ研究の合間に思ったこととか書いてます。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

NMFにスパース性を

NMFを実装しました!
これは NMF=Non-negative Matrix Factorization の略で
日本語にすると非負値行列分解

NMFはPCAやICAと類似したデータの圧縮手法なのですが
その特徴はなんといっても行列の成分が全部非負であるということ!
例えば画像データは0~255という非負のスカラーの組みで表現されます.
これを2つの行列の積に分解した時やっぱりそれらの成分も非負になるようにします.

NMFについてはこちらが詳しいです.

しかしいざ自分で実装してみると思うように基底がとれず・・・
直感的に理解出来ない漠然とした基底ばかりになってしまいます。

原因はどうやら基底がスパースでないことにあるようで
今回はスパースなNMFの手法を解説した"Non-negative Matrix Factorization with Sparseness Constraints"を読みました.

”Non-negative Matrix Factorization with Sparseness Constraints”

特筆すべきはなんといってもスパースネスの定量的な定義でしょう!
この論文では, 与えられたベクトルxに対してそのベクトルのスパースネスを

と定義しています.

これはただひとつの成分が0でないときに1をとりすべての成分が等しい時に0を取るような振る舞いをします。
というのもL1ノルム÷L2ノルムという形上記の条件に従って √n〜1 までの範囲を動くからで, sparseness(x) はただそれを正規化しただけというわけです. (ちなみにnはベクトルの次元数)

この論文ではこの予め与えたスパースネスを満たすような基底及び係数を取ってくるNMFを提案しています。
それは勾配法で値を更新した後スパースネスを調節するという操作を繰り返すというものです.

どう考えてもこのスパースネスを調節するという操作が重要です.
これはL2ノルムを保ったままL1ノルムだけ変化させてスパースネスを調節するのですが
詳しいやり方は書いてあるのですがまだ理解が追いついてないです( ;∀;)

筆者はMATLAB用のパッケージを配布しているらしいですが
当然MATLABなんて持ってませんので今度Python で実装してみたいと思います.
PR

この記事へのコメント

Vodafone絵文字 i-mode絵文字 Ezweb絵文字
管理人のみ閲覧できます
 

この記事へのトラックバック

トラックバックURL

プロフィール

HN: 相馬 豊
所属:KU
連絡先(Twitter): @i-horse
インタビューはこちら

カレンダー

09 2017/10 11
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

Twitter

アンケート

マクロミルへ登録

Google Adsence

アクセス解析

リンク

Copyright ©  -- 研究の掃溜ノオト --  All Rights Reserved

Design by CriCri / Photo by momo111 / powered by NINJA TOOLS / 忍者ブログ / [PR]