「末は博士か大臣か?」、顔から判別してみる
【イントロ】 「末は博士か大臣か」。 優秀な子供は周りの大人から、そんな期待を背負って成長していきます。小さな頃の期待を背にぐんぐん頭角を表し、時代を代表する寵児となっていきます。 しかし、「十で神童、十五で才子、二十歳過ぎれば只の人」。 歳を重ね、より大きな集団の中で比較されることで、かつての輝きは失われていく人も、一方では存在します。。。 一体何が、その差を生み出すのか。やはり、顔か・・・ でも、博士と大臣って顔つきは違うんだろうか(´・ω・`)? そこで本記事では、「顔面から博士か大臣か判別できるか?」、調べてみました。 【方法】 方法はかっこよく、Deep Learningを使用することにしました。 @kakinaguru_zoさんのPythonとKerasを使った猫犬分類プログラム を参考に、分類を実施しました。実際は基本的にそのままです。(コメント含めて)。参考書として、こちらの Keras本 を使用していますが、丁寧に書かれていると思いました(こなみ とはいえ、学習用の博士と大臣画像は自分で集めないといけません。 そこで、 Wikipedia から科学系のノーベル賞(物理学、化学、医学・生理学)受賞者と各国の首相・大統領の顔画像を収集するプログラムをPythonで作成しました。 その結果、博士画像488枚、大臣画像625枚を収集することができました。 (ほかのサイトからも集めてみましたが、画像サイズは同じくらいのほうが収束が良かったので、すべてWiki画像で揃えました。) これらの画像を2:1:1くらいの割合に分割し、それぞれ「学習」・「評価」・「テスト」データとしました。この辺の割合はフィーリングです。 次に、この画像を使って学習を実施しました。学習には Google Colab を使用しました。これは、GPU使用可能なクラウド上でIpython notebook形式のPythonを実行できるアプリケーションです。すごい時代になったもんだ。。。 学習用データをアップロードして学習した結果が下図のとおりです。 図1,学習・評価データのAccuracy 図2、学習・評価データのLoss 図1からわかるように、学習データで85%、評価データで70%程度の正確さで分類できる結果と