ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

強化学習でマリオに挑戦 #3

スーパーマリオの1-1をクリアさせたかったのですが、自分の低スペックパソコンだと「episodes」を500以上に設定すると処理が途中で落ちてしまう。
チュートリアルをみると「episodes」を40000ぐらいにすればクリアできるかもよとあるけど。。。(*´з`)
いろいろ設定を変えたりしたけど。。。なかなかうまくいきません。
GPUほしいなぁ。。。

今日は試行錯誤したプレイをまとめてみました。
f:id:a1026302:20210111032405j:plain
プログラムは#2のときのものを流用してます。
a1026302.hatenablog.com

動きを追加

actionについて

gym-super-mario-bros/actions.py at master · Kautenja/gym-super-mario-bros · GitHub

前回
# Limit the action-space to
#   0. walk right
#   1. jump right
env = JoypadSpace(env, [["right"], ["right", "A"]])
今回
from gym_super_mario_bros.actions import SIMPLE_MOVEMENT
env = JoypadSpace(env, SIMPLE_MOVEMENT)

プレイ動画

これで、いったん後ろに行ったりすることを覚える。
youtu.be


パラメータ変更

downsampleで学習

gym-super-mario-bros · PyPI

前回
# Initialize Super Mario environment
env = gym_super_mario_bros.make("SuperMarioBros-1-1-v0")
今回
# Initialize Super Mario environment
env = gym_super_mario_bros.make("SuperMarioBros-1-1-v1")

Apply Wrappers to environment変更

Train a Mario-playing RL Agent — PyTorch Tutorials 1.7.1 documentation

前回
# Apply Wrappers to environment
env = SkipFrame(env, skip=4)
env = GrayScaleObservation(env)
env = ResizeObservation(env, shape=84)
env = FrameStack(env, num_stack=4)
今回
# Apply Wrappers to environment
env = SkipFrame(env, skip=12)
env = GrayScaleObservation(env)
env = ResizeObservation(env, shape=84)
env = FrameStack(env, num_stack=4)

プレイ動画

downsampleで背景が黒くなるし、フレームをスキップしているので、速く見える。。。
www.youtube.com

ステージ変更

気分転換にほかのステージで学習してみました。

1-2

youtu.be

2-1

youtu.be

3-1

youtu.be