GAN はたった 1 枚の画像でトレーニングできます。 Adobe が画像生成方法を改善 | オープンソース

GAN はたった 1 枚の画像でトレーニングできます。 Adobe が画像生成方法を改善 | オープンソース

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

データセットは GAN をトレーニングするには小さすぎますか? 1 つの画像から始めてみましょう。

昨年、Googleは、GANを使用して単一の自然画像から学習する初の無条件生成モデルであるSinGANを提案しました(ICCV 2019 Best Paper)。

最近、Adobe とハンブルク大学の研究者がこの手法を改良し、GAN が単一の画像でトレーニングと生成機能を改善できるようにするいくつかのメカニズムを調査しました。

研究者たちは改良されたモデルをConSinGANと名付けた。

それではまずConSinGANの効果を見てみましょう。

上図の左側はトレーニングに使用した単一の画像であり、右側は ConSinGAN でトレーニングした後に生成された複雑なグローバル構造です。

効果がかなりリアルであることがわかります。

もちろん、ConSinGAN は、画像の超解像、画像のアニメーション、画像のかすみ除去など、他の多くのタスクの処理にも使用できます。

次の 2 つの画像は、画像の調和と画像編集への効果を示しています。

ConSinGAN はどのようにそれを実現するのでしょうか?

トレーニングアーキテクチャの最適化: 並列 SinGAN

まず、SinGANのトレーニングプロセスを見てみましょう。

SinGAN は、画像に対して複数の個別の生成ネットワークをトレーニングします。下の図は最初のジェネレーターであり、ランダム ノイズから画像を生成する唯一の無条件ジェネレーターでもあります。

SinGANで訓練された最初のジェネレータ

ここでの識別器は画像全体を見ることはなく、このようにして「実際の」画像パッチがどのように見えるかを学習します。

このようにして、ジェネレーターは、全体的には異なるがパッチの点では類似している画像を生成することで、「不正行為」の目的を達成できます。

より高い解像度で動作するジェネレーターは、前のジェネレーターによって生成された画像を入力として受け取り、現在のものよりも高い解像度の画像を生成します。

すべてのジェネレーターは個別にトレーニングされます。つまり、現在のジェネレーターをトレーニングしている間、以前のすべてのジェネレーターの重みは一定に保たれます。

このプロセスを下の図に示します。

しかし、Adobe とハンブルク大学の研究者は、一度にトレーニングできるのは 1 つのジェネレーターのみであり、画像 (特徴マップではない) を 1 つのジェネレーターから次のジェネレーターに転送できるため、ジェネレーター間の相互作用が制限されることを発見しました。

そのため、彼らはジェネレーターをエンドツーエンドでトレーニングしました。つまり、複数のジェネレーターが同時にトレーニングされ、各ジェネレーターは前のジェネレーターによって生成された特徴(画像ではなく)を入力として受け取りました。

これが ConSinGAN という名前の由来です。並列 SinGAN です。プロセスは以下の図に示されています。

しかし、そのような対策を講じると、過剰適合という問題に直面することになります。つまり、最終モデルでは「新しい」画像は生成されず、トレーニング画像のみが生成されることになります。

これを防ぐために、研究者たちは2つの対策を講じました。

  • 一度にトレーニングされるのはジェネレーターのサブセットのみです。
  • ジェネレータごとに異なる学習率を使用します。

下の図は、これら 2 つの方法を使用して実装されたモデルを示しています。デフォルトでは、最大 3 つのジェネレーターが同時にトレーニングされ、下位のジェネレーターの学習率はそれぞれ 1/10 と 1/100 に調整されます。

このプロセスには興味深い現象があります。

低いジェネレーターに高い学習率を使用すると、生成される画像の品質は高くなりますが、鮮明さは低下します。

逆に、低いジェネレーターに小さい学習率を使用すると、生成される画像はより多様になります。下の図の通りです。

コードはオープンソースです

ConSinGAN のコードは GitHub でオープンソース化されています。

いつものように、まず実行に必要な環境を紹介します: Python 3.5、Pytorch 1.1.0。

インストールも非常に簡単です:

  1. pip インストール -r 要件.txt

論文のデフォルトパラメータを使用してモデルをトレーニングするには:

  1. python main_train.py --gpu 0 --train_mode generation --input_name 画像/Generation/angkorwat.jpg

Nvidia GeForce GTX 1080Ti では、モデルのトレーニングに約 20 ~ 25 分かかります。

学習率とトレーニング段階の数が異なると、実験の結果に影響します。研究者は、2 つのデフォルト値をそれぞれ 0.1 と 6 にすることを推奨しています。

もちろん、学習率を変更することもできます。

  1. python main_train.py --gpu 0 --train_mode generation --input_name Images/Generation/colusseum.jpg --lr_scale 0.5

トレーニングエポックの数を変更します。

  1. python main_train.py --gpu 0 --train_mode generation --input_name Images/Generation/colusseum.jpg --train_stages 7

もちろん、このモデルは「画像コーディネート」や「画像編集」といったタスクにも対応可能ですので、詳細はGitHubを参照してください。

ポータル

論文の宛先:
出典: http://arxiv.org/pdf/2003.11512.pdf

GitHub プロジェクト アドレス:
https://github.com/tohinz/ConSinGAN

<<:  中国の自動運転はアメリカの自動運転と比べてどう劣っているのか?

>>:  小中学生の安全を守るためにロボットは今や欠かせない存在です!

ブログ    
ブログ    

推薦する

機械学習における分類タスクの共通評価指標とPythonコード実装

データ ポイントを特定の数の定義済みクラスに分類するように ML モデルをトレーニングすることがタス...

機械学習の問題を解決する一般的な方法があります!この記事を1つだけ読んでみてください!

[[205485]]アビシェーク・タクル編集者: Cathy、Huang Wenchang、Jia...

AIと「喧嘩」したくない?人々はどんなスマートホーム体験を望んでいるのでしょうか?

スマートホームの発展過程で、その定義は何度も変化してきました。当初のリモートコントロールの概念から、...

絶対に対立なんかじゃない!短期的にはAIが人間に取って代わることができない5つの分野

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

「アルゴリズム経済」はどのような新しいモデルやトレンドを生み出すのでしょうか?

2000年から10年間の発展を経て、中国のPC時代のインターネットは「交通経済」を生み出しました。...

パニックになってるんですか?ロボットは共感の兆しを発達させ始めており、ロボットパートナーの次の動きを予測することができます。

[[375354]] 2 匹の霊長類が長期間一緒に飼育されると、同居人、同僚、家族の即時の行動をす...

この「ペア」は悪くないですね! AIとのペアプログラミング

翻訳者 |陳俊レビュー | Chonglou 「ペアプログラミング」という概念を聞いたことがあります...

畳み込みニューラルネットワークにおける自己注意メカニズムの理解

導入コンピューター ビジョンにおけるエンコーダー/デコーダー アーキテクチャの制限とそれを改善する方...

マシンビジョンについて知っておくべきこと

マシンビジョンは急速に発展している人工知能の分野です。簡単に言えば、マシンビジョンとは、測定と判断の...

Baidu Create 2019 Baidu AI 開発者カンファレンス Li Yanhong の素晴らしい名言

7月3日に開催されたBaidu Create 2019 Baidu AI Developer Con...

...

...