|
|
シリーズコラム 「社会を支える人工知能」 |
【第9回】 AI同士のバトルで成長する不思議なAI技術
|
|
|
|
|
|
今回は、2つのAIが共に成長していく風変わりなAI技術を紹介しようと思います。また、このAI技術で2つの事例を試してみたので、こちらも紹介させていただこうと思います。
さて、2つのAIが切磋琢磨して成長していくとはどういうことでしょう?
分かりやすくするために、今回登場する2つのAIに「生成AI」と「識別AI」と名前を付けましょう。生成AIは入力されたデータに対応するデータを作成します。例えば、同一場所の航空写真と地図、何かしら画像の白黒画像とカラー画像などです。識別AIは2つのデータを受け取り、それらが対応しているか否か判定します。
図1.今回登場するAI
生成AIと識別AIを図2のように繋げると、生成AIは識別AIを騙すために入力データに対応したデータを出力するように成長します。また、識別AIは騙されないように2つデータの対応関係を正確に判断するように成長していきます。このように各AIは騙す・騙されないように切磋琢磨して成長していきます。
図2.2つAIの成長方法
この技術は、敵対的生成ネットワーク(GAN)と呼ばれており、近年注目されているAI技術です。
このGANで「塗り絵」と「画像補間」を試してみました。GANのプログラムは文献[1]の技術をフリーで公開しているpix2pix-tensorflow[2]というものを利用しました。
(1)塗り絵
いさぼう君の画像を学習データとして用いて、その輪郭の画像とカラー画像を連結したものを100枚AIに与えました(図3)。学習にGPUを用いた場合、学習時間は1時間程度でした。
図3.塗り絵の学習データの例(100枚の内4枚)
図4はいさぼう君の塗り絵の結果です。(a)ではいさぼう君の右の目とCDの色が、(b)では背景と下半身の色が正解と異なりますが、肌やヘルメットを見るとかなり良い線まで行っていることが分かります。(c)は、紙に書いたいさぼう君をスキャンして、AIで色塗りをした結果です。頭の上が炎上しているみたいですが、いさぼう君の色塗りはいい感じになっています。
図5はいさぼう君以外の輪郭データを与えてみた結果です。左側は、猫(?)が太陽から特別な光を受けているような画像となりました。右側は部屋の写真から輪郭を抽出して、AIに与えた結果です。ホラー映画に利用できそうな不気味な画像が出力されました。
図4.塗り絵の結果
図5.いさぼう君以外のデータで塗り絵
(2)画像補間
こちらでは、図6のように一部をくり抜く前後の画像を連結したものを100枚AIに学習データとして与えました。学習時間は塗り絵と同等に1時間程度でした。
図6.画像補間の学習データの例(100枚の内4枚)
図7はいさぼう君の画像補間の結果です。(a)はいさぼう君がCDを見るように補間されました。(b)はヘルメットの補間はいい感じですが、顔の補間は今ひとつです。(c)は顔がずれてしまっています。しかしながら、AIがくり抜かれた黒の部分を補完することを勝手に覚えたことには驚かされました。
図7.画像補間の結果
次に、図7(b)の入力画像を少し加工した場合、補完がどのように変化するのかを確認してみました。図8は加工した画像とAIの出力画像となります。左側はいさぼう君の頬を緑色にしてみました。しかし、出力画像は図7(b)と変わりはありません。右側は空、ヘルメット、肌の色を大幅に変えてみました。その結果、のっぺら坊になってしまいました。一方でヘルメット部は上手く補完しています。このことから、ヘルメットの情報は周囲に左右されず補完できるが、いさぼう君の顔は周辺の色によって変化するということが分かりました。
図8.色を変化させた場合の結果
AIの学習後に、学習データを補完させた場合、正解データと同じになるのかを試してみました。学習で用いたデータであるため、元に戻る可能性は高いはずです。図9は学習データを補完した結果となります。ご覧の通り、正解データとは異なる補完をしてしまいました。これは、AIの学習は100枚画像を覚えている訳でなく、100枚の画像からいさぼう君の顔の特徴を学習しているということが分かります。
図9.学習データを補完
今回はGANというAI同士が成長しあって高め合う技術を紹介しました。この技術は対応する2つの画像を与えるだけで勝手にルールを学ぶため、非常に手軽に利用でき、様々な応用ができるかもしれません。
[1] |
Phillip Isola, Jun-Yan Zhu, Tinghui Zhou and Alexei A. Efros, “Image-to-Image Translationwith Conditional Adversarial Networks”, Computer Vision and Pattern Recognition 2017, https://arxiv.org/abs/1611.07004, 2016 |
[2] |
pix2pix-tensorflow, https://github.com/affinelayer/pix2pix-tensorflow |