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と違い擬似ラベルを作る際にごちゃごちゃと細かいことはせず,単にをするだけ. MixMatch,ReMixMatchと今までやってきたのはなんだったのか. なので損失関数としてはラベル付きデータに対する教師あり損失に加えて以下のクロスエントロピーが入る.
はラベルなしデータのバッチサイズで,ははstrong data augment されたラベルなしデータに対するモデルの推論結果. はweak data augmentされたラベルなしデータに対するモデルの推論結果で,はhardな擬似ラベル. はハイパーパラメータで,擬似ラベルを作る際にある程度信頼度が高いデータに対してのみクロスエントロピーを図るというもの. 目的関数はとなる. ちなみに従来のconsistency regularization周りの半教師あり学習はを学習中に適当なスケジュールで調節していたが,FixMatchは不要とのこと. というのものおかげで学習初期はは無視され,途中から徐々に効いてくるため,を調節するのと似たような効果があるとか.
FixMatchではweakとstrongの二つのaugmentationがあるが,weakは単なるフリップとクロップだけで,strongの方はRandomAugmentとReMixMatchで使われたCTAugmentの二種類を実験したとのこと.
Additional important factors
手法の本質ではないが精度に効いたこととして,weight decayが効いた,AdamよりSGDがいい,学習率は以下のようにcosine scheduleで変化させるのが良いとのこと.
は初期学習率では現時点での学習の繰り返し回数,は最大学習繰り返し数. 実験で報告した精度は学習中のモデルのパラメータを移動平均したモデルによって実現されたものとのこと.
まとめ
UDAとやっていることはほとんど変わらないはずだが(閾値と擬似ラベルの作り方の違いくらい)圧倒的に精度がいい. 後の値は0.95とかなり大きい印象だがうまく動くものだなと. そしてAlgorithm 1を見るとReMixMatchのように死ぬほど作り込んでた意味とはという感じになる.