1.はじめに
今回は、前回の記事で切り抜いたSKJvillageの顔についてをAIに学習させ、SKJvillageのスクリーンショット内の顔を認識後、どのメンバーであるかの判定を行いました!
先日SKJファンの皆さんに、自分の研究分野の用語の認知度についてのアンケートをTwitterで実施したところ、ほとんどの人が知らない感じだったので、本記事ではファン向けに極力専門的な内容を省こうと思います。ですが、「自分の研究内容が広く知れ渡って欲しい」っていう願いもあるので、多少は含めます。(いきなり矛盾してて草わ~ら)
2.SKJvillageとは?
SKJvillageは、3人組のゲーム実況系YouTubeチャンネル。高校時代の親友で「早稲田・慶應・上智」大学にそれぞれ進学し、大手企業を退職後、2018年に3人でYoutube活動開始。
(https://www.youtube.com/@SKJVillage/about より参考)
3.今回の内容をもう少し詳しく
今回は上記のように、SKJvillageのスクリーンショット内の顔を認識後、どのメンバーであるかの判定するAIの学習を行いました。
前回の内容
今回の学習では、前回作成したSKJメンバーの顔を切り抜いた画像を用います。以下のようにメンバーの顔を切り抜きました。切り抜いたものを自力でメンバーごとにカテゴリ分けして今回の学習に使用しました。
↓前回の記事
今回の学習方法について
ここで、今回のAIの学習について触れていきます。やることは以下の2つです。
①スクリーンショットから顔を認識
過去の記事と同様に、既存の分類器を用いてSKJvillageのスクリーンショットから顔を認識します。
↓顔の認識に関する記事
②認識した顔に対してメンバーを判定、そのためのAI学習(今回のメイン!)
認識した顔がSKJvillageのメンバーの誰なのかを判定します。選択肢はサイカツ、sa2、シンカの3人です。この判定を行うために、AIに事前にサイカツ、sa2、シンカの顔について学習させる必要があります。イメージ図を下の図に乗せています。AIに各メンバーの顔を1枚ずつ学習させます。このときにAIが学習して得た知識を使って実際に判定を行います。
補足
ここで、学習についてをもう少し伝えるついでに、下のグラフについての説明を行います。
「なんやねん!このグラフ!!」
ってなりますよね(笑)ちゃんと説明します。
グラフの横軸はエポック数と呼ばれる、学習の回数です。アンケートで出てきたワードですね。今回扱っている機械学習の方法では、1回だけでなく複数回同じデータを学習させます。学生のときも1回だけの勉強じゃなくて何回も復習とかするでしょ?(ちなみに自分はしてませんよ^^)
グラフの縦軸は精度(正答率)です。どのメンバーなのかをどのくらい正解できているかを示す値です。
2本の折れ線グラフがありますが、青が教師データでの精度、オレンジは検証データでの精度を示しています。ここでまた謎のワードが出てきましたね。教師データは、AIの学習に使うデータです。教科書みたいなものです。検証データは、学習した後に実際に性能を評価するために使うデータです。小テストみたいなものです。今回のAIの学習では、「教科書で勉強→小テスト」の1セットを何回も繰り返しているというようなことを行っています。
ここまでの内容をまとめると、AIに対して「勉強・小テスト」を行うことで徐々にAIを成長させよう、ということを行っています。
4.結果
ここでは、メンバーの顔の精度(正答率)と実際に判定を行った結果を示します。
メンバーの顔の学習の様子
結果を見ると、青線の教師データ(教科書)での精度(正答率)は1.0に近いことが分かります。教科書のほぼすべての内容を学べていることが分かります。これに対してオレンジの検証データ(小テスト)での精度(正答率)は0.9以上であることが分かります。90点以上取れてることになります。優秀やな(笑)
実際のメンバーの判定
1つ目の例です。サイカツの顔には赤枠の下にsaikatsuとかかれ、sa2の顔には赤枠の下にsa2と書かれていますが、シンカの顔にはsa2と書かれています。
もう1つの例では、すべての赤枠の下にsa2と書かれています。メンバーの区別がついていないようです。
学習の精度は良かったのに、学習を成果を実際のメンバー判定に活かせてない感じです。。。
5.まとめ
今回は、メンバーの判定まで試みましたが、性能が全然でした。。。今後もいろいろ調査して取り組んでいきたいです!
本記事は未経験者向けの記事であるため、内容をかなり省略しています。この記事を機に、AIや機械学習に興味を持っていただければと嬉しいです!最後までご閲覧いただきありがとうございました!
参考