JPEG圧縮を応用した画像生成プロジェクトです。
Gueguen, L., Sergeev, A., Kadlec, B., Liu, R., & Yosinski, J. (2018). Faster neural networks straight from jpeg. In Advances in Neural Information Processing Systems (pp. 3933-3944).
JPEGのDCT係数を入力として画像分類をする。
分類精度を維持しながら高速化を達成した。
公式実装: uber-research / jpeg2dct
Kang, B., Tripathi, S., & Nguyen, T. Q. (2019). Toward Joint Image Generation and Compression using Generative Adversarial Networks. arXiv preprint arXiv:1901.07838.
高解像度画像は圧縮されているはずなのでGeneratorにJPEGデコード機構を追加する事で画像にJPEG的な特徴を付与する。
通常のモデルに追加する形なので高速化ではなくFIDスコアの向上が目的である。
- Locally Connected Layer
入出力特徴平面上の小領域間でのみ結合があるような畳み込みを行う。
Goyal, P., Dollár, P., Girshick, R., Noordhuis, P., Wesolowski, L., Kyrola, A., Tulloch, A., Jia, Y., & He, K. (2017). Accurate, large minibatch sgd: Training imagenet in 1 hour. arXiv preprint arXiv:1706.02677.
- Linear Scaling
学習率をバッチサイズに比例させる。
Miyato, T., & Koyama, M. (2018). cGANs with projection discriminator. arXiv preprint arXiv:1802.05637.
- Projection Discriminator
Discriminatorの最終層の特徴とクラスを埋め込んだベクトルの内積を取る。
Heusel, M., Ramsauer, H., Unterthiner, T., Nessler, B., & Hochreiter, S. (2017). Gans trained by a two time-scale update rule converge to a local nash equilibrium. In Advances in neural information processing systems (pp. 6626-6637).
- Two Time-Scale Update Rule (TTUR)
GeneratorとDiscriminatorでそれぞれ異なる学習率を適用する。
Zhang, H., Goodfellow, I., Metaxas, D., & Odena, A. (2019, May). Self-attention generative adversarial networks. In International Conference on Machine Learning (pp. 7354-7363). PMLR.
GとDの両方にSelf-Attentionを導入して大域的な画素の関係を考慮できるようにする。
Anonymous authors (Paper under double-blind review). ICLR2021.
- Skip-Layer channel-wise Excitation Module (SLE Module)
ResidualConnectionやSEモジュールのような勾配補強のレイヤー間接続を作成する。 - Self-Supervised Discriminator
Dの中間特徴から元画像を復元できるようにDを訓練し正則化する。
非公式実装: lucidrains / lightweight-gan
- soumith/ganhacks - GitHub
- Tips for Training Stable Generative Adversarial Networks
- Keep Calm and train a GAN. Pitfalls and Tips on training Generative Adversarial Networks
- GAN — Ways to improve GAN performance
- GAN(Generative Adversarial Networks)を学習させる際の14のテクニック
- DCGAN(Deep Convolutional GAN)|DeepLearning論文の原文を読む #12
- DCGAN
- GANで学習がうまくいかないときに見るべき資料
- 個人的GANのTipsまとめ
- PyTorchでDCGANやってみた
- CIFAR10を混ぜたままChainerのDCGANに突っ込んだら名状しがたい何かが生成された話
- TonyMooori/dct_2dim.py - GitHub Gist
- GANの発展の歴史を振り返る!GANの包括的なサーベイ論文の紹介(アルゴリズム編)
- GANの発展の歴史を振り返る!GANの包括的なサーベイ論文の紹介(応用編)
- kornia (Documentation)
GPU上で動作するData Augmentationライブラリ