これで画像生成の幅が広がった!GAN(敵対的生成ネットワーク)とは | AIZINE(エーアイジン)
テクノロジー

これで画像生成の幅が広がった!GAN(敵対的生成ネットワーク)とは

GANのイメージ

ここ最近ではAI(人工知能)の画像生成の幅は大きく広がりましたよね。例えば、写真のシマウマの模様を別のものにしてみたり、存在しない写真を一から作り出すことも簡単にできるようになっています。

実はこの画像生成技術の進歩にはGAN(敵対的生成ネットワーク)という手法が関係しているのです。(ただし、実際に使われているGAN(敵対的生成ネットワーク)はオリジナルのものではなく、それを応用した技術が主流となっています。)

そこで今回はこのGAN(敵対的生成ネットワーク)の基本から画像生成がどのようになされているのか。また、このGAN(敵対的生成ネットワーク)という手法にどのような課題点、もしくは利用する際に気を付けるべき点があるのかをみなさんにわかりやすくお話していきましょう。

さらに、最後にはこのGAN(敵対的生成ネットワーク)が今後どのように利用されていき、私たちの生活にどのような影響を与えていくのかをお伝えしていきます。

GAN(敵対的生成ネットワーク)とは

GANGANのイメージ

まずは簡単にGAN(敵対的生成ネットワーク)という手法について説明していきましょう。

こちらはAI(人工知能)の研究者であるイアン・J・グッドフェロー氏によって考案されたニューラルネットワーク(人間の神経細胞のネットワークを模したもの)のモデルであり、正確にはGAN「Generative adversarial network」と呼ばれています。

仕組みとしては以下の2つの異なるニューラルネットワークを繋ぎ、それらが敵対することで精巧な画像生成を行うというもの。

  • 画像を生成する「Generator」
  • 画像を判別する「Discriminator」
機械学習のタイプとしては正解のデータを必要としない、教師なし学習に分類されます。(教師あり学習の場合には正解のデータを用意して、得られた結果を比較してモデルを作れ上げていく)
具体的な流れを簡単に説明していくと、Generatorでは本物にない画像データをニューラルネットワークを用いて生成していきます。次に、生成された画像を同じくニューラルネットワークであるDiscriminatorに出力し、本物の画像データと一緒にしてそれらが本物なのか、偽物なのかを判別していくのです。最後に得られた結果から「Generator」と「Discriminator」を調整していき、以上の流れで学習を繰り返していきます。
そうしていくと最終的にはGeneratorの精度があがり、これによって本物と見分けのつかない画像が作成できるというのがGAN(敵対的生成ネットワーク)という手法です。

お分かりのように構図としては偽物を作る偽造犯と、それを取り締まる警察官がイタチごっこを繰り広げ、最後は偽造犯が勝利を収めるというシステムになっています。現実では起こってほしくないことですが、このGAN(敵対的生成ネットワーク)という手法を用いれば人間でなく、機械が精巧な画像生成を行えるようになるです。

それでは、このGAN(敵対的生成ネットワーク)によって、どのようなことができるようになったのかを以下で説明して行きます。

GANによって、できるようになったこと

画像生成のイメージ

このGAN(敵対的生成ネットワーク)という手法が生まれたことで以下のようなことができるようになりました。

  1. データからさまざまな画像を生成
  2. 元の画像を加工することもできる
  3. 文字から画像を生成することもできる
  4. 教師あり学習がしやすくなった
まず、1にあるようにこのGAN(敵対的生成ネットワーク)を使うことでさまざまな画像を生成できるようになりました。具体的には人や動物の画像はもちろん、アニメやゲームに出てくるようなキャラクターを作成できます。
次に、2にあるように元の画像をリアルにしたり、ある特定のタッチに変更するということも可能に。これによって簡単な線画からリアルな画像を生成したり、あのひまわりで有名なゴッホのタッチに画像を加工できるようになりました。
また、3にあるように画像だけでなく文字から画像生成を行うことも可能です。こちらに関しては「Text to Image」というものが有名で生成したい画像のイメージ、例えば「赤い身体のくちばしが大きい鳥」などと書き込めば、その通りに画像生成してくれます。

以上のようにGANによって画像生成の幅は大きく広がっており、創作やビジネスなどの面で活用が期待されているのです。なお、このGAN(敵対的生成ネットワーク)はそれだけでなく、AI(人工知能)の学習にも活用されています。

それが4にあるGAN(敵対的生成ネットワーク)を利用して教師あり学習を行いやすくするというもの。これがどういうことかというと、教師あり学習ではあらかじめ正解のデータを用意しておき、それを使って学習を進めアルゴリズムを形成していきます。

しかし、その際には必要な対象のデータをどのように用意するのかが問題となってくるのです。

