Generative Adversarial Networks(GANs)のやさしい紹介

Tweet Share

最終更新日:2019年7月19日

Generative Adversarial Networks、略してGANは、畳み込みニューラルネットワークなどの深層学習手法を用いた生成モデリングのアプローチである。

生成モデリングは、機械学習における教師なし学習タスクで、モデルを使用して、元のデータセットからもっともらしく引き出されたかもしれない新しい例を生成または出力できるように、入力データの規則性またはパターンを自動的に発見し、学習することを含むものです。

GANは、新しい例を生成するために訓練する生成モデルと、例を本物 (ドメインから) または偽物 (生成) のどちらかに分類しようとする識別モデルを持つ教師あり学習問題として問題を構成することにより、生成モデルを訓練する巧妙な方法である。 この2つのモデルはゼロサムゲームのように敵対的に学習され、識別モデルが約半分の確率で騙されるようになるまで、つまり、生成モデルがもっともらしい例を生成するようになる。

GANは刺激的で急速に変化している分野で、さまざまな問題領域にわたって現実的な例を生成する能力において、生成モデルの約束を果たしています。特に、夏から冬、昼から夜への写真の翻訳といった画像間の翻訳タスクや、人間でさえ偽物だとわからないオブジェクト、シーン、人物の写実的な写真の生成で顕著に見られます。

この投稿では、Generative Adversarial Networks (GAN) のやさしい紹介をします。

この投稿を読んだ後は、次のことがわかるようになります:

  • 教師あり学習と教師なし学習、識別モデリングと生成モデリングなどの GAN のコンテキスト。
  • GAN は、教師なし問題を教師ありとして扱い、生成モデルと識別モデルの両方を使用することにより、生成モデルを自動的にトレーニングするアーキテクチャです。
  • GAN は、高度なドメイン固有のデータ増強への道と、画像間の翻訳など、生成的ソリューションを必要とする問題の解決策を提供します。

私の新しい本「Generative Adversarial Networks with Python」を使って、プロジェクトを始めましょう。

A Gentle Introduction to General Adversarial Networks (GANs)

A Gentle Introduction to Generative Adversarial Networks (GANs)
Photo by Barney Moss, some rights reserved.無断転載禁止。

概要

