Are You Gorilla?
注意 本記事はネタです、ロジックの飛躍や間違いがあります。
お久しぶりです、すしくんです。
前回sym(すわむ)にバーチャルぷよぷよ対戦で勝利してからはや二年————。
未だにリアルぷよぷよ対戦で彼に勝利したことはありません。
ただ現状勝率そのものが変わらない限り人間の寿命では無理、という結論が得られているのである意味仕方ないのかもしれません。
挨拶はこのくらいにして今回のテーマについて話していきたいと思います。
「ぴぽにあゴリラ説の実証」
です。
皆さんも今まで一度は考えた事があると思います。
・・・・
・・・・・・・・・・・
・・・・・・・・・・・・・・・!!!!!!
これでわかって頂けたと思います。
———————————————————————————
しかし、いくら大勢の人が直感的にゴリラだと確信していても全員にアンケートを取るわけにもいきません・・・。
本人に「もしかしてゴリラ?」と聞いたとしても素直に答えてくれるでしょうか?
いずれにせよ客観的に評価する必要があります。
どうしたらいいのか・・・・
最近ハマっているフルグラを貪りながら考えました・・・・
なんでこんなにもフルグラは美味しいのか・・・・
なぜ・・・・・
それは____
AI・・・・機械学習・・・・!!!!
これがソリューションです。
———————————————————————————
今回主に使用したのはTensorFlowです。
TensorFlow(テンソルフロー)とは、Googleが開発しオープンソースで公開している、機械学習に用いるためのソフトウェアライブラリであるんですよね。
まずは画像集めです。これ一番辛い
過去旅行にいった時の画像からサルベージしてきたり、動画から切り抜いてきたり・・・。
集めて切り抜いて・・・・
・・・・・
頭おかしなるで
今回は精度もある程度出したいので、上記4人の顔写真を100枚程度、ぴぽにあだけ200枚集めました。
しかしまぁ今回集めたぷよらーは露出が多いので、まだ集めやすかったと思います。(顔は自動で切り抜いていたので、そこまで苦じゃありませんでした。)
そしてこれを学習していきます。
最後のtest accuracyが正答率です。92パーセントの確率で、ぴぽにあ、Ash、キウ、ぽかりすかどうかを判定できます。そこそこの精度が出ている気がします。(人物判定の相場がわからない)
———————————————————————————
ここからが本番です。
この学習済みモデルを用いて、ぴぽにあが本当にゴリラかどうか判定して行きます。
それでまたゴリラの画像を集めるわけです・・・・
APIの使い方がいまいちよくわからなかったので、手動で集めました。
「このゴリラ・・・・さっき保存した気がする・・・・いや・・・・してない??」
みたいな謎の苦しみを味わいました。
しかも人間用の顔検出にかけると
このように鼻だけが切り抜かれ、結局手動でやる羽目に・・・。
このゴリラたちをぴぽにあかどうか判定していきます。
———————————————————————————
その結果・・・
集めたゴリラのうち
が、ぴぽにあであると判定されました。
う〜〜ん、どうなんでしょうこれでは微妙な気がします。
しかしゴリラも色々いるわけで、全てがぴぽにあゴリラであるとは考えられません
そこで「どの程度ぴぽにあなのか」つまり、「ぴぽにあ度」を比較していきます。
今回は
「ぴぽにあと判定された時のぴぽにあである確率の平均」
をぴぽにあ度としました。
まずはぴぽにあ自身のぴぽにあ度を見ましょう。
[ぴぽにあ、Ash、キウ、ぽかりす]
の順番で入力画像が誰なのかの確率が表示されています。
最終的にはぴぽにあ度は一番下の0.997となりました。(理想的なモデルでは1になるべき)
次にゴリラは
0.959となりました。
まとめると
・ぴぽにあのぴぽにあ度は0.997
・ゴリラのぴぽにあ度は0.959
誤差の評価は非常に面倒難しいのでやっていませんが、得られた結論としては
です。
ゴリラの画像を200枚くらい集めて同じ計算をすればどんどん1に漸近していくと期待していますが、集めるのが大変なので絶対やりません。誰かゴリラの画像集めて僕に送ってください
———————————————————————————
いかがだったでしょうか?僕は結果にあまり満足していないので、また別のアプローチを考えます。
今回の大きな問題点として「そもそも4人だけの世界で判断している」ので、「4人以外」のラベルを用意し、大量の画像を学習させる必要があります。(ガチのDeep-Learningを用いた高級なアプローチもあるはずです。)
また、おそらくぴぽにあ度は本来ゴリラ全域で平均を取らなければならないとか・・・最初のモデルの精度自体が実は低いとか・・・。
しかしその辺は技術も知識も足りないので、次回かなぁ・・・。
———————————————————————————
オマケ
全ての画像の中で(ぴぽにあの画像も含む)ぴぽにあよりぴぽにあと判断されたゴリラ
Ashと判定されたゴリラ
ぽかりすと判定されたゴリラ
96パーセントの確率でぴぽにあであると判定された車
キウ君と判定されたゴリラは集めた範囲ではいませんでした・・・。
キウ君は全然ゴリラではないらしい。
お久しぶりです、すしくんです。
前回sym(すわむ)にバーチャルぷよぷよ対戦で勝利してからはや二年————。
未だにリアルぷよぷよ対戦で彼に勝利したことはありません。
ただ現状勝率そのものが変わらない限り人間の寿命では無理、という結論が得られているのである意味仕方ないのかもしれません。
挨拶はこのくらいにして今回のテーマについて話していきたいと思います。
ズバリ
「ぴぽにあゴリラ説の実証」
です。
皆さんも今まで一度は考えた事があると思います。
・・・・
・・・・・・・・・・・
・・・・・・・・・・・・・・・!!!!!!
これでわかって頂けたと思います。
———————————————————————————
しかし、いくら大勢の人が直感的にゴリラだと確信していても全員にアンケートを取るわけにもいきません・・・。
本人に「もしかしてゴリラ?」と聞いたとしても素直に答えてくれるでしょうか?
いずれにせよ客観的に評価する必要があります。
どうしたらいいのか・・・・
最近ハマっているフルグラを貪りながら考えました・・・・
なんでこんなにもフルグラは美味しいのか・・・・
なぜ・・・・・
それは____
AI・・・・機械学習・・・・!!!!
これがソリューションです。
———————————————————————————
今回主に使用したのはTensorFlowです。
TensorFlow(テンソルフロー)とは、Googleが開発しオープンソースで公開している、機械学習に用いるためのソフトウェアライブラリであるんですよね。
ディープラーニングに対応しており、Googleの各種サービスなどでも広く活用されている。 2017年2月15日に TensorFlow 1.0 がリリースされた[3][4]。
対応プログラミング言語はC言語、C++、Python、Java、Go[5]。 対応OSは64ビットのLinux(ただしバイナリ配布はUbuntu用)、macOS、Windows[6]。ハードウェアは CPU[7]、NVIDIA GPU[7]、Google TPU[8]、Snapdragon Hexagon DSP[9] などに対応していて、Android Neural Networks API 経由で Android 端末のハードウェアアクセラレータも使用できるんですよね。
今回はpythonで書きました。
・参考記事
TensorFlowでアニメゆるゆりの制作会社を識別する
アルゴリズムはここでは詳しく書きませんが(ちゃんと説明できる気もしない)画像を大量に読み込ませる事で、その人に共通した特徴を学習していくといった感じです。
具体的には2層の畳み込みニューラルネットワークで解析したとか、そういう話もありますがそれは僕のブログの方で書きたいと思います。
そして学習後に、ゴリラ画像を入力しぴぽにあかどうか判定してもらう、という流れで今回は行きたいと思います。(ぴぽにあがゴリラならば、ゴリラを入力した時にぴぽにあと判定される)
また、今回学習に用いたぷよらーは
ぴぽにあ、Ash、キウ、ぽかりす
の顔写真です。
まずは画像集めです。これ一番辛い
過去旅行にいった時の画像からサルベージしてきたり、動画から切り抜いてきたり・・・。
集めて切り抜いて・・・・
・・・・・
頭おかしなるで
今回は精度もある程度出したいので、上記4人の顔写真を100枚程度、ぴぽにあだけ200枚集めました。
しかしまぁ今回集めたぷよらーは露出が多いので、まだ集めやすかったと思います。(顔は自動で切り抜いていたので、そこまで苦じゃありませんでした。)
そしてこれを学習していきます。
最後のtest accuracyが正答率です。92パーセントの確率で、ぴぽにあ、Ash、キウ、ぽかりすかどうかを判定できます。そこそこの精度が出ている気がします。(人物判定の相場がわからない)
———————————————————————————
ここからが本番です。
この学習済みモデルを用いて、ぴぽにあが本当にゴリラかどうか判定して行きます。
それでまたゴリラの画像を集めるわけです・・・・
APIの使い方がいまいちよくわからなかったので、手動で集めました。
「このゴリラ・・・・さっき保存した気がする・・・・いや・・・・してない??」
みたいな謎の苦しみを味わいました。
しかも人間用の顔検出にかけると
このように鼻だけが切り抜かれ、結局手動でやる羽目に・・・。
このゴリラたちをぴぽにあかどうか判定していきます。
———————————————————————————
その結果・・・
集めたゴリラのうち
75%
が、ぴぽにあであると判定されました。
う〜〜ん、どうなんでしょうこれでは微妙な気がします。
しかしゴリラも色々いるわけで、全てがぴぽにあゴリラであるとは考えられません
そこで「どの程度ぴぽにあなのか」つまり、「ぴぽにあ度」を比較していきます。
今回は
「ぴぽにあと判定された時のぴぽにあである確率の平均」
をぴぽにあ度としました。
まずはぴぽにあ自身のぴぽにあ度を見ましょう。
[ぴぽにあ、Ash、キウ、ぽかりす]
の順番で入力画像が誰なのかの確率が表示されています。
最終的にはぴぽにあ度は一番下の0.997となりました。(理想的なモデルでは1になるべき)
次にゴリラは
0.959となりました。
まとめると
・ぴぽにあのぴぽにあ度は0.997
・ゴリラのぴぽにあ度は0.959
誤差の評価は非常に面倒難しいのでやっていませんが、得られた結論としては
「ぴぽにあはほぼゴリラ」
です。
ゴリラの画像を200枚くらい集めて同じ計算をすればどんどん1に漸近していくと期待していますが、集めるのが大変なので絶対やりません。誰かゴリラの画像集めて僕に送ってください
———————————————————————————
いかがだったでしょうか?僕は結果にあまり満足していないので、また別のアプローチを考えます。
今回の大きな問題点として「そもそも4人だけの世界で判断している」ので、「4人以外」のラベルを用意し、大量の画像を学習させる必要があります。(ガチのDeep-Learningを用いた高級なアプローチもあるはずです。)
また、おそらくぴぽにあ度は本来ゴリラ全域で平均を取らなければならないとか・・・最初のモデルの精度自体が実は低いとか・・・。
しかしその辺は技術も知識も足りないので、次回かなぁ・・・。
———————————————————————————
オマケ
全ての画像の中で(ぴぽにあの画像も含む)ぴぽにあよりぴぽにあと判断されたゴリラ
Ashと判定されたゴリラ
ぽかりすと判定されたゴリラ
96パーセントの確率でぴぽにあであると判定された車
キウ君と判定されたゴリラは集めた範囲ではいませんでした・・・。
キウ君は全然ゴリラではないらしい。