例えば、対象が存在としてメジャーな猫などでは、データを集めるのは比較的容易だと考えられます。(なお、Google社ではYouTubeを利用してデータを入手していました。)ところがこれが発症率の低い難病のCT画像ならどうでしょうか。こちらの場合ではそもそも発症する可能性が低い病であるため、猫の場合と比較してデータの数は少なく、そのデータを集めるのは難しいです。

そのため、その難病を見分けるようなAI(人工知能)を製作しようとしても、データの関係でつまずくことがあり得ました。

しかし、このGAN(敵対的生成ネットワーク)という手法が登場したことで、同様のケースではデータはGAN(敵対的生成ネットワーク)で作るというアプローチが生まれたのです。

したがって、現在ではこのGAN(敵対的生成ネットワーク)という手法でAI(人工知能)開発は加速しています。教師あり学習と教師無し学習というタイプの異なる学習方法が協力して、新しい製品やサービスなどが生まれていくと考えると、このGAN(敵対的生成ネットワーク)は非常に革新的であるといえるでしょう。

次の章ではそんな革新的な手法であるGAN(敵対的生成ネットワーク)の画像生成の仕組みについて説明していきます。

GANはどのように画像生成を行うのか

AIのイメージ

これまで説明したようにGAN(敵対的生成ネットワーク)は画像を生成する「Generator」と画像を判別する「Discriminator」を繋ぎ、それらが競い合うことで精度の高い画像生成を可能としています。こちらの基本的な仕組みは「1:GAN(敵対的生成ネットワーク)とは」の通りです。

ですがそもそもどうやって画像生成を行っているのか疑問ですよね。実はこの画像生成を行う仕組みにはGeneratorが主体的な役割を果たしているのです。

ここではこのGAN(敵対的生成ネットワーク)がどのように画像生成を行うのかを、その根幹であるGeneratorの仕組みで説明していきましょう。

GAN(敵対的生成ネットワーク)のGeneratorは以下のようなものです。

  1. ニューラルネットワークである
  2. 行っているのは逆畳み込み処理
まず、1にあるように画像を生成するGeneratorはニューラルネットワークです。なお、このニューラルネットワークとは人間の神経細胞を模したパーセプトロンで構成されたネットワークで、これによって現在のAI(人工知能)はものを識別することなどができます。
次に、2にあるようにこのGAN(敵対的生成ネットワーク)が行っているのは逆畳み込み処理と呼ばれるものです。ただし、これではわからない人もいるでしょうから、前提となる畳み込み処理から解説していきます。
こちらは畳み込みニューラルネットワーク(CNN)とも呼ばれるもので、画像から特徴を読み取りながら情報量を減らしていくニューラルネットワークです。具体的には画像の一部分を取り出して畳み込み処理やプーリング処理を行い、特徴を残しながら情報量を小さくしていくもの。
これによって画像という一見わかりずらいものが数値として表現されます。そして、最終的にはそれらを出力していってもっとも数値が大きい、すなわち確率的に高いと思われる回答を出すのがこちらの仕組みです。

ちなみにこの畳み込み処理は画像を判別するDiscriminatorで用いられており、これで偽物か本物なのかを見分けています。一方でGeneratorの逆畳み込み処理では上の説明の逆、数値から画像を作り出していくのです。

手順としては画像のもとになるものとしてノイズ、正規分布などの乱数を用います。(こちらに関しては自然界などに当てはまる一般的な乱数であるため)そして、それを欠落している情報を埋めていきながら大きくしていくのです。

そうしていくとただの数値であったものから画像が生成できるようになります。もちろん、このGeneratorは最初から特徴を理解していないのでちゃんとした画像生成はできません。そのため、しっかりと生成できるまで学習を重ねていく必要があります。

これがGAN(敵対的生成ネットワーク)という手法における画像生成の根幹であるGeneratorの仕組みです。

それにしても学習を重ねることで乱数などから画像が生成できるというのはすごいですよね。しかも幅広い対象で画像生成ができるのは今後の将来性にも期待できます。

ただし、このGAN(敵対的生成ネットワーク)は決して欠点のない手法ではありません。したがって、以下ではGANの課題点についてお伝えしていきましょう。

GANの課題点

ノイズのイメージ

非常に革新的な手法であるGAN(敵対的生成ネットワーク)ですが、以下の欠点もあります。

  1. 勾配消失などの問題
  2. ノイズ選定の問題
