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

「GAN(Generative Adversarial Network):敵対的生成ネットワーク」はAI、ディープラーニングを利用していくのに昨年辺りから知名度が上がってきた技術の一つです。

 

GAN(Generative Adversarial Network)

GANでは、学習する元のデータから、それっぽい似ているデータを作り出すことができます。例えば、様々な猫の画像を学習し、そこから新たな種類の猫を作り出したり、王様の画像から王様っぽい人の画像を作り出したりできます。

この技術によって、どのようなことに利用できるかと言いますと、まずは画像を欲しい方向に変換することができます。例えば、航空写真から地図を作成したり、馬をシマウマに変換したりすることができます。

 

また自動運転には欠かせない画像認識では、天候や工事、道路沿いでの人の待ち方や飛び出し方など、必ずしも学習したことのある現実と同じ景色だけではありません。そのような場合も、似たような景色を予め生成して学習しておくことで対応することが可能になっていきます。
下記の記事は日本企業が自動運転に向けて、この技術を取り組んでいるものになります。

 完全自動運転向けAI開発のAscent Robotics

 

他にも未知のデータを生成することができるので、学習し忘れた種類を網羅する可能性もあります。その意味では、元のサンプルデータが少ないときにも有効です。似ているデータを生成することで、未発見のデータと想定できる様々な類似パターンを学習することができます。
医療など症例が少ないケースなどに期待されますが、反面医療などでは生成された偽物のデータを使う可能性は低いかもしれませんね。

 

GANの仕組み

簡単に言えば、二つのAIが違う役割を持って、切磋琢磨することによって、似ているデータを作成することができます。

一つは「generator:生成者」で、もう一つは「discriminator:識別者」になります。
二つとも元の訓練データを同じく学習し、「生成者」は似たようなデータを作り、「識別者」はそれが合っているデータか識別します。

これを繰り返していくことでお互いに切磋琢磨し、リアルな似ているデータが生成されるということになります。

 

下記に分かりやすい記事があったので、参考にしてみてください。

 AIがAIを「だます」ことで賢く成長
 GAN(と強化学習) 下記に記載しているVAEとの比較あり

また開発者視点では下記の記事がわかりやすかったので、興味があればご覧ください。

 はじめてのGAN

 

他に生成モデルを生成する技術にVAE(Variational AutoEncoder)があります。下記、参考記事をあげておきます。

 猫でも分かるVariational AutoEncoder
 Variational Autoencoder徹底解説