このチュートリアルは、次の 3 つのパートに分かれています。

  • なぜ Generative Adversarial Networks なのか
  • 生成モデルとは

    このセクションでは、教師あり/教師なし学習パラダイムと識別/生成モデリングに踏み込み、生成モデルのアイデアをレビューします。

    典型的な機械学習の問題には、予測モデリングなど、予測を行うためにモデルを使用することが含まれます。

    これには、入力変数 (X) と出力クラス ラベル (y) を持つ、サンプルと呼ばれる複数の例から成る、モデルの学習に使用する学習データセットが必要です。

    予測学習または教師あり学習のアプローチでは、入力 x から出力 y へのマッピングを学習することが目標で、ラベル付きの入力-出力ペアのセットを与えます…

    – 2 ページ、機械学習: A Probabilistic Perspective, 2012.

    このようにモデルを修正することを、一般に教師あり学習、あるいは教師あり学習と呼んでいる。

    教師あり学習の例

    教師あり学習の例

    教師あり学習の問題の例としては分類と回帰があり、教師あり学習アルゴリズムの例としてはロジスティック回帰とランダムフォレストが挙げられる。

    モデルには入力変数 (X) だけが与えられ、問題には出力変数 (y) がないという、学習の別のパラダイムがあります。

    モデルは、入力データのパターンを抽出したり要約したりすることで構築されます。

    機械学習の 2 番目の主なタイプは、説明的または教師なし学習アプローチです。 ここでは、入力だけが与えられ、目標はデータ内の「興味深いパターン」を見つけることです。 これは、どのような種類のパターンを探せばよいのか知らされず、使用する明確なエラー指標がないため、あまり定義されていない問題です (与えられた x に対する y の予測を観察値と比較できる教師あり学習と異なります)。 A Probabilistic Perspective, 2012.

    このような補正を行わないことを、一般に教師なし学習、または教師なし学習と呼びます。

    Example of Unsupervised Learning

    Example of Unsupervised Learning

    教師なし学習問題の例として、クラスタリングや生成モデル、教師なし学習アルゴリズム例としてK平均やGenerative Adversarial Networksなどがある。

    GANをゼロから開発したいですか?

    今すぐ 7 日間の無料メール クラッシュ コース (サンプル コード付き) を受講しましょう。

    クリックしてサインアップし、コースの無料の PDF 電子書籍版を入手してください。

    無料のミニコースをダウンロード

    Discriminative vs. GAN

    の比較。

    教師あり学習では、入力変数の例を与えてクラス ラベルを予測するモデルの開発に興味があるかもしれません。

    この予測モデリングのタスクは分類と呼ばれます。

    … 学習データを使用して、各 x をクラス ラベルに直接マッピングする判別関数 f(x) を見つけ、それによって推論と決定の段階を 1 つの学習問題に統合するのです。

    — Page 44, Pattern Recognition and Machine Learning, 2006.

    This is because a model must discriminate examples of input variables across classes; it must choose or make a decision as to what class a given example belongs.

    Example of Discriminative Modeling

    Example of Discriminative Modeling

    Alternately, unsupervised models that summarize the distribution of input variables may be able to be used to create or generate new examples in the input distribution.

    As such, these types of models are referred to as generative models.

    Example of Generative Modeling

    Example of Generative Modeling

    For example, a single variable may have a known data distribution, such as a Gaussian distribution, or bell shape. 生成モデルは、このデータ分布を十分に要約することができ、次に、入力変数の分布にもっともらしく適合する新しい変数を生成するために使用されるかもしれません。

    出力だけでなく入力の分布も明示的または暗黙的にモデル化するアプローチは、生成モデルとして知られており、そこからサンプリングすることにより、入力空間における合成データ点を生成することが可能だからです。

    – Page 43, Pattern Recognition and Machine Learning, 2006.

    実際、本当に優れた生成モデルは、単にもっともらしいだけでなく、問題領域からの実際の例と区別できないような新しい例を生成できるかもしれません。

    生成モデルの例

    Naive Bayes は、識別モデルとしてより頻繁に使用されている生成モデルの一例です。 予測が行われるとき、各変数について可能性のある結果の確率が計算され、独立した確率が組み合わされ、最も可能性の高い結果が予測されます。

    生成モデルの他の例としては、LDA (Latent Dirichlet Allocation) や GMM (Gaussian Mixture Model) が挙げられます。

    深層学習の生成モデリング アルゴリズムの最新の例としては、VAE (Variational Autoencoder) と GAN (Generative Adversarial Network) が挙げられます。

    Generative Adversarial Networks とは

    Generative Adversarial Networks (GAN) は、深層学習ベースの生成モデルです。

    より一般的には、GAN は生成モデルを学習するためのモデルアーキテクチャであり、このアーキテクチャで深層学習モデルを使用することは最も一般的なことです。

    GANアーキテクチャは、Ian Goodfellow, et al.による「Generative Adversarial Networks」と題する2014年の論文で初めて説明されました。

    より安定したモデルにつながるDeep Convolutional Generative Adversarial Networks、またはDCGANと呼ばれる標準的なアプローチは、その後Alec Radford, et al.によって形式化されました。 が2015年に発表した論文「Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks」

    Most GANs today are at least loosely based on the DCGAN architecture …

    – NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.

    GANモデルのアーキテクチャには、新しい例を生成するための生成器モデルと、生成された例がドメインからの本物か、生成器モデルによって生成された偽物かを分類するための識別器モデルの2つのサブモデルがあります

    • Generator(生成器)。 問題ドメインから新しいもっともらしい例を生成するために使用されるモデル。
    • 識別器。

    Generative adversarial networks は、生成ネットワークが敵対者と競争しなければならないゲーム理論のシナリオに基づいている。 生成ネットワークは、サンプルを直接生成します。 その敵である識別器ネットワークは、学習データから抽出されたサンプルと生成器から抽出されたサンプルを区別しようとします。

    -ページ 699, Deep Learning, 2016.

    ジェネレーターモデル

    ジェネレーターモデルは、固定長のランダムなベクトルを入力として受け取り、ドメイン内のサンプルを生成します。

    ベクトルはガウス分布からランダムに引き出され、ベクトルは生成プロセスのシードに使用されます。 学習後、この多次元ベクトル空間の点は、問題領域の点に対応し、データ分布の圧縮表現を形成します。

    このベクトル空間は、潜在空間、または潜在変数からなるベクトル空間と呼ばれています。

    潜在変数は、直接観測できないランダム変数です。

    -ページ 67、Deep Learning、2016

    潜在変数または潜在空間は、しばしばデータ分布の射影または圧縮として参照されます。 つまり、潜在空間は、入力データ分布のような観察された生データの圧縮または高レベルの概念を提供します。

    機械学習モデルは、画像、音楽、およびストーリーの統計的な潜在空間を学習し、この空間からサンプリングして、モデルが学習データで見たものと同様の特性を持つ新しいアートワークを作成することができます。

    -『Deep Learning with Python』270ページ、2017年

    学習後、生成モデルを保持して、新しいサンプルの生成に使用します。

    GAN生成モデルの例

    GAN生成モデルの例

    識別モデル

    識別モデルはドメインからの例(本物または生成)を入力として、本物または偽(生成)という2値クラスラベルを予測するモデルである。

    実例は学習データセットから得られる。

    識別器は通常の(そしてよく理解されている)分類モデルです。

    学習プロセスの後、我々は識別器に興味があるので、識別器は捨てられます。

    問題領域の例から効果的に特徴を抽出することを学んだので、生成器は再利用されることがあります。

    場合によっては、問題領域の例から効果的に特徴を抽出することを学んだので、生成器を再利用することができます。特徴抽出層の一部または全部は、同じまたは類似の入力データを使用する転移学習アプリケーションで使用することができます。

    良い画像表現を構築する方法の1つは、Generative Adversarial Networks(GAN)を訓練し、後で生成器と識別器のネットワークの一部を教師ありタスクの特徴抽出器として再利用することだと提案しています

    – Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, 2015年.

    GAN Discriminatorモデルの例

    GAN Discriminatorモデルの例

    GANs as a Two Player Game

    世代モデリングは教師なし学習問題である。 しかし、GANアーキテクチャの巧妙な特性は、生成モデルの学習が教師あり学習問題として構成されていることである。

    2つのモデル、生成器と識別器は一緒に学習されます。

    生成器はサンプルのバッチを生成し、ドメインからの実際の例とともに、これらを識別器に提供し、本物または偽物に分類します。

    そして識別器は、次のラウンドで本物および偽物のサンプルをよりよく識別できるように更新され、重要なことに、生成されたサンプルが識別器をどれだけ騙せたか、または騙せなかったかに基づいて生成器が更新されるのです。

    生成器は偽札を作ろうとする偽造者のようなもので、識別器は正規のお金を許し偽札を捕まえようとする警察のようなものだと考えることができます。 このゲームで成功するためには、偽造者は本物のお金と見分けがつかないお金を作ることを学習しなければならず、生成器ネットワークは学習データと同じ分布から抽出されたサンプルを作成することを学習しなければなりません

    – NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.

    このように、2 つのモデルは互いに競合しており、ゲーム理論の意味での敵対関係にあり、ゼロサム ゲームを行っているのです。

    GAN フレームワークは当然ゲーム理論のツールで分析できるため、GAN を「adversarial」と呼んでいます

    – NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.

    この場合、ゼロサムとは、識別器が本物と偽物のサンプルをうまく識別した場合、報われるかモデルパラメータへの変更が必要ないのに対し、生成器はモデルパラメータへの大きな更新でペナルティーを受けることを意味します。

    逆に、生成器が識別器を騙した場合、生成器は報酬を受けるか、モデル パラメータへの変更は必要ありませんが、識別器はペナルティを受け、モデル パラメータが更新されます。

    限界では、生成器は毎回入力領域から完全なレプリカを生成し、識別器はその違いを識別できず、すべてのケースで「わからない」 (たとえば、実物と偽物が 50%)と予測されます。 これは理想化された場合の例であり、有用なジェネレーターモデルに到達するために、ここまでする必要はない。

    Generative Adversarial Network モデルのアーキテクチャ例

    によって、識別器はサンプルを本物または偽物として正しく分類できるよう学習しようと駆動されます。 同時に、生成器はサンプルを本物であると信じるように分類器を騙そうとする。 収束すると、生成器のサンプルは実データと区別がつかなくなり、識別器はどこでも1/2を出力する。

    – 700 ページ、『Deep Learning, 2016』

    GAN と Convolutional Neural Networks

    GAN は通常画像データに取り組み、CNN (畳込みニューラルネットワーク) を生成および識別のモデルとして使用します。

    この理由は、この手法の最初の記述がコンピューター ビジョンの分野で、CNN と画像データを使用したこと、および、物体検出や顔認識などの一連のコンピューター ビジョン タスクで最先端の結果を達成するために、近年より一般的に CNN を使用して著しい進歩が見られることの両方から考えられます。

    画像データのモデル化は、潜在空間、生成器の入力、モデルの学習に使用する画像または写真の集合の圧縮表示を提供するということを意味します。 また、生成器が新しい画像または写真を生成し、モデルの開発者またはユーザーが簡単に表示および評価できる出力を提供することを意味します。

    生成された出力の品質を視覚的に評価できることは、他の何よりもこの事実であり、CNN を使用したコンピューター ビジョン アプリケーションの焦点と、深層学習ベースまたはその他の他の生成モデルと比較して、GAN の能力の大きな飛躍につながりました。

    Conditional GAN

    GAN への重要な拡張は、出力を条件的に生成する用途にあります。

    生成モデルは、入力領域から新しい例を生成するために訓練することができ、入力、潜在空間からのランダム ベクトルは、いくつかの追加入力で (条件付きで) 提供されます。

    追加入力は、人の写真の生成では男性または女性などのクラス値、または手書き数字の画像の生成の場合は数字となることがあります。

    Generative adversarial nets は、生成器と識別器の両方が何らかの追加情報 y に対して条件付けられる場合、条件付きモデルへと拡張することができます。

    – Conditional Generative Adversarial Nets, 2014.

    識別器も条件付き、つまり本物か偽物かの入力画像と追加入力の両方を提供されることになる。

    このように、条件付き GAN は、与えられたタイプのドメインから例を生成するために使用できます。

    さらに一歩進んで、GAN モデルは、画像などのドメインからの例に対して条件付きにすることができます。 これにより、テキストから画像への翻訳や、画像から画像への翻訳など、GAN のアプリケーションを実現することができます。

    昼から夜への変換など、画像から画像への変換のための条件付き GAN の場合、識別器は、入力として、実際の昼間の写真と同様に (条件付きで) 夜間の写真の例および生成された例を提供されます。

    Example of a Conditional Generative Adversarial Network Model Architecture

    Example of a Conditional Generative Adversarial Network Model Architecture

    Why Generative Adversarial Networks?

    コンピューター ビジョンなどのドメインでの深層学習メソッドの使用における多くの大きな進歩の 1 つは、データ増強と呼ばれるテクニックです。

    データ増強は、モデルのスキルを高め、正規化効果を提供して汎化エラーを減らし、よりパフォーマンスの良いモデルにつながります。

    このテクニックは画像データの場合には原始的なもので、学習データセット内の既存の画像の切り取り、反転、ズーム、およびその他の単純な変換を伴います。

    … 潜在(未観測)データでサンプルを拡大することです。 これをデータオーギュメンテーションと呼びます。 他の問題では、潜在データは、観測されるべきであったが欠落している実際のデータです。

    -276ページ『統計学習の要素』2016年

    複雑なドメインまたはデータ量が限られているドメインにおいて、生成モデル化はモデリングのためのトレーニングを増やす道筋を提供するものです。 GAN は、深い強化学習などのドメインで、この使用例で多くの成功を収めています。

    GANが興味深く、重要で、さらなる研究を必要とする理由は、多くの研究上の理由があります。 Ian Goodfellow は、「NIPS 2016 チュートリアル」と題する 2016 年のカンファレンスの基調講演と関連する技術レポートで、これらのいくつかを概説しています。 Generative Adversarial Networks」

    これらの理由の中で、彼は、高次元データのモデル化、欠損データの処理、およびマルチモーダル出力または複数のもっともらしい答えを提供するGANの能力の成功に注目しています。

    おそらくGANの最も説得力のあるアプリケーションは、新しい例の生成を必要とするタスクに対する条件付きGANにあります。 ここで、Goodfellow は 3 つの主な例を示しています:

    • 画像の超解像。 入力画像の高解像度バージョンを生成する機能。
    • アートを作成する。 新しい芸術的な画像、スケッチ、絵画などを作成する機能
    • 画像間の翻訳。

    おそらく、GAN が広く研究、開発、および使用されている最も説得力のある理由は、その成功のためでしょう。 GAN は、現実には存在しないオブジェクト、シーン、および人物の写真であることを人間が見分けることができないほどリアルな写真を生成することができます。

    その能力と成功に対して、驚くべきという形容詞は十分ではありません。

    Example of the Progression in the Capabilities from 2014 to 2017

    GANs From the 2014 to 2017の能力の進歩の一例です。 人工知能の悪意ある使用』より引用。 Forecasting, Prevention, and Mitigation, 2018.

    Further Reading

    このセクションでは、より深く知りたい場合に、このトピックに関するより多くのリソースを提供します。

    Posts

    • Best Resources for Getting Started With Generative Adversarial Networks (GANs)
    • 18 Impressive Applications of Generative Adversarial Networks (GANs)

    Books

    • Chapter 20. Deep Generative Models, Deep Learning, 2016.
    • Chapter 8. Generative Deep Learning, Deep Learning with Python, 2017.
    • Machine Learning: A Probabilistic Perspective, 2012.
    • Pattern Recognition and Machine Learning, 2006.
    • The Elements of Statistical Learning, 2016.

    Papers

    • Generative Adversarial Networks, 2014.
    • Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, 2015.
    • NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.
    • Conditional Generative Adversarial Nets, 2014.
    • The Malicious Use of Artificial Intelligence: Forecasting, Prevention, and Mitigation, 2018.

    記事

    • Generative model, Wikipedia.
    • Latent Variable, Wikipedia.
    • Generative Adversarial Network, Wikipedia.
    • Generative Adversarial Network, Wikipedia.

    まとめ

    この投稿では、Generative Adversarial Networks (GAN) のやさしい入門を学びました。

  • GAN は、教師なし問題を教師ありとして扱い、生成モデルと識別モデルの両方を使用することにより、生成モデルを自動的にトレーニングするアーキテクチャです。
  • GAN は、高度なドメイン固有のデータ増強への道と、画像間の翻訳など、生成的ソリューションを必要とする問題へのソリューションを提供します。
  • Do you have any questions?
    Ask your questions in the comments below and I will do my best to answer.

    Develop Generative Adversarial Networks Today!

    Generative Adversarial Networks with Python

    Develop Your GAN Models in Minutes

    …with just a few lines of python code

    Discover how in my new Ebook:
    Generative Adversarial Networks with Python

    It provides self-study tutorials and end-to-end projects on:
    DCGAN, conditional GANs, image translation, Pix2Pix, CycleGAN
    and much more…

    Finally Bring GAN Models to your Vision Projects

    Skip the Academics. Just Results.See What’s Inside

    Tweet Share Share

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です