まず、1にあるようにGAN(敵対的生成ネットワーク)では勾配消失などの問題があります。これはニューラルネットワークで起きる問題なのですが、GAN(敵対的生成ネットワーク)もまたニューラルネットワークであるのでこの問題が生じるのです。
なお、この勾配とは重みの調整を行う際にみる指標であり、その時点での重みの傾きがどうなっているを微分して求めるもの。この際に得られる傾きが勾配であり、これがより少なくなるように学習の際には調節していきます。そして、勾配消失問題とは勾配を計算すると、本来目標とすべき値ではないところで勾配がなくなってしまう問題。こうなってしまうとその値が適切と判断して学習が行われず、結果として優れたアルゴリズムを持つネットワークを作れなくなってしまいます。
こちらに関しては活性化関数というものを変更すれば解決できることもありますが、逆に勾配爆発といわれる問題が生まれることもあり得てしまうのです。そのため、これらの問題によってGAN(敵対的生成ネットワーク)は不安定であるともいわれています。
次に、2にあるようにどのようなノイズを選定すればよいのかがわかっていない問題も。一般的にGAN(敵対的生成ネットワーク)のノイズには正規分布を用います。しかし、こちらを利用して画像を生成すればすべての点で問題が生まれないわけではないです。
これはニューラルネットワークであるGAN(敵対的生成ネットワーク)は連続関数(上の活性化関数のこと)を利用しているため、あくまでも近似した結果しか表せないから。
ですから、人間の目で見ていくと正解のデータに含まれないような画像が生成されてしまうことがあります。こちらに関しては明確にこれだというノイズがみつかっていないので、問題が生じた際にはふさわしいノイズを探してみたり、別のアプローチで解決を図るしかありません。

これらがGAN(敵対的生成ネットワーク)の抱える課題点です。やはり革新的な手法といっても今だ発展途上であることは間違いないでしょう。

ですが上手く使えば有用な手法なのは間違いないです。以下ではこれまでの内容を踏まえてGAN(敵対的生成ネットワーク)を使うに当たって、気を付けるべき点を説明していきます。

GANを使うに当たって、気を付けるべき

GANで生成した画像のイメージ

これまでの説明でGAN(敵対的生成ネットワーク)に興味が出てきたのなら、ぜひみなさんの手で実装してみてください。ただし、その際には以下の点に注意しましょう。

  • 生成された画像に偏りがないか
  • 正解のデータに近い画像が生まれているのか

これらは上でも説明した勾配消失などの問題が発生した際に起こる典型的なものです。

例えば、0〜9の数字の画像を生成するはずだったのに、なぜか3と7しか生成されていないようにみえる。また、生成した画像の中に明らかに正解と程遠い画像がある。これらのような場合が当てはまるでしょう。

したがって、実際にGAN(敵対的生成ネットワーク)を扱った際には生成された画像をよく確認してください。

そして、もしこれらが起こっているのなら適切な対応を取りましょう。こちらに関しては具体的な方法については割愛しますが、その中には別のアプローチや応用したGAN(敵対的生成ネットワーク)を使う方法もあ。

もちろん、それらを理解することは容易ではありませんが、少しずつ勉強しながら取り組んでみてください。そうすればみなさんもGAN(敵対的生成ネットワーク)を上手く理解し、活用できるようになれるでしょう。

 

GANのイメージ

これまでGAN(敵対的生成ネットワーク)に関する以下の点を説明してきました。

  • GAN(敵対的生成ネットワーク)は画像を生成する「Generator」と画像を判別する「Discriminator」で構成される
  • さまざまな画像生成ができるようになり多くの分野で活用が期待されている
  • 画像はGeneratorが逆畳み込み処理を行って生成している
  • 解決されていない勾配消失などの問題がある
  • 生成された画像はよく確認して問題があれば適切に対処する必要がある

しかしながら、このGAN(敵対的生成ネットワーク)という手法は画像生成だけでなく、動画の作成やセンサーとしても使われようとしています。

中でも前者に関しては「DeepFake」と呼ばれるものが有名です。こちらはGAN(敵対的生成ネットワーク)を使って動画の加工を行うものであり、リアルタイムの動画でも本人の顔を別人に変えられるもの。

最近ではオバマ前大統領がめちゃくちゃなことをいっている動画などが注目を浴びました。こちらに関しては悪用される危険性がある一方で、コロナウイルスの影響で動画撮影ができない現状を解決する方法として実用化している企業も出てきています。

あくまでもこれは動画作成におけるGAN(敵対的生成ネットワーク)の一例ですが、今後よりAI(人工知能)が普及していく限り、間違いなく画像以外の分野でも活躍していくでしょう。そうなれば将来は私たちが目にするものやサービスには、GAN(敵対的生成ネットワーク)が当たり前の存在として利用されているかもしれません。

したがって、このGAN(敵対的生成ネットワーク)という手法によって今よりも明るい未来が生まれることを願い、これからどう進歩していくのかをみなさんも注目していきたいですよね。

トップへ戻る
タイトルとURLをコピーしました