前回の記事では、初めて作成したスリット判定AIを評価し、「AccuracyだけではAIの性能は判断できない」ということを学びました。
評価の仕方が少し分かってきたことで、次に考えたのはとてもシンプルなことでした。
「もっと精度を上げるにはどうすればいいんだろう。」
今回は、その答えを探すために取り組んだ「モデルB」の話です。
AIにもっと情報を渡せば、精度は上がる?
モデルAでは、選手ごとのscoreと平均STを使って学習を行いました。
結果はAccuracy 0.347。
決して高い数字ではありませんでしたが、初めてAIを動かせたこともあり、「ここから少しずつ改善していけばいい」と思っていました。
その頃、ChatGPTからこんな提案を受けました。
「特徴量を増やしてみましょう。」
この頃の私は、機械学習についてまだほとんど知識がありませんでした。
それでも、この提案にはあまり違和感がありませんでした。
競艇の予想をするとき、自分自身も選手の実力だけではなく、スタートタイミングや展示など、さまざまな情報を見ています。
だから、
「AIにも情報を増やせば、精度が上がるかもしれない。」
そう思ったのです。
この時の私は、「特徴量」は予想を正確にするための因子のようなものだと考えていました。
仕事で問題を解決するときも、結果に影響している原因を一つずつ考えながら進めることがあります。
その感覚と少し似ているのかな、と感じていました。
モデルBでは「差」をAIに教えてみることにした
モデルBでは、モデルAで使っていた特徴量に加えて、新しく「差分特徴量」を追加しました。
例えば、
- 隣り合う選手同士の平均STの差
- 隣り合う選手同士のscoreの差
- 内側3艇と外側3艇の平均STの差
といった、「選手同士の相対的な関係」を表す情報です。
「選手ごとの能力」だけではなく、「誰が誰より速そうか」という情報もAIが学習できれば、精度が上がるかもしれない。
そんな仮説でモデルBを作りました。
ただ、正直に言うと、自信満々だったわけではありません。
「良くなるかもしれない。」
「でも、どうなるかはやってみないと分からない。」
そんな半信半疑の気持ちで実験を進めていました。
結果は、Accuracy 0.319
モデルBの結果は、
Accuracy 0.319
モデルAの0.347を下回る結果になりました。
とはいえ、その数字を見ても、そこまで落ち込んだ記憶はありません。
「あ、悪くなったか。」
そのくらいの感覚でした。
仕事で何か改善を試したときも、思ったような結果にならないことはあります。
だからAccuracyが下がったことよりも、
「なぜこうなったんだろう。」
という方が気になりました。
特徴量は増えた。でも、情報は増えていなかった。
結果をChatGPTと振り返っているとき、印象に残った説明がありました。
追加した特徴量は確かに増えていました。
しかし、その多くは元々使っていたscoreや平均STから作られた「差分」でした。
つまり、
特徴量の数は増えたけれど、AIにとって本当に新しい情報はあまり増えていなかった可能性がある。
scoreから計算した「差」を追加したとしても、それは新しい情報ではなく、もともとのscoreを別の形で表現しただけかもしれません。
AIから見れば、情報が増えたというより、同じ情報が少し違う形で増えただけだった可能性があります。
この説明を聞いたとき、
「言われてみると、確かにそうかもしれない。」
と納得しました。
私は「特徴量を増やすこと」と「情報量を増やすこと」を同じように考えていました。
でも実際には、この二つは別の話だったのです。
この実験は失敗ではなかった
Accuracyだけを見れば、モデルBは成功とは言えません。
それでも、この実験は私にとって必要な経験だったと思っています。
初心者だった私は、頭の中で考えるだけでは何も分かりません。
実際にモデルを作り、結果を確認し、原因を考える。
その繰り返しの中で少しずつ機械学習の考え方を理解していきました。
また、この頃はPCでモデルを作って検証する作業にも少しずつ慣れてきました。
精度だけでは測れない成長も、このモデルBにはたくさん詰まっていたように思います。
まとめ
今回学んだことは、とてもシンプルでした。
「特徴量は多ければいいわけではない。」
AIに必要なのは、特徴量の数ではなく、「予測に役立つ新しい情報」です。
では、本当にAIに渡すべき情報とは何なのか。
その答えを探すため、私は教師データそのものを詳しく調べ始めました。
次回は、AIを改善するための第一歩として取り組んだ「EDA(データ分析)」について書いていこうと思います。
あわせて読みたい
▪️競艇AI開発日記 第9話|初めてのAI開発。最初に学んだのは「評価の仕方」でした
今回のモデルBは、第9話で作成・評価したモデルAを改善するために取り組んだものです。
まだ読んでいない方は、第9話から読むと今回の内容がより分かりやすくなります。
