2016-12-07 08:30:00

ディープラーニングで「インド人を右に」を理解する: Generative Adversarial Network による画像モーフィング

[トップページ] > [雑記] > ディープラーニングで「インド人を右に」を理解する: Generative Adversarial Network による画像モーフィング

「インド人を右に」問題

インターネットを長く使っている方は、伝説の誤植「インド人を右に」 [1] についてご存知なのではないでしょうか。

「くお〜!! ぶつかる〜!! ここでアクセル全開、インド人を右に!」

この唐突に過ぎる意味不明な「インド人」は「ハンドル」の誤植であり、それはライターの手書きの文字が汚かったために発生したとされています。

…手書きの文字が汚かったとして、どうすれば「ハンドル」が「インド人」になるのか? 従来より、この問題について様々な考察がなされてきました。

ここでは、近年の技術の発展の成果を取り入れ、コンピュータに文字を書かせることによって「ハンドル」から「インド人」への変容についてアプローチしてみたいと思います。

# これは DeepLearning Advent Calendar 2016 の7日目の記事です。

ディープラーニングによるアプローチ

昨今の人工知能ブームの中心に「ディープラーニング」があります。その発展により、画像認識や音声認識、機械翻訳などの多くのタスクの性能が飛躍的に向上しました。

ディープラーニングによる認識技術の進歩の一方で、「生成」技術についても大きな進展があります。その代表例が Generative Adversarial Network (GAN) による画像生成です。技術的な詳細は省きますが、GAN は「本物と見分けがつかないような偽物画像を生成する」ことを目的に訓練され、実際に本物と見分けがつかないような手書き数字や画像を生成できることが示されています [2, 3]。

上記は機械によって生成された画像の例です。数字画像を与えれば数字画像を、部屋画像を与えれば部屋画像を生成するようになります。

GAN では画像の補完も行えることが知られています。たとえば以下は、数字の補完を行った例です。

ということは、同様のやり方で「ハンドル」から「インド人」への変容の画像を生成できることになります。ここではそのようなアプローチを採用します。

実験

まず機械に文字の書き方を教える必要があります。ここでは「ハ」「ン」「ド」「ル」「イ」「人」の6文字について、様々なフォントに拡大縮小と回転を加えた学習データを各11040種類ずつ用意し、それと見分けがつかないような文字を書くように GAN を訓練しました。

下図は学習データの「ハ」の例です。

これをもとに学習させ、画像を生成させたところ、以下のようなものが出てきました。

全体的に下手ですね。想定していたよりかなり下手ですが…まあ読めそうな字も書いています。

ちなみに、文字を書く練習の過程はこのような感じです。

さて、これを用いて「ハンドル」から「インド人」へとどのように変容するのか、文字を書かせてみました。

結果は下図の通りです。

上図から

ことがわかります。どうやら、左の画が伸ばす癖があると「ハンドル」が「インド人」になりやすいようですね。

多様な解釈が生まれるのがコンピュータ法の利点です。たとえば下図では「ハ」の右の画が伸びることで「イ」となった、という仮説を提唱します。

また、人と人とが手を取り合って「人」となる姿も観察できます。

また、全く意味はありませんが、「ハ→ン→ド→ル→イ→ン→ド→人」画像も作ることができます。

おまけ: 「インド人」「ハンドル」認識

ところで、実際にライターが書いた文字は以下のようなものであったとされています。(※信憑性には疑問があります。)

今回、文字生成ネットワークを学習するために「ハ」「ン」「ド」「ル」「イ」「人」データセットを構築しました。これを転用すると、画像から文字を識別する識別器もまたディープラーニングで得ることができます。

そのような識別器を上記の「ライターが実際に書いた文字」に適用したところ、以下の認識結果が得られました。

結果は「人ンド人」の確率が77パーセント、「インド人」の確率が23パーセント。さすがに「人ンド人」は言葉としておかしいので除外として、ディープラーニングを持ってしても「インド人」読み取り已む無し、ということですね。

実装の詳細

参考文献

  1. ゲーメスト 第139号. 1997.
  2. I. Goodfellow et al.. “Generative adversarial nets.” Advances in Neural Information Processing Systems (NIPS). 2014.
  3. A. Radford et al.. “Unsupervised representation learning with deep convolutional generative adversarial networks.” International Conference on Learning Representations (ICLR). 2016.
  4. T. Salimans et al.. “Improved techniques for training GANs.” Advances in Neural Information Processing Systems (NIPS). 2016.

追記(2016-12-07 21:00): 参考文献にゲーメストを追加しました。ご指摘ありがとうございました。

[トップページ] > [雑記] > ディープラーニングで「インド人を右に」を理解する: Generative Adversarial Network による画像モーフィング


Cpyright (C) 2014-2016 Hiroharu Kato. All Rights Reserved.