AIに教師なし学習をさせて「中間顔」を作ってみよう!(ちちんぷいぷいプログラミング第9回)

親子で学ぼう!ちちんぷいぷいプログラミング(毎週日曜あさ10時更新/全10回)

エンちゃん:
世界一プログラミングに詳しいゆるキャラ、エンちゃんです。

小池美由:
プログラミングアイドルへの道を駆け上がり中の小池美由です!


エンちゃん:
えっ、駆け上がり中なんですか?

小池:
確認しないでもらえます?

エンちゃん:
まぁ、とにかく今日もがんばりましょう!


敵対的生成ネットワークによる顔生成

エンちゃん:
今日のテーマは「敵対的生成ネットワークによる顔生成」です。

小池:
なるほど。

エンちゃん:
わかったふりをしないでください。
簡単に言うと、人工知能で顔を分析して、“顔の特徴ベクトル”、“特徴の傾向”を学習します。
そして、特徴ベクトルを使うと顔と顔の中間を作成することができるというデモです!

小池:
???


エンちゃん:
ま、とりあえずやってみましょう!
そのためにまず顔のサンプルが必要です。
今回は「CelebA」という顔がたくさん入っているデータに小池さんの顔を混ぜたものを使います。
セレブの顔だけで196,513枚入っているんですが、こちらをDeepAnalyzerにアップロード。
覚えてますよね?

小池:
ここは大丈夫!


エンちゃん:
次はネットワークでNewをクリック。
今回は、敵対的生成ネットワーク通称「DCGAN」を使います。
ざっくりいうと、与えられた情報を学習して徹底的に特徴をつかむ、ということです。

小池:
ん~、とりあえずやってもらってもいいですか?

エンちゃん:
じゃ、データセットはCelebAを選んで次のステップ。ノード数1、エポック数100でスタート。
ほら、前回とほぼ一緒でしょ?

小池:
確かに、ふんわり分かるかも!

エンちゃん:
良かった~。
ただこれコンピュータが学習するのに数時間かかります。

小池:
ええ!

エンちゃん:
ということで、学習済みのデータに差し替えて中間顔生成をやってみましょう。
INFERENCEをクリックしてノード数を選びます。
今回は1つなので、そのまま次のステップ。
え~ここで学習されたデータから自動的にたくさんの画像が生成されます。
小池さんの画像もありますね?

小池:
おお~。


エンちゃん:
今回は4つの顔を選んで、その中間顔を生成してみます。

小池:
よし!スタート!

エンちゃん:
はい、できました。小池さんがサングラスをかけたおじさんに変わっていったりとか。
こんな感じで中間的な顔を生成することができます。

小池:
中性的…あ、中間顔だからそれでいいのか!


エンちゃん:
さらに、この敵対的生成ネットワークを使うと、小池さんを落書きからつくることができます。
このINFERENCEというのを使って、これを人工知能に見せて、これから小池さんぽい顔を生成してみます。

小池:
ええ~本当に~?

エンちゃん:
これからできた小池の顔~!?
すごーい!


エンちゃん:
それでは、いつものお師匠さんの時間です。


【AIお師匠さんのためになる話と番組のフルバージョンは下記の動画をチェック!】

【第8回】ちちんぷいぷいプログラミング(4分)

次回#10はついに最終回!テーマは「物体検出(オブジェクト・ディテクション)」です。お楽しみに。

ちちんぷいぷいプログラミングの他の記事