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

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

FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidenceを読んだのでメモ

はじめに

FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidenceを読んだのでメモ.

FixMatch

FixMatchは基本的にpseudo-labelingという感じ. ReMixMatchと同様にweak data augmentationを使い,擬似ラベルを作りstrong data augmentされたデータに対するモデルの推論結果と擬似ラベルのクロスエントロピーの最小化を行う. ReMixMatchと違い擬似ラベルを作る際にごちゃごちゃと細かいことはせず,単に\mathrm{argmax}をするだけ. MixMatch,ReMixMatchと今までやってきたのはなんだったのか. なので損失関数としてはラベル付きデータに対する教師あり損失l_sに加えて以下のクロスエントロピーが入る.

\displaystyle
l_u=\frac{1}{\mu B}\sum_{b=1}^{\mu B}\mathbb{1}(\max(q_b)\geq\tau)H(\hat{q}_b,p_m(y|\mathcal{A}(u_b)))

\mu Bはラベルなしデータのバッチサイズで,q_bp_m(y|\mathcal{A}(u_b))はstrong data augment \mathcal{A}(\cdot)されたラベルなしデータu_bに対するモデルの推論結果. q_b=p_m(y|\alpha(u_b))はweak data augmentされたラベルなしデータに対するモデルの推論結果で,\hat{q}_b=\mathrm{arg}\max(q_b)はhardな擬似ラベル. \tauはハイパーパラメータで,擬似ラベルを作る際にある程度信頼度が高いデータに対してのみクロスエントロピーを図るというもの. 目的関数はl_s+\lambda_ul_uとなる. ちなみに従来のconsistency regularization周りの半教師あり学習\lambda_uを学習中に適当なスケジュールで調節していたが,FixMatchは不要とのこと. というのも\tauのおかげで学習初期はl_uは無視され,途中から徐々に効いてくるため,\lambda_uを調節するのと似たような効果があるとか.

FixMatchではweakとstrongの二つのaugmentationがあるが,weakは単なるフリップとクロップだけで,strongの方はRandomAugmentとReMixMatchで使われたCTAugmentの二種類を実験したとのこと.

Additional important factors

手法の本質ではないが精度に効いたこととして,weight decayが効いた,AdamよりSGDがいい,学習率は以下のようにcosine scheduleで変化させるのが良いとのこと.

\displaystyle
\eta\cos\left(\frac{7\pi k}{16K}\right)

\etaは初期学習率でkは現時点での学習の繰り返し回数,Kは最大学習繰り返し数. 実験で報告した精度は学習中のモデルのパラメータを移動平均したモデルによって実現されたものとのこと.

まとめ

UDAとやっていることはほとんど変わらないはずだが(閾値\tauと擬似ラベルの作り方の違いくらい)圧倒的に精度がいい. 後\tauの値は0.95とかなり大きい印象だがうまく動くものだなと. そしてAlgorithm 1を見るとReMixMatchのように死ぬほど作り込んでた意味とはという感じになる.