見出し画像

GAN完全入門

みなさん、おはようございます!

あというまに9月になりましたね!だいぶ涼しくなってきました!来週はもう10月です!

急な天候の変化で風邪を引かないように気をつけてください。

さて、前回の記事まで少し時間が経ちましたね。久しぶりに人工知能のテーマで今回のnoteを書きたいと思います。

今回のテーマは「GAN(敵対的生成ニューラルネットワーク)完全入門」です!

値段は600円です。(5500文字)

このnoteの対象者

・川島ITスキルサロンの有料会員(会員は購入しなくてもお読みいただけます。)

・プログラミングはある程度経験とスキルがありますが、これからちょっと人工知能を勉強したいなという方が対象者です。

・人工知能、ニューラルネットワークや畳み込みニューラルネットワーク、GANについてこれから勉強する初心者の方が対象者です。

すでにニューラルネットワークや畳み込みニューラルネットワーク、GANについて熟知している方は購入しないでください。

前提知識としてはニューラルネットワークや畳み込みニューラルネットワークの理解が必要ですので、下の記事も合わせて読むと理解が深まるかと思います。

ニューラルネットワークや畳み込みニューラルネットワークが分からないままでこの記事を購入しても、多分分からない単語が多くて内容の理解ができないかと思います。その辺ご留意ください。

また必須ではないですが、関連知識としてお読みいただけるnoteもありまして、よかったら合わせてお読みください。

最後に、書籍選びで困っていたら、このnoteを読みましょう!

さて、本題に入りましょう!

GANとは

スライド2

GANはGenerative Adversarial Networksの略です。日本語で言うと、敵対的生成ネットワークのことです。

ネット上で人工知能の記事や情報の中でおそらく何回かGANのことを目にすることがあるかと思います。

言葉が暗示している通り、何かを生成する人工知能(アルゴリズム)のことです。

例えば実在しないねこ、自動車、人間、乳がんのレントゲン写真までコンピュタが外部の助けがない前提で、真偽が見分けられないぐらいの本物っぽさを持っている写真を生成できてしまいます。

GANは当時まだ大学の博士課程に通っているモントリオール大学のIan Goodfellowさんが考案したものです。

Ian GoodfellowさんのTwitterはこちらです。https://twitter.com/goodfellow_ian 

フォローするともっと高度なGANの情報が流れてくるかもしれません。

スライド3

一番インパクトのあるのはやはり人間の顔の生成技術ですね。上の図(引用先:https://arxiv.org/pdf/1802.07228.pdf)のように2014年Ianさんが最初に作ったGANは一番左側の白黒の人間の顔です。

それでも十分驚くべき技術の大躍進ですが、それから僅か3年で上の図の一番右側のクオリティになりました。

言わなければ、誰でもそれが実在する人間の写真だと信じて疑わないでしょう。

スライド4

さらに、一番最近のStyleGANですと、上の図(引用先:Analyzing and Improving the Image Quality of StyleGAN https://arxiv.org/pdf/1912.04958.pdf)のように「この人は絶対いるでしょう!」と言うレベルになっています。

正直若干不気味で怖い気持ちもあります。だってこんな顔の人が、「驚かないで、私はGANで生成された顔です」と言われるともう人類の終わりだと思います。笑

そのStyleGANで動いているウェブサイトがあります:

以前私のTweetでもご紹介したことがありますが

スライド5

ページをリロードするたびに、新しい人間の顔が生成されます。

私も実際にこのnoteを書いている間何回か回して上の4枚良さげな写真と「出会いました」。

「どの方?」もいそうですよね。笑。ましてや美人もいたりして、ニヤニヤしているのは私だけでしょうか?笑

他にもたくさんの最新の研究や、画像生成のGANがあります。このは文面の制約でご紹介はここまでにします。(例えばpix2pix: https://phillipi.github.io/pix2pix/ )

GANの言葉の意味

それでは、この不思議のGANの仕組みを説明していきます。

まずその言葉の意味をみてみましょう。

スライド6

上の図のように、Generativeは生成する、作ると言う意味合いです。(例えば、生成するgenerate、発電機generator、新生世代はnew generationのようにgenerateと言う言葉のルートがあります。)

一方でAdversarialは普段あんまり見かけないですね。

発音はこちらです。

Adversarialは敵対する、失敗させるなどの意味があります。

スライド7

最後のnetworksは複数形になっているところを気をつけてください。

なぜならば、GANの中に二つのニューラルネットワークがあるからです。

一つはGenerativeの方、もう一つはAdversarialの方です。名称はまだもう少し変わって別のニュアンスを持つ言葉になりますが、後ほど詳しく説明します。ニューラルネットワークが二つがあるからここではNetworksが複数形になっているねと言うのを覚えてください。

GANの特徴

これからGANの動作原理やニューラルネットワークの学習の方法について説明していきますが、まずGANの特徴を抑えていきましょう。

ここから先は

3,282字 / 16画像

¥ 600

株式会社虹賢舎 CEO 著書:https://amzn.to/39KwlE4 技術ブログ:https://kokensha.xyz 機械学習 深層学習 Python /JS IoT Raspberry Pi ロボット TOEIC950 https://gosen.world