Self-Supervised Generative Adversarial Networksを読んだのでメモ
はじめに
Self-Supervised Generative Adversarial Networksを読んだのでメモ。
気持ち
まず,GAN関係なしにNeural Netは識別タスクにおいて,識別の環境が動的に変化する(タスクが変化する)と前の識別境界を忘れるという問題がある.この問題はGANのdiscriminatorでも起こっていて,generatorが生成する画像が学習中動的に変化していくためdiscriminatorが以前作った識別境界を忘れ,それにより学習が不安定になるというのがこの論文で課題としているところ.ただ,この問題は条件付きの学習(真偽判定だけでなくラベルの識別を含む学習)によって回避できるという.この性質をラベルのないデータでも活用するためにself-supervised GANを提案するというもの.
key issue discriminator forgetting
GANの目的関数は以下で与えられる.
親の顔より見た式なのでnotationは割愛.ここで問題視しているのは学習中generatorが表現する分布(は回目の更新の意味)が動的に変わっていくことでnon-stationary online learningになっていること.それによってdiscriminatorは更新の度に前回の分布で作った識別境界を忘れてしまい学習が不安定なる.例えばgeneratorは学習初期に物体の大まかな構造のみを再現した画像を生成するとすれば,discriminatorは大局的な構造の違いや局所的な構造の欠損に基づく識別境界を引く.学習が進みgeneratorがテクスチャのような局所的な構造を再現したデータを生成するようになったとすると,識別に有効な特徴量が変化するためdiscriminatorは今までと全く異なった(前のタスクを完全に無視した)識別境界を引く.これによりdiscriminatorから伝播してくるpenaltyの性質が変わりgeneratorは今まで再現できていた構造が崩れてしまう.これが不安定さの要因(この例は論文では言及されてない自分の解釈が一部入っているので注意).
別な考えとしては,最適な状態ではデータの分布とgeneratorの分布が一致するため,そのような状況ではもはやgeneratorは何のペナルティも受けない.すなわちgeneratorは意味のある表現を維持しようとする必要がなくなる.なので正則化項が入っているような場合ではgeneratorは獲得した表現を失う可能性もある.
実際,簡単な実験で忘却の性質を検証していた(Figure 2とFigure 3).
The self-supervised GAN
上で説明した忘却をいかにして防ぐかというのが課題.ここではself-supervisedを導入することでnon-stationaryからstationaryな課題へと変えることで改善をおこなう.今回はSoTAなself-supervised learningの方法であるimage rotationを利用.image rotationは画像を0°,90°,180°,270°と回転させて,その回転具合を識別させることでよい表現を獲得するself-supervised learningの手法.これを元の目的関数に組み合わせるだけという非常に単純なアプローチ.なので目的関数は次のようになる.
は回転の角度を表し,となる.はデータを度回転させることを意味する.ここで大切なのはdiscriminatorはrotationの判定に関して真のデータからのみ学習するということ.つまりここが問題をstationaryな学習にしている部分.
実践的な部分として上の定式化ではdiscriminatorとrotationの判定器は最終層のみ別で特徴抽出部は同一ネットワークで構成されている.また,基本的にである限り真の分布とgeneratorの分布が一致するという保証はない.なので最終的にとなるように減衰させていくと保証が得られる.
まとめ
手法はシンプルだが論文の実験においてはconditional GANと同じくらい安定した学習を実現している.研究の着眼点が良く考察もしっかりできていてこんな風に論文を書きたい.