SELF-LABELLING VIA SIMULTANEOUS CLUSTERING AND REPRESENTATION LEARNINGを読んだのでメモ
はじめに
SELF-LABELLING VIA SIMULTANEOUS CLUSTERING AND REPRESENTATION LEARNINGを読んだのでメモ. K-Meansクラスタリングによりデータにラベル付け(self-labeling)を行うDeepClusterに対し,self-labelingで生成されたラベルとモデルの出力間のクロスエントロピーを最適輸送問題として考えることでself-labelingを行う手法.
Method
事前準備として色々定義する.
まず,データを適当な空間マッピングするニューラルネット
を考える.
ただし,
は特徴ベクトル.
さらに,特徴ベクトルを入力とし識別を行うclassification head
を考える.
ただし,
はカテゴリ数を表す.
データは
点
あるとし,それぞれのデータに対応するラベルを
とする.
最終的な分類スコアはsoftmax関数を用いて下記のように計算される.(論文の通りに書いたが,ここまでの定義に従えば
を挟んでいるので
は
となる気がする.)
モデルは下記のクロスエントロピーを最小化するように学習が進められる.
上記の学習は,ラベルが利用できない場合にはself-labelingの方法によって自動的にラベル付けを行う必要がある.
半教師あり学習などの枠組みではモデルとラベル
の同時最適化となるが,完全な教師なし学習では全てを同一ラベルにアサインすることによってコストを簡単に最小化してしまう.
そのためここではラベルを事後分布
として下記のようにクロスエントロピーを書き直す.
仮に事後分布をクロネッカーのデルタとして決定的に定義をしたのならば上記の式は最初に定義したクロスエントロピーの式に等しい([E(p,q)=E(p|y_1,\dots,y_N)]).
この式でも自明な解にたどり着くため,下記のように制約を与えることでこれを避ける.
この制約は,各データには一つのラベルしか割り当てが行われず,各カテゴリに属するデータ数が均一であることを意味する.
するとこの問題は最適輸送理論の問題として考えることが可能となる.
より具体化するためをモデルから予測された
の同時確率行列とし,同様に
を
の同時確率行列とする.
ここでは
を次のような輸送多面体の要素(すなわち
ではなく
の連続値)に緩和する.
は全要素が1の列ベクトルで,
は
を列方向,行方向へ積分することを意味している.
ここで
が条件付き確率となることを要請する.すなわち
これにより元の目的関数(クロスエントロピー)は次のように書き直される.
はフロべニウス内積(要素積+総和)で
は行列の各要素ごとに適用されるものとする.
結果として最適な
は次の最小化問題を解くことで得られる.
これは線形計画法で溶けるが,通常データ数がミリオンオーダーでクラス数が数千になるので解くことが困難である. ここではSiknhorn Distance(以前まとめたブログ記事)で導入された次のような正則化を導入することで高速に解く方法を提案する.
はKullback-Leiblerダイバージェンスで
は
の確率行列.
この正則化の導入により上記の最小化問題のかいが次のように表現される.
注意としては行列の
乗ではなく要素毎の
乗を表す.
と
は
が確率行列の性質を満たすためのスケーリング係数ベクトルで単純な繰り返し計算で得られる.
面白い知見としては,
は大きな値を取れば元の最適輸送問題と等しくなるが,ここでは
を大きくして正確に解くよりも適当な固定の
を使う方が良い結果が得られた.
おそらく
の緩和により,各クラスに属するデータが均一であるという制約も多少緩和されるためや,smooth labelを使うと良いという知られた知見によるものと考えられる.
最終的なアルゴリズムとしては,モデルと
の最適化を交互に解くことで表現学習をする.
より具体的には
- 現在得られている
に対し,クロスエントロピーの最小化により
のパラメータを更新.
- 現在得られているモデル
に対し
を計算し,
と
を次のように更新することで
を得る.
の更新は行列ベクトル積であり計算オーダーは
であるため,線形計画法で解くよりもリーズナブルに計算が可能(とは言え
くらいなのでどうなのかという疑問がある).
論文によれば繰り返し計算はGPUで収束まで2分程とのこと.
解釈
ここまでのアルゴリズムが結局何をやっているのかを考える.
簡単のため,データをそのインデックス
として
と書き換える.
すると
とかける.
この最小値はの時に得られる.
ここで,
,周辺化エントロピー
が定数,
から
もまた定数と仮定する.
するとエントロピーから二つの定数を引くことで
と相互情報量が導かれる. すなわち結果として元の問題は相互情報量の最大化に等しくなっている.
まとめ
DeepClusterとの関連や,data augmentationの活用,マルチタスクでの学習に関する説明は省略した.
データ数が各クラス毎に均一という仮定を導入することで最適輸送問題としてラベリングを定式化する着眼点が非常に面白かった.
一方で,をデータ数に対して線形時間で得ることができると言っているがデータ数を考えるとそんな簡単な話でもない気がするがどうなのか.
また
の更新の際に
を計算する必要があるが,それもナイーブには全データを一回モデルに入力する必要があるので実装上どう実現されているか気になるところ(実験の章はまともに読んでいないので書いてあるかも…).