機械学習はじめにまずは下の動画をご覧ください。スパイダーマン2の主役はトビー・マグワイアですが、この動画ではトム・クルーズがスパイダーマンを演じています。これは実際にトム・クルーズが演じているのではなく、トム・クルーズの顔画像を用いて合成したもので、機械学習の技術を用いて実現できます。learningの技術を用いて「人間を騙す自然なもの」を生成することができます。「人間を騙す自然なもの」を作るには本物のデータがどのように生成されるのか理解しなければなりません。猫の画像を生成するときに耳を3つ書いたりしません。猫の耳は2つであるということを学習しなければなりません。GANによる成果物をもう1つ紹介します。こちらのサイトにアクセスすると人物の顔が出てきます。出てくる人物はこの世に存在せず、GANが生成した人物です。ご覧になっていただいてわかるように不自然なところは何もありません。Networksの略で敵対的生成ネットワークとも呼ばれ、2014年に発表されました。特徴は2つのネットワークを戦わせることにあります。Gをデータを生成するネットワーク(Generator)、DをデータがGから生成されたものか実際のデータかを判別するネットワーク(Discriminator)とします。GはDを騙すような画像を生成できるように、DはGから生成されたデータを見抜けるように、競いながら学習をします。論文では例として、Gを偽札を作る悪人、Dを偽札を見抜く警察としています。全体のネットワーク構造は以下のようになっています。Gを図中のGenerator、Dを図中のDiscriminatorとします。variable)から、通常のネットワークのように重みをかけて本物と同じサイズの画像を生成します。sample)を受け取り、本物か偽物かを判定します。アルゴリズムパラメータθgとθdを更新する手順を以下に示します。kはハイパーパラメータです。学習の様子zがpzに従うときG(z)がpgに従うとします。概略は以下のようになります。pdataとなることです。本物のデータが生成される分布pdataとpgが等しいため、理論上は見分けがつかないことです。成り立つことだとも言えます。これは、Dが本物のデータxをを本物だと見分ける確率が1/2で、当てずっぽうで判断していることになります。論文にはpgがpdataに近づいていく様子が載せられています。実際のデータxが従う確率分布pdataa学習前の様子です。Dが上のアルゴリズム(2-3)の手順で更新された後です。Gを上のアルゴリズム4の手順で更新された後です。bの状態と比べて、pgがpdataに近づいた事がわかります。pdataとなった様子です。4.まとめGANは人を自然な画像を生成するだけでなく、最初に挙げたスパイダーマンのように2つの画像を自然に合成することもできるようです。買おうか迷っている服を自分の体に合成して、擬似的に試着することもできます。服の試着だけでなく、化粧品のお試しや、髪型が自分に合うのかなどを事前にわかっていると便利そうです。今後はGANについて最新の傾向をつかめるようにしていきたいと思います。