Clustering with Deep Learning: Taxonomy and New Methodsを読んだのでメモ
はじめに
Clustering with Deep Learning: Taxonomy and New Methodsを読んだのでメモ.
気持ち
DNNベースのクラスタリング手法について体系的にまとめて定式化することで,システマティックに新しいクラスタリングの方法を作れる様にしようというもの.
モデル構造
多くのDNNのクラスタリング手法は入力データクラスタリングしやすい表現(潜在表現)に落とし込むための"main branch"が存在する.そのためのモデルには従来以下の5つのモデルが使われる.
Multilayer Perceptron (MLP)
Convolutional Neural Network (CNN)
Deep Belief Network (DBN)
Generative Adversarial Network (GAN)
Variational Autoencoder (VAE)
各々の説明は割愛.
潜在表現
クラスタリングしやすい表現を得る際の方法としてmain branchの最後の表現のみを得る場合と複数の層から得る場合の2種類に分けられる.
- One layer
利点としては次元が低いこと.主に最終層の表現が使われる.
- Several layers
利点としては表現がリッチであること.
Non-clustering loss
Non-clustering lossはクラスタリングとは関係のない損失項で正則化項の様な役割として用いられる.以下の選択肢がある.
- No non-clustering loss
Non-clustering lossを使わない(正則化なし).局所解にハマりやすいという点が指摘されてるがたまにいい結果をもたらす場合もある.
- Autoencoder reconstruction loss
Decoderを使った再構成誤差.入力と再構成されたデータ間の距離を損失項とし一般的には平均2乗誤差.再構成に必要なデータの重要な情報を残した潜在表現を得られることが保証される.
- Self-Augmentation Loss
元のデータとaugmentationされたデータ間の表現の類似性を保証する.次のような関数で表される.
が元のデータでがaugmentationの関数.は潜在表現への変換では類似度でcross-entropy等.
- Other tasks
学習データに関する追加情報の項.クラスや属性ラベルが使える場合など.
Clustering loss
クラスタリング手法に依存した損失項.一番重要な部分で以下のような様々な方法が存在.
- No clustering loss
Non-clustering lossのみを使う方法.次元圧縮等の目的で使われる.基本的にclustering lossがあった方が良い結果となる.
- k-Means loss
K-Meansしやすい表現を獲得するための損失.データ点がクラスタ中心の周りに分布するような表現を得る方法で次のような損失関数で定義.
はデータ点の潜在表現ではクラスタ中心.は所属クラスタを表すboolean(普通はone-hot?).
- Cluster assignment hardening
データ点をクラスタにソフトに割り当てる損失.1例として次のstudentの分布を元にした関数を使ってソフトな割り当てを行う.
はハイパーパラメータの定数.データ点の潜在表現とクラスタ中心間の正規化された類似度となっていてクラスタの所属確率としてみなせる.Cluster assignment harging lossは上記の確率が一つのクラスタのみに大きくなるように強いる損失で,そのために次の補助分布を導入する.
この補助分布と正規化された類似度によって表現される分布間のKLダイバージェンスを損失とする.
- Balanced assignment loss
他の損失と同時に用いられ,クラスタ間の大きさのバランスをとる.各クラスタの大きさ(所属するデータ点の量)はある程度均一であるという仮定から成り立ち,次のKLダイバージェンスとして表現できる.
は一様分布ではクラスタの大きさに関する分布で次のように定義される.
当然データに偏りがある場合は成り立たず,クラスタサイズに何かしらの事前知識がある場合には一様分布を別な分布に置き換えることもできる.
- Locality-preserving loss
元の表現での位置関係のようなものを保存するように強いる損失.データ点の近傍集合に対し近傍のデータ点の類似度を使って次のような損失関数を定義する.
- Group sparsity loss
隠れユニットがクラスタ数個に分けられるという仮定を置いたもので,データ点の潜在表現はのように個の表現として与えられ,group sparsity lossは次のような損失関数として定義される.
はで定義される重み.ただしはグループサイズ.
- Cluster classification loss
後述のcluster updateの間に得られるクラスタの割り当て結果をクラスラベルとしてclassification lossに使うというもの.
- Agglomerative clustering loss
類似度が最も高いクラスタをstopping criterionが満たされるまで統合していき,統合されたクラスタ間の類似度を最適化するような手法.クラスタリングに適した表現が得られる.
損失の組み合わせ方
Clustering lossとnon-clustering lossは次のように組み合わされる.
はclustering lossではnon-clustering loss.は二つの関数のバランスをとるハイパーパラメータ.の決め方には次のような選択肢がある.
- Pre-training, fine-tuning
まずとして学習した後,とする方法.場合によっては結果を悪くすることもある.
- Joint training
として学習する方法.
- Variable schedule
を変数と見て,学習中に変化させていく方法.例えばを初期では小さくして徐々に大きくしていくなど.
基本的にもも欠点がある.
クラスタの更新
大雑把にクラスタリングは階層的なものとクラスタ中心に基づく手法に分けられる.学習段階でクラスタの割り当て結果が(クラスタ中心に基づく方法においてはクラスタ中心も)更新されていく.その更新の仕方は一般的に次の二つどちらか.
- Jointly updated with the network model
クラスタの割り当て結果は確率として定義され,ネットワークのパラメータとして定義され逆伝播によって最適化される.
- Alternatingly updated with the network model
クラスタの割り当て結果は決定的でネットワークのパラメータ更新とは別に更新される.この場合にはさらに次の二つの更新方法がある.
・Number of iterations
クラスタの割り当て結果が固定されるまで繰り返す方法
・Frequency of updates
ネットワークが回更新されるたびに割り当て結果を更新する方法
学習後
学習終了後,仮に学習過程でクラスタ結果が得られたとしていても,次の理由から学習された特徴を用いて再びクラスタリングし直すのが一般的.
- Clustering a similar dataset
獲得された潜在表現の一般生を評価するため別なデータで検証すべきというもの.
- Obtaining better results
ある特定の状況下においては学習過程で得られたクラスタ結果よりも良い結果が得られる場合があるというもの.
関連研究
以下に載せた論文の表1に従来手法が論文の分類に合わせてまとまっている.
New method
手法を項目ごとに分けて,従来手法を表1のようにまとめることで簡単に分析ができて,手法の組み合わせで課題に適した新しいアルゴリズムを組むことが可能というのが主張.実際そのようなアプローチで組み立てた手法のクラスタリング結果が図3,4に記述されていて良く機能しているように見える.
まとめ
サーベイでも手法提案でもない新しい論文の書き方を見た気がする.読みやすく綺麗にまとまったいい論文だった.