初めまして。AI-Tech-Lab北海道支部 学生エンジニアの稲生です。普段は医療系の大学院で放射線治療 × AIの研究をしています。
今回はここ数年急激な盛り上がりを見せている、絵を描くAI(生成モデル)の基礎であるGAN(敵対的生成ネットワーク)について紹介します。
もくじ
近年の絵を描くAI (生成モデル) について
ここ数年で絵を描くAI(画像生成モデル)は急激に進化してきました。また、AIが本物と区別がつかないような画像や動画を生成することで悪用されるディープフェイク(ウクライナ戦争でもゼレンスキー大統領のフェイク動画が拡散されました)としてニュースなどで見聞きしたことがある人も多いのではないでしょうか。
今回は、これらのようにAIがなぜこんなにも本物らしい画像を生成することができるのかについて、近年の生成モデルの基礎となった敵対的生成ネットワーク(GAN)の仕組みと共に解説して行きたいと思います。
敵対的生成ネットワーク(GAN)の概要
敵対的生成ネットワーク(GAN)とは
敵対的生成ネットワーク(GAN)とは、識別器と生成器と呼ばれる2種類のAI(ディープニューラルネットワーク)がその名の通り”敵対的”に学習するモデルです。
これら2つのネットワークは度々本物らしい偽物を作る偽造者と、偽物と本物を見分ける鑑定士に例えられます。偽造者がより精巧な偽物を作り鑑定士を騙そうとすれば、鑑定士はより正確に本物と偽物を見分けられるように学習します。このように互いに敵対するように学習をくり返すことで、生成器は本物と見分けのつかない偽物を生成できるようになります。
画像分類モデルの復習
ここでは画像分類モデルについて簡単に復習します。基本的な画像分類モデルは下の図のように画像と、その画像の内容を表す正解ラベルを学習します。そして未知の入力画像がどのラベルに該当するかを予測し、その確率を出力します。
GANの識別器は入力された画像が本物か偽物のどちらかであるかを識別します。言い換えると、識別器は正解ラベルが本物画像であるか、生成器による生成画像(偽物)であるかの画像分類モデルと捉えることができます。
GANの仕組み
続いて生成器について説明します。生成器は画像分類モデルの入力層と出力層を入れ替えたような形状をしています。つまり生成器の入力は数字の羅列(乱数ベクトル)で、画像を出力します。
上の図では出力画像は手書き数字の7となっていますが、実際には生成器単体ではこのような画像を生成することはできません。そこで、生成器が識別器を騙す(識別器が本物画像と識別してしまうような画像を生成する)という目的を持って学習を行うことで本物の手書き数字画像に限りなく近い画像を生成できるようになるのです。
手書き数字画像の生成
ここでは具体的にGANの学習過程を説明していきます。正解ラベルを本物画像: 0、生成画像: 1とすると識別器は入力画像に対してこれらを正しく出力するように、生成器は識別器が0と出力してしまうような画像を生成するように学習するということになります。
前述したように生成器単体ではリアルな画像を生成することができません。下図のように学習開始直後の生成器はただのノイズ画像を出力します。しかし、学習開始直後の識別器は本物画像または生成画像がどのような画像か学習していないため、ただのノイズ画像でも正しく識別できません。
次のステップでは、識別器が本物画像とノイズ画像を正しく識別できるように学習します。
続いて、生成器がノイズ画像と本物画像を正しく識別できるようになった識別器を再度騙すような画像を生成しようと学習します。
ステップ1のものと比べると少し手書き数字らしい画像が生成されました。そして、識別器はこの画像を本物画像であると誤って識別してしまっています。
再びステップ2のように識別器はこのような生成画像と本物画像を識別できるように学習し、さらに生成器はステップ3のように学習が進んだ識別器を騙すように学習を何度も繰り返します。最終的には下図のようにかなり手書き数字画像に近い画像が生成できています。
最後に: GANの社会実装への期待
最後にGANの応用例について説明します。
本記事の冒頭では、ディープフェイクというようにGANを悪用した例を紹介しましたが、GANは良い方向でも社会実装が期待されています。例えば希少疾患画像の生成による医療における画像診断AIの精度向上です。医療画像の分野では他の分野と比較して患者のプライバシー侵害の恐れなどから大規模でオープンなデータセットを作ることが難しいです。さらに希少疾患に関してはそもそも存在している画像が少ないという問題があります。このような問題から医療画像ではAIの活用が他の分野と比べて進んで来ませんでした。そこで、本物に限りなく近い画像を生成できるGANが比較的少量のデータセットから大量に画像を生成し、その生成画像を学習データとすることで画像(分類)診断モデルの精度が向上する可能性が示されています。(M. Frid-Adar, et. al., IEEE (2018) https://arxiv.org/abs/1801.02385)
GANは冒頭で説明したような絵を描くAIとして近年注目を集めていますが、未だ本格的な社会実装には至っていないと思われます。ディープフェイクのように悪用例が先立ってしまっていますが、今後は医療など様々な分野での人間社会に対して善い方向での活用に期待したいものですね。