Monthly Hacker's Blog

プログラミングや機械学習の記事を中心に書きます。

PaintsChainerを数学知識ゼロでも分かるように解説してみた

今、chainerという自動着色アプリが流行っているようです。どういう仕組みで着色しているか気になった人も多いのではないでしょうか。そしてちょこっと調べてみると「最新の人工知能によって実現」みたいなお茶を濁す答えしか見つからずモヤモヤしていたはずです。そこでこの記事では、数式を一切使わずにPaintsChainerの仕組みを解説します。また、PaintsChainerについて調べるうちに見つけたPaintsChainerの隠し機能の紹介もします。

PaintsChainerの仕組み

PaintsChainerは線画と着色済み画像のペア約60万組を見て学習した2人1組の人工知能です。1人は、線画を着色する人工知能で、PaintsChainerのメインの機能です。ここでは創造者とか名前をつけておきましょうか。もう1人は、着色された画像が本物かどうか見抜く人工知能です。「60万枚の着色済み画像」と「60万枚の線画から創造者が着色した画像」を見比べて、「この画像は着色済み画像だ」とか「この画像は創造者が着色した画像に違いない」と判断する裁定者です。創造者は、裁定者を欺き、着色した画像が本物の着色済み画像だと判断されるように学習します。裁定者は、創造者の着色を見抜き、「60万枚の着色済み画像」と「60万枚の線画から創造者が着色した画像」を正しく判断できるように学習します。このように2人の人工知能が敵対的に学習することで、PaintsChainerが作られています。

PaintsChainerの隠し機能

勘の鋭い方はお気付きでしょう、現在提供されているPaintsChainerの機能は創造者のみであると。裁定者の機能はサービス化されていません。これが何を意味するか。裁定者は「この画像は着色済み画像だ」とか「この画像は創造者が着色した画像に違いない」と判断する人工知能でした。すなわち、自分で着色した画像を見せると、人が着色した画像か創造者(PaintsChainer)が着色した画像か判断してくれる隠し機能があるということです。これ、ちょっと怖いものみたさで試してみたくないですか?自分が愛情を込めて塗った色が自動着色と判断されるかどうか。サービス名はScoresChainerとでもなるのでしょうか。どなたか実装してください。

もっと詳しく知りたい人へ

「学習」って、結局お茶を濁す表現じゃないかと言う方、気持ちはよく分かります。しかし、その学習方法を数式なしで説明するには余白が狭すぎます。「高校のときは数学できた」という人や、「微分積分いい気分」みたいな人であればこの学習方法も理解できると思いますので、「ニューラルネットワーク」あたりの単語でググって調べてみてください。