GAN LAB:あなたのブラウザでGANで遊んでみましょう!(1/2)

  • 2018.10.08
  • AI
GAN LAB:あなたのブラウザでGANで遊んでみましょう!(1/2)

1.GAN LAB:あなたのブラウザでGANで遊んでみましょう!(1/2)まとめ

・ブラウザ上でGANの操作方法を理解するGAN LABページの意訳
・GANは特別な分布からサンプルを選択することを学ぶニューラルネットワーク
・2つのニューラルネットワークに競わせて品質を高める事が特徴

2.GANの仕組みを視覚化して理解する試み

以下、PAIRのpoloclub.github.ioより、「Play with Generative Adversarial Networks (GANs) in your browser!」の意訳1/2、前半の概略説明の分部です。

・GANとは何ですか?
多くの機械学習システムは、ある種の複雑なデータ(例えば画像)を入力すると、シンプルな出力(たとえば「猫」のようなラベル)を生成します。生成モデル(generative model)の目標は逆です。断片的な小さな入力(例えば多少の乱数など)を得て、複雑なデータ(例えばリアルに描いた人間の顔)を出力します。敵対的生成ネットワーク(GAN:Generative Adversarial Network)は数年前に提唱された特に効果的な生成モデルであり、機械学習コミュニティは強い関心を寄せています。

リアルな画像、あるいは他の種類のもっともらしい画像をデータから作成するシステムがなぜ必要なのか、疑問に思うかもしれません。本質的な知的チャレンジと言う観点以外にも、これは芸術的画像からぼやけた画像の生成まで、さまざまなアプリケーションで驚くほど応用できる便利なツールとなっています。

・GANどのように動作するのですか?
現実のイメージを最初から作成するという考えは魔法のように見えるかもしれませんが、GANはあいまいで一見不可能な目標を現実に変えるために2つの重要なトリックを使います。

1)最初のアイディアは、ランダム性を要素として使用することです。基本的なレベルで、これは理にかなっています。毎回同じ顔を生成するシステムは、それほどエキサイティングではありません。しかし、重要な事は、確率の考え方を導入すると、画像生成問題を数学的な問題に自然に変換できる事です。明白な事ですが、私たちは無作為に画像を選ぶことを望みません。なぜならそれは単なるノイズ画像になるからです。代わりに、私たちは、システムがどの画像が顔である可能性が高く、どの画像がそうでない可能性があるかを知ることを望んでいます。

数学的には、これは画像を用いた確率分布、すなわちどの画像が顔である可能性が高く、どの画像が顔でない可能性が高いかを示す関数です。このタイプの問題をモデル化すると、高次元空間上の関数になり、これはまさにニューラルネットワークが得意とする事です。

GANを定義する基本的なアイディアは、ネットワークのモデリングの問題を一種の競争として設計することです。これは、GNAの名前の一部の「Adversarial(敵対的な)」の由来です。

重要なアイデアは、1つではなく2つの競合するネットワーク、すなわちジェネレータとディスクリミネータを構築することです。ジェネレータはランダムな合成出力(顔の画像など)を作成しようとしますが、ディスクリミネータはこれらを実際の出力(たとえば、有名人のデータベース)と区別しようとします。 2つのネットワークが競い合うにつれて、より優れたものが得られ、最終的な結果として、現実世界のデータに近い出力を生成可能なネットワークを構成できることが期待されます。

要約:GAN、敵対的生成ネットワークは、特別な分布からサンプルを選択することを学ぶニューラルネットワーク(名前の「生成」の部分)であり、それを競争(名前の「敵対的」の分部)的に実施することによって行います。

・視覚化する事により何がわかるのですが?
GANは御しがたい野獣ですが、視覚化する事により多くのことがわかります。基本的な考え方は以下です。

第一に、これは複雑なGAN、つまり実在の画像と間違うような高解像度画像を生成するGANの視覚化ではありません。代わりに、単に2次元の点の分布を学ぶGANを示しています。この単純なGANを実世界のアプリケーションとして使用する事はできないでしょうが、システムの仕組みを大変シンプルに示すことができます。 例えば、高解像度画像の空間内の分布よりも、普通の古い二次元の(x、y)空間の確率分布を視覚化する方がずっと簡単です。

3.GAN LAB:あなたのブラウザでGANで遊んでみましょう!(1/2)関連リンク

1)poloclub.github.io
Play with Generative Adversarial Networks (GANs) in your browser!