TOUCH THE SECURITY Powered by Security Service G

ナレッジ

2022.10.24

人工知能への学習手法「GAN]とは?概要から応用方法まで徹底解説!

皆さんは人工知能について考えたことはありますか?人工知能に関するシンギュラリティ(技術的特異点)という概念が近年、注目されています。シンギュラリティ(技術的特異点)とは人工知能が人間の能力を超える時点や、それにより人間の生活に大きな変化が起こるという概念のことです。このシンギュラリティ(技術的特異点)がいつ頃起こるかについてはさまざまな見方があります。

This Person Does Not Exist(https://thispersondoesnotexist.com)というサイトにアクセスしてみてください。

どこにでもいそうな人の写真が表示されます。しかし、ドメイン名からも分かる通り、この人はどこにも存在しません。人工知能が作り出したフェイクの顔写真なのです。

存在しない人をここまで成功に作れるのであれば、VTuberやチャットボットの技術と組み合わせて、ネット上に実在しない人間を生きているかのように存在させることも可能になります。

本記事ではそんな人工知能に学習させる方法としてGANを紹介します。人工知能にとっての学習や、シンギュラリティの可能性について少しでも知っていただければ幸いです。

人工知能に学習させるには?

人工知能に学習させたいときは、必ず広義の「教師」が必要です。人工知能の学習には一般的に「教師あり学習」と「教師なし学習」の2種類が存在します。

教師あり学習とは

「教師あり学習」とは人工知能に最初に正解のデータを学習させる機械学習のことです。例えば、与えられた画像が人間の顔であるかどうかを判別する人工知能を作りたい場合、大量の人間の顔写真という正解データを与えます。大量にデータをもとに与えられた画像が顔かどうかを判別できるようになります。教師あり学習は正解・不正解が明瞭な問題の解決に利用できる学習手法です。

教師なし学習とは

「教師なし学習」とは学習データに正解を与えない状態で学習させる機械学習のことです。教師なし学習をした人工知能は与えられたデータの特徴を学習して分類していきます。

「教師なし学習」と似ている機械学習に「強化学習」というものがあります。強化学習は、教師なし学習で行わせた分類に対して、報酬(得点)を与え、特定のものを選ばせるようにする機械学習のことです。

例えば、猫の写真を判別させるには教師あり学習では大量の猫の写真で学習させ、与えられた写真が学習した写真に似ているかどうかを判別します。一方、教師なし学習では、猫だけでなくさまざまな写真を学習させ、人工知能はそれを特徴に従って分類します。その分類の中で、猫の写真ばかりの分類があったら、それに報酬を与えて特定のものを選ばせるようにする機械学習が強化学習です。

つまり、人工知能の機械学習では、人間がどこかで介在して、正解を教えるか、評価をしなければなりません。人間の介在を必要としている限り、シンギュラリティは起こりようがないのです。

教師あり学習(Supervised Learning)では、最初に人間が選んだ正解データ(色付きの◯)を与える。しかし、与えるデータによっては実態とはずれた学習をしてしまうこともある。教師なし学習(Unsupervised Learning)では、すべてのデータを与え、人工知能に特徴を学習させ、分類させる。しかし、その分類が必ずしも人間が望むものに適合するかどうかはわからない。それぞれに一長一短がある。

GANとは?

先ほど、機械学習に人間が介在している限りシンギュラリティは起こりえないと述べましたが、2014年に当時モントリオール大学の学生だったイアン・グッドフェローは、この人間の介在をも人工知能で代替させられないかと考えました。つまり、人工知能が教師になって人工知能に学習させるということです。この学習手法をGAN(Generative Adversarial Network=敵対的生成ネットワーク)といいます。これはディープラーニングの進化系で、名前の通り敵対する「生成する人工知能」と「判別する人工知能」の2つが共に競い合い、学習を重ねていくアルゴリズムです。これは人工知能技術を大きく飛躍させる技術になると期待されています。

先述したとおり、GANの学習方法には生成器(Generator)と判別器(Discriminator)の2つの人工知能が存在し、異なる目的で学習していきます。

生成器は人間の顔写真を元データにして、それに似た画像を生成します。本来は、ここで人間が評価をし、得点を与える必要がありました。しかし、GANではこの生成データを判別器に渡し、判別器はその画像が人間の顔であるかどうかの真贋を判断するように学習していきます。

生成器の作り出す画像の精度が上がると、それを見分ける判別器の学習精度が上がります。判別器が精度よく真贋を判別できるようになると、生成器の学習精度が上がります。生成器は判別器を騙そうとし、判別器は生成器に騙されないようにと、互いが互いを学習させながら、精度が上がっていくのです。

GANは、2つの人工知能が互いに教師の役割をする。左の人工知能は精巧な偽札を生成するように学習する。右の人工知能は偽札を精密に見分けるように学習する。この敵対する人工知能を組み合わせると、相乗効果で互いに高速で学習が進んでいく。

生成器に必要な「ノイズ」「潜在変数」とは?

GANの学習で用いられる生成器は何もないところから画像を作れるわけではありません。最初に「ノイズ」や「潜在変数」と呼ばれる初期値のようなものが必要になります。この元になる数値を一定の手法で展開していきながら精巧な画像が生成されていきます。

この学習で重要なのは、どのノイズであればどの画像が生成されるかといったパターンを数学的に解析することです。あるパターンのノイズがあると男性の画像になり、別のパターンでは女性の画像になる。あるパターンではメガネをかけた人の画像になり、あるパターンでは裸眼の人になる。このようなパターンを特定できれば望みの画像を生成できるようになります。

MakeGirlsMoe(https://make.girls.moe/#/)というサイトにアクセスしてみてください。

このサイトは、上海復旦大学、カーネギーメロン大学などの学生が作った萌えキャラ生成サイトです。生成ボタンをクリックすると、萌えキャラが生成できます。これもGANの手法を使って学習された人工知能です。

注目していただきたいのは、髪の色、髪型、肌の色合い、笑顔、赤面、リボンなどの属性スイッチが利用できることです。これはノイズまたは潜在変数と画像の関係が解析をされ、適切な潜在変数を与えることで希望の萌えキャラを生成できるようにしたものなのです。

GANの文字式図。生成器(Generator)、判別器(Discriminator)がそれぞれ多層パーセプトロン(人工知能)になっている。まず、一定のノイズ(潜在変数)を与え、それに基づいて生成器が偽物のデータを生成する。判別器は真のデータにより学習を行い、生成器が生成した偽物データを見分けようとする。

まとめ

本記事では人工知能に人工知能の機械学習をさせるGANという学習手法についてご紹介しました。

初期値を応用するとさまざまな画像の演算が可能になります。例えば、「メガネをかけた男性を生成する潜在変数」から「男性を生成する潜在変数」を減らし、これに「女性を生成する潜在変数」を加えた潜在変数を使うと、メガネをかけた女性の画像が生成できます。あたかもメガネをかけた男性の画像をメガネをかけた女性の顔に変換でき、画像の加減算ができたかのように見えます。これを応用すれば、人物の画像を太らせる、痩せる、若くする、老けさせるなどということも可能になるかもしれません。

潜在変数と生成画像の関係を分析すると、例えば、「このような変数を与えると、生成画像の人物はサングラスをかける」というようなことがわかってくる。この分析をさらに進めると、潜在変数を加減演算することで、画像の演算ができるようになる。サングラスをかけた男性から男性を引き算して、それに女性の顔を加えると、サングラスをかけた女性の画像が生成できる。

人間の介在する部分はますます、人工知能に置換することが可能で、シンギュラリティはもう始まっているのかもしれません。

記事一覧に戻る