最近白黒写真がカラー写真になったり、この世に存在しない人の顔が作られたりしています。これらの技術は画像に特化して開発されたわけではなく、元はデータを増やす・質を上げる仕組みとして開発されたものが画像に応用されて実現可能となりました。その技術が今回ご紹介する「GAN(敵対的生成ネットワーク)」です。
GANとは
GAN(Generative Adversarial Network)は、2014年にイアン・グッドフェローらが「Generative Adversarial Nets」という論文で発表したアーキテクチャ(論理的構造)です。
2つのニューラルネットワークを互いに競わせて入力データの学習を深めていくことから、敵対的生成ネットワークとも呼ばれています。
コンピューターに大量のデータを学習させ、分類・予測などの動作を遂行するモデルやアルゴリズムを自動的に構築する技術を機械学習と言いますが、機械学習には主に2種類の分類・予測モデルがあります。
1つは画像認識などの識別モデル、入力されたデータや画像を何であるかコンピューターに判断させるモデルです。
そしてもう1つが生成モデル、入力されたデータや画像から新しい擬似データを生成するモデルです。GANはこの生成モデルに該当します。
GANの用途としては画像生成が有名ですが、データを生成するという点でディープラーニングを補う技術としても注目度が高いです。従来の、サンプル画像を傾けたり、色を変えたりしてデータを増やすというやり方ではなく、特徴を含んだデータを新たに作り出すことで、データ不足が課題になりがちなディープラーニングに応用できます。
この「オリジナルの特徴を含んだデータを増やす」というやり方を応用することで、新しい画像を生成したり、低画質の画像を変換して高画質にしたり、音声を生成したりするというアプローチが可能になりました。
仕組み
では、GANはどのように実行されるのでしょうか。
本稿ではGANをブランド品にたとえて説明していきます。
人を騙そうと試行錯誤をする偽物ブランド屋がいて、絶対に騙されまいと注意する鑑定士がいる場面を想像してみてください。
GANは最終的に最高の「嘘(本物かのようなデータ)」を作り出すために、
・偽物ブランド屋:Generator(生成ネットワーク)
・鑑定士:Discriminator(識別ネットワーク)
の両者が競い合ういたちごっこだと仮定します。
偽物ブランド屋であるGenerator(生成ネットワーク)は与えられた「デザイン(入力データ)」から「類似品(偽のデータ)」を作り、
鑑定士Discriminator(識別ネットワーク)はGeneratorで作られた類似品の真偽を「本物のブランド品(本物データ)」と比較して判別します。
この2つのネットワークが相互作用することによって徐々にデータが本物に近づきます。
Ledge編集部で作成
一番最初の段階では、質の良くない製品や、形が違うブランド品が出来上がり、すぐに見分けがついてしまいます。そうすると、偽物ブランド屋はよりリアルな製品を作り出し、鑑定士を騙そうとしてきます。
そして、徐々に本物と見分けのつかないブランド品を生成することが可能になり、鑑定士も自信を持って偽物だと判断できなくなってきます。最終的に、「鑑定士が自信を持って本物と判断したブランド品が、実は偽物だった」というレベルまで持っていくのが全体の流れです。
このように、GeneratorとDiscriminatorは騙し騙されを繰り返していくことで、生成データを本物と見間違えるレベルまで持っていきます。
GANの数式
GANの相互学習過程を数式で見ると以下のようになります
一見難しい数式に見えますが、細かく分解すると徐々に意味が理解できます。
この数式において、DはDiscriminator(識別)、GはGenerator(生成)を指します。
DはGを本物か偽物か判断し、正しくラベル付けをする確率「D(x)」を最大化しようとします。一方で、GはDに自分が本物であると認識させるために、DがGを偽物であるとラベル付する確率「log(1−D(G(z)))」を最小化しようとします。
①Dが正しくラベル付けできた場合、「D(x)」の値が大きくなり、「logD(x)」も大きくなります。さらにGが偽物だとバレることで、「D(G(z))」が小さくなります。結果、「log(1−D(G(z)))」が大きくなりDが優勢になります。
②Gが本物に近いデータを作れた場合、「G(z)」の値が大きくなり、「D(G(z))」も大きくなります。さらにDが正しくラベル付けできなくなることで、「D(x)」の値が小さくなり、「logD(x)」も小さくなります。結果、「log(1−D(G(z)))」が小さくなりGが優勢になります。
このようにいたちごっこを繰り返し、実際の学習時は以下のアルゴリズムにしたがってDとGを交互に更新して学習を深めていきます。
Goodfellow et al.(2014)から引用
GANは万能ではない
データ生成で活躍しているGANですが、多くはオリジナルGANに改良を加えたアーキテクチャたちです。
では、オリジナルGANの特徴にはどのようなものがあるのか整理してみましょう。
「得意なこと」
- データの増幅が可能
- 画像データの色や角度を変えて枚数を擬似的に増やす従来の方法ではなく、サンプルデータの特徴を含んだ新しいデータを生成できる
- 画像版word2vec演算ができるなど他の技術との合わせ技が可能
- word2vecの技術と組み合わせることにより、画像のラベルから演算を行えるようになった。例えば「メガネをつけた男性 – 男性 + 女性=メガネをつけた女性」という演算から、メガネをつけた女性の画像が生成可能
- 従来の方法より高品質な画像を生成できる
- GANと類似した技術のオートエンコーダやVAE(変分オートエンコーダ、Variartrial AutoEncoder)に比べ、GANのアーキテクチャではよりリアルで高画質な画像を生成できる
「苦手なこと」
- 生成データの評価が難しい
- コンピューターが生み出した画像データなどに対して、どのような基準にしたがって「類似している」と判断するのかが不透明
- オリジナルGANは動作が不安定になりやすい
- 勾配消失問題:初めは簡単に判別ができるため学習が十分に行われない
- モード崩壊:だませるようになったら今度はその特徴を持つ画像しか生成しなくなる
このようにGANはユニークな仕組みではありますが、脆い部分もあります。
次の章ではオリジナルの弱みをカバーするGANの応用研究についてご紹介します。
GANの応用研究
オリジナルのGANでは、データの過学習や判断基準の不透明さが弱点でした。そこで世の研究者たちは他の仕組みや技術と組み合わせることで、GANの強みを最大限生かす方法を日々研究しています。ここでは、歴史順に主要な応用研究をご紹介します。
Ledge編集部で作成
DCGAN
©︎Picture on [Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks] 2015
Deep Convolutional GANは、画像認識で有名な畳み込みニューラルネットワーク(CNN)の技術を応用しています。オリジナルGANはデータを生成することがメインでしたが、DCGANでは画像生成に強く、昨今の画像生成系GAN技術の基盤になっています。
深いネットワークで安定した学習が可能になり、オリジナルGANと比べてより鮮明な画像が生成できるようになりました。
CycleGAN
©︎Picture on[Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks] 2017
CycleGANでは無関係な2枚の写真を使い、互いに変換し合う(特徴を似せ合う)ようにサイクル状のネットワークを構成します。
名画と風景画像を合わせて「ゴッホ風」「浮世絵風」などの風景絵画を生成できたり、風景画像とデータを合わせて季節や時刻を入れ替えたりすることができます。
StyleGAN
この画像は実際にStyleGANを用いて生成した人物写真です。
©︎Picture on [A Style-Based Generator Architecture for Generative Adversarial Networks] 2018
StyleGANが発表されてから、写真の証拠はもう役に立たないと言われるほど、リアルな画像生成技術に注目が集まりました。
StyleGANは、従来のGenerator構造を大きく変更。入力されるノイズを一旦別の空間でマッピングし、そこで得られた情報をGeneratorに入力するようにしました。さらに、CycleGANでも活用されていたスタイル変換の技術であるAdaInと、Progressive Growingという高解像度画像を生成する手法も加わりました。
これにより、ノイズの柔軟な調整が行えるため、生成画像の大局的な構造から詳細な構造までを制御可能になりました。
今まで研究されてきた技術の強みを生かしたStyleGANの特徴は、非常に高画質でリアルな画像を生成できる点です。人の目ではもう見分けがつかないレベルまでになりました。
GANの今後
Photo by Franki Chamaki on Unsplash
データを増やすという目的から、画像の生成や自然言語処理との連携まで可能になったGAN。複雑に見える技術でも、少しずつ理解すれば徐々に意味がわかるようになると思います。
今回ご紹介したGANの情報は、まだまだ氷山の一角に過ぎません。GANは世界中の研究者たちが研究を行っており、毎日のように新しい情報が生まれます。ぜひ、ご自身の必要とする領域で活用できそうなGANを探してみてください。
これからもさまざまなタイプのGANが研究されるでしょう。これはたとえ話ですが、失われた古代文明の解析が進むこともあり得なくない話だと考えます。夢がありますね。
"応用" - Google ニュース
March 17, 2020 at 05:00AM
https://ledge.ai/gan/
GAN(敵対的生成ネットワーク)とは|意味・仕組み・応用例 - Ledge.ai
"応用" - Google ニュース
https://ift.tt/2RdYJHB
Shoes Man Tutorial
Pos News Update
Meme Update
Korean Entertainment News
Japan News Update
No comments:
Post a Comment