Bootstrap Your Own Latent A New Approach to Self-Supervised Learningを読んだのでメモ
はじめに
Bootstrap Your Own Latent A New Approach to Self-Supervised Learningを読んだのでメモ. とにかくcontrastive learningのnegativeとの比較というものをなくしたいという思い. ただcontrastive learningにおいてnegative examplesとの比較をなくすと全てを同じ表現にする自明な解に落ちるので新たな手法,Bootstrap Your Own Latent(BYOL)を提案.
BYOL
BYOLでは二つのモデルを用意する.一つはonline networkでこれが真に学習したいモデル. もう一つはtarget networkで,online networkの教師信号を作り出すモデル. Target networkはonline networkと同一の構造でパラメータがonline networkの指数移動平均で定義される. すなわち,online networkのパラメータを,target networkのパラメータをとすると,学習のステップごとにtarget networkのパラメータは次のように更新される.
ただしは減衰係数.
それぞれのモデルは入力から特徴ベクトルを得ると表現を適当な空間へ写像すると,写像されたベクトルから予測を行うから成る. 入力データが与えられた時,画像のaugmentation をそれぞれ二種類ランダムに選び新たな画像を作る. それぞれをonline networkで,target networkでのように写像する. 得られた表現をonline networkは,target networkはとそれぞれ変換し,次の二乗誤差を最小化するようにonline modelを学習する.
上記の例ではをonline networkにをtarget networkに入力する形だったが,これらを入れ替え,をtarget networkにをonline networkに入力して計算した二乗誤差をと定義し,最終的な目的関数をとして,これをについて最小化する.
学習終了後はのみを保持し,任意のタスクへ利用する.
Image augmentation
BYOLで利用する画像拡張はSimCLRと同じ候補を利用. 具体的には画像をランダムに切り抜き(224,224)にリサイズし,画像反転と,brightness, contrast, saturation, hue adjustments, optional grayscale conversionなどの色変換を行い,最後にGaussian blurとsolarizationをする.
Architecture
はResNet50の出力層手前の平均プーリング層までをベースとして,パラメータを2x~4xまで増やしたResNet101, 152, 200それぞれ実験. はSimCLRと同様にMLPで構成され,隠れ層が4096次元で出力層が256次元.はと同様の構造とのこと.
Optimization
ここも他手法と同じくLARS optimizer+cosine learning rate scheduleを利用し,1000epoch学習. 学習率はで定義し,重み減衰を係数で使用. target networkの減衰係数はとし,でスケジューリング.ただし,は学習の繰り返し回数で,は最大繰り返し回数.
まとめ
半教師あり学習で使われるmean teacherという感じ. SimCLRの時も少し思ったが,半教師あり学習と教師なし表現学習は手法的にはどんどん似通ってくるのかなと.