AIに肉を焼かせる(実装)

問題設定

  • 画面固定
  • ゲームから得られる情報は画面の画像入力のみ
  • 焼き始めた瞬間からスタート
  • 焼けた瞬間にボタンを押す

アルゴリズム

ResNetを使って画像入力→Fを押すかどうかの予測(2値分類)を訓練し、
本番では数フレームごとに画面スクショからボタンを押すもしくは何も押さないを選択する。

訓練データ

焼き始める→コゲて終わるまでの過程を数フレーム間隔でスクショでとっておき、後からラベル付をして訓練データとして用いることにした。
ラベル付とは、Fボタンを押すべきかを示す0,1の2値をスクショに対応させることである。

1:まずは愚直に

訓練データ:

今ボタンを押せばこんがり肉ができるというタイミングのスクショに1とラベル付をして、それ以外のスクショには0とラベル付けした上ですべてのスクショを訓練データとして用いた。

結果:

ボタンを全く押さないまま終わる

考察:

ボタンを押さない→常に0と予測していればいいとモデルが学習している

この原因としては

  • ラベル1データが少ない
  • ラベル0データの種類が多い(焼きはじめるまで、生肉、生焼け肉、コゲ肉)
  • バッチサイズが間違っている
  • (学習(epoch)回数が足りない。)
  • 画像の範囲を絞るべき
  • 背景が変わると正確に予測できない

2:ラベル比率を同じにする

訓練データ:

ラベル1とラベル0のスクショを同程度含んだ訓練データを用いた。

結果:
考察:

コメント

タイトルとURLをコピーしました