CV / MLのメモ

論文・勉強の備忘録

Deep Clustering for Unsupervised Learning of Visual Features (ECCV2018)

Mathilde Caron, Piotr Bojanowski, Armand Joulin, and Matthijs Douze, "Deep Clustering for Unsupervised Learning of Visual Features", ECCV2018, arxiv,

はじめに

最近流行ってきているNNの教師なし表現学習手法. シンプルな手法かつ従来の教師なし表現学習と比較して圧倒的な効果を示したため,ECCVの論文の中でもいち早く話題に上がってた.

Approach

基本的には以下の手順を繰り返していく.
CNNに画像サンプルを入力→出力ベクトルをk-meansでクラスタリング→各サンプルを所属するクラスタでpseudo labeling→得られたpseudo labelで識別タスクをCNNで学習→最初に戻る
この時,CNNはランダム初期化されている点が気になるところ.すなわち,ランダム初期化されたCNNによって得られる中間特徴は入力の特徴を一切捉えない意味のない出力となるように思われるため,それをクラスタリングして得られるpseudo labelも意味のないものになりそう.しかし,実際はランダム初期化CNNから得られる特徴量を入力に,MLPを学習させてもImageNetで 12%(\ggchance rate = 0.1%) 出る研究結果がある.

これはconvolution演算自体が画像入力に対して,非常に有効なpriorを持っているためだと論文中で言われている. 最終convolution層の出力を用いているが,すべての処理はそれに対してPCAで256次元に圧縮されている.また.入力画像はなぜかSobel filteringされている.

f:id:tomoyukun:20180810230135p:plain

Results

ベンチマークである"ImageNetで教師なし学習"→"Pascal VOCでfinetuning"で圧倒的な精度. f:id:tomoyukun:20180811000853p:plain

ImageNetのクラス数1000に対してクラスタ数は10000が最も良くなった. iterationを詰むにつれてImageNetのクラス割り当てと提案手法のクラスタ割り当ての正規化相互情報量が大きくなっていくのが面白い. また初期iterarionではiteraritaion間の正規化相互情報量が相対的に小さい(割り当て方が大きく変化している)のに対して,iterarionが進むと大きくなっていく傾向がある. f:id:tomoyukun:20180811001229p:plain

Memo

論文を読んだだけでは不思議に思ったところ.

  • なぜ前iterarionよりもsemanticなpseudo labelが与えられるか

CNNはpseudo labelを用いて学習するとき,同じpseudo labelに属するサンプルは(特に識別器が線形だった場合)特徴空間上でユークリッド距離が近くなるように学習されると考えられる. すると,次iterationのk-meansクラスタリングでも前iterationと同じクラスタリングとかなり近いクラスタ割り当てになる傾向があると思われる.これが繰り返されても.感覚的にはiterationが進むにつれて最初の各セントロイドにサンプルが集まっていく更新がされるだけのように思えてしまう.

これは以下の要素によって解決されていると考えた.

  • k-meansとSGDの不安定性

k-meansは最初にランダムなセントロイドを撒いて,ユークリッド距離をベースにセントロイドの位置を更新していくが,初期のセントロイドの位置にクラスタリング結果が大きく依存する傾向がある. ランダム性の中に高頻度でまとまるクラスタとそうでないクラスタがあるとすると,前者は(SGD学習で得られる)様々なCNNのパラメータとk-meansの初期seedへの依存が少ない,汎用的なクラスタであると考えられ,後者は逆であると考えられる. ここでいう汎用的なクラスタが,意味のあるラベルだとすると,それが高頻度にpseudo labelingされるため,CNNにとっては良いことが起きそう. このように選択的に汎用クラスタが残っていくことが,実験内のiteration間の相互情報量が徐々に大きくなっていくのとも結びつくと考えた. 汎用的なクラスタはどのように出現するのかについてはランダム性によってたまたま生じるのみならず,convolution演算のpriorがうまく発生させそうだと無理やり納得した

学習時の特徴分布の動きを見てみたい.