Upgrade to Pro — share decks privately, control downloads, hide ads and more …

深層強化学習を用いたテトリスBotの作成の試行

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for thirofoo thirofoo
May 05, 2024
810

 深層強化学習を用いたテトリスBotの作成の試行

Avatar for thirofoo

thirofoo

May 05, 2024
Tweet

Transcript

  1. 1.1 テトリス実装 + 右の動画のように可視化される + 標準出力を使ったCLI環境で動く実装 + ゲームスコア内訳 + ミノを配置できれば1点

    + 1ライン消すと100点 + 2ライン消すと300点 + 3ライン消すと500点 + 4ライン消すと800点 + ゲームオーバーは-1点 + src/tetris_gym内に実装されている
  2. 3.1.1 実験1 (初期モデル) 𝜖𝑠𝑡𝑎𝑟𝑡 = 1.0, 𝑑𝑖𝑠𝑐𝑜𝑢𝑡 = 0.9 𝜖𝑚𝑖𝑛

    = 0.00001, 𝜖𝑑𝑒𝑐𝑎𝑦 = 0.995, 𝑙𝑟 = 0.001 NN: ・入力: 行動後の状態 ・出力: 場面の評価値 ・Dense(128)→Dense(64) ・活性化関数: ReLU, 出力層はリニア ・全結合 ・loss関数:HuberLoss
  3. 3.2.1 実験2 (特徴量と隠れ層を増やす) 𝜖𝑠𝑡𝑎𝑟𝑡 = 1.0, 𝑑𝑖𝑠𝑐𝑜𝑢𝑡 = 1.00 𝜖𝑚𝑖𝑛

    = 0.001, 𝜖𝑑𝑒𝑐𝑎𝑦 = 0.995, 𝑙𝑟 = 0.001 NN: ・loss関数: MSE ・中間層(64)→ 中間層(64)→ 中間層(32) ・活性化関数: ReLU, 出力層はリニア ・全結合
  4. 3.2.1 実験2 (特徴量と隠れ層を増やす) 特徴量 ( Dellacherie's Algorithm *[1] ) 1.

    Hole_count 2. Latest_clear_mino_count 3. Row_transitions 4. Column_transitions 5. Bumpiness 6. Eroded_piece_cells 7. Cumulative_well 8. Aggregate_height 9. Abobe_block_suqared_sum
  5. 3.2.1 実験2 (特徴量と隠れ層を増やす) 特徴量 ( Dellacherie's Algorithm *[1] ) 1.

    上部にブロックがある空マスの総和 2. 直近でラインを消したミノの設置時の高さ 3. 行方向の空マス→ブロック、ブロック→空マスの遷移の数の総和 4. 列方向の空マス→ブロック、ブロック→空マスの遷移の数の総和 5. 隣り合う列の高さの差の総和 6. 直近で消したライン * ライン消しに貢献したミノのブロック数 7. 左右がブロックの空マスが k 連続の時の k の二乗和 8. 各列の高さの総和 9. 各空マスの上部にあるブロックの数の二乗和
  6. 3.2.2 結果 + (学習時間: 8時間, 平均: 1000Line, Episode: 5000) +

    5000 episodes程度までのLossとRewards + 学習を高速化するために累積報酬が1000を超えたら学習打ち 切りにしている + 安定して1000に到達するまで1500 episodes + その後1000を超えないように積んでいき、最後一気にライン を消すことで + 900 -> 4lines(+800) -> 1700 + のような動きを学習している + ロスは増大しているが、学習はうまくいっているので謎
  7. 3.3.2 結果/考察 + 最初と比べると、下段~中段の穴の数が減り、うまく敷き 詰められているように見える + どちらか一方に寄って、片側に1-2マスほど残している + -> 得点が高いIミノやOミノなどを使った一気に2~4ライ

    ンを消す操作を期待してこのような行動をしている + -> 人間にも見られるプレイ方法を模倣できている + 上段だけでラインを消去することがほぼなくなっている + 止めなければ、半永久的にプレイし続けられる