機械学習とかコンピュータビジョンとか

CVやMLに関する勉強のメモ書き。

REMIXMATCH: SEMI-SUPERVISED LEARNING WITH DISTRIBUTION ALIGNMENT AND AUGMENTATION ANCHORINGを読んだのでメモ

はじめに

REMIXMATCH: SEMI-SUPERVISED LEARNING WITH DISTRIBUTION ALIGNMENT AND AUGMENTATION ANCHORINGを読んだのでメモ. MixMatchにdistribution alignmentとaugmentation anchoringの二つのテクニックを取り入れて改善したというもの. MixMatchについてのまとめはここ

Distribution alignment

コンセプトとしてはラベルなしデータのラベルをモデルの出力から予測する際に,データのラベルに関する事前分布を利用してfairにしようというもの. つまり,データのラベルをyとした時,p(y)を利用してモデルの推論結果を修正してより良い擬似ラベルを作るというもの. 具体的にはBridle et al. 1992の相互情報量の定式化をベースにして,モデルの出力のサンプル平均で推論する方法を提案. より具体的には,あるデータxに関するモデルの推論結果をq=p_\text{model}(y|x;\theta)とした時に\tilde{p}(y)=\mathbb{E}_xp_\text{model}(y|x;\theta)としようというもの. これを使って推論結果q\tilde{q}=\mathrm{Normalize}(q\times p(y)/\tilde{p}(y)), \mathrm{Normalize}(x)_i=x_i/\sum_jx_jと正規化するというもの. これをdistribution alignmentと定義. distribution alignmentには真の分布p(y)が含まれているが,ここでは学習時に与えられているラベル付きデータを使って推論する.

Augmentation anchoring

コンセプトしては弱いdata augmentation(flipやクロップなど)を施したサンプルをanchorとし,そのanchorからdistribution alignmentとMixMatchでも使われていたtemperature sharpeningにより擬似ラベルを生成し,(具体的には少し違うが)強いaugmentation(AutoAugmentで使われるようなaugmentation)を施したサンプルの教師に使うというもの. もともとのMixMatchでは入力されたサンプルに対してK個のaugmentされたサンプルを作り,そのK個のサンプルの推論結果の平均を擬似ラベルとしていた. 強いdata augmentationを使って学習をしたいが,それをしてしまうと推論結果が安定せず擬似ラベルの質が悪化するという考え方から提案されている.

ここでは強いaugmentationとしてAutoAugmentを使いたいという思いがあるが,AutoAugmentは教師あり学習の枠組みであるため,ラベルデータの少ない半教師ありの条件では適用が難しい. そのためここではCTAugmentというものを提案. 具体的にはRandomAugmentと同様にaugmentation方法をランダムにサンプリングするが,各augmentationのハイパーパラメータを学習中に調整していくというもの. 方法としてはFastAugmentの分布の一致を図るという気持ちに近く,augmentされたデータの尤度が高くなるようにパラメータを調整する. AutoAugmentと同様に強度は離散化されているとし,強度をカテゴリカル分布で表現する. mを学習パラメータとし,強度のカテゴリカル分布は\mathrm{Categorical}(\mathrm{Normalize}(\hat{m}))として表現されるものとする. ただし,\hat{m}_i=\mathbb{1}[m_i>0.8m_i]. 学習中,m_im_i=\rho m_i+(1-\rho)\omegaとして更新していく. ただし,\rho=0.99とし,強度の初期値は1とした. ここで\omegaはラベル付きデータを使って\omega=1-\frac{1}{2L}\sum|p_\text{model}(y|\hat{x};\theta)-p|として計算される. ただし,pは正解のラベルで.Lは不明.

学習について

基本的にはAlgorithm 1の通り. Weak Augmentationによって作られたサンプルの推論結果にdistribution alignmentとtemperature sharpeningにより擬似ラベルを生成. 別途CTAugmentによるstrong augmentationでK個のサンプルを生成. 後はラベル付きデータとラベルなしデータをごちゃ混ぜにmixupを適用したサンプルと,ラベル付きサンプル,strong augmentされたサンプルと擬似ラベルのペアを使って学習をする. 細かなnotationを無視するとロストしては以下.

\displaystyle
\sum_{x,p\in\mathcal{X}^\prime} H(p,p_\text{model}(y|x;\theta))+\lambda_{\mathcal{U}}\sum_{u,q\in\mathcal{U}^\prime} H(q,p_\text{model}(y|u;\theta))+\lambda_{\hat{\mathcal{U}}_1}\sum_{u,q\in\hat{\mathcal{U}}_1} H(q,p_\text{model}(y|u;\theta))

\mathcal{X}^\primeはラベル付きデータとラベルなしデータでmixupされたデータの集合で,\mathcal{U}^\primeはstrong augmentされたデータ間でmixupされたデータの集合,\hat{\mathcal{U}}_1はstrong aumgentされたラベルなしデータの集合を表す. Hはクロスエントロピー. さらに精度向上としてself-supervisedで使われている,画像の回転角(0,90,180,270)を推論する学習も同時に行ったとのこと.

まとめ

distribution alignmentとaugmentation anchoringはいいやり方かなと思ったが最終的な学習方法がごちゃごちゃしすぎてて(一応ablation studyで何が効いているか実験してはいるが)なんとも言えない. 査読ではprogram chairから"All reviewers agree that the impressive empirical results in the paper are its main strength, but express concern that the method is overly complicated and hacking together many known pieces, as well as doubt as to the extent of the contribution of the augmentation method itself, with requests for better augmentation controls. While some of these concerns have not been addressed by authors in their response, the strength of empirical results seems enough to justify an acceptance recommendation."とコメントをされていて,微妙な気持ちになった.