🟨 はじめに

7並べAI版を作っていて、一度はうまく収束したのですが、パラメーター指示が分からずに崩壊しました。

原因は、強化学習の用語を僕がほとんど理解していなかったこと。
そこで、初心者向けの教材からやり直すことにしました。

もちろん、ChatGPTさんへの相談がマストです。

🟩 FrozenLakeでQ学習してみる

ChatGPTさんに紹介してもらったのが「FrozenLake(氷上の迷路)」。
ライブラリは gymnasium(旧gym) を使います。
氷の上を滑りながらゴールを目指す強化学習の定番課題です。

ただ今回は、滑らない設定にして「もはやFrozen関係なし」で挑戦(笑)

q_table = np.zeros((env.size, env.size, 4))
alpha = 0.1
gamma = 0.9
epsilon = 0.30 # 探索率(ここを調整しました)
episodes = 1500

探索率(ε)は、「どれくらい新しい行動を試すか」を決める値です。
これを調整するだけで、きれいに収束しました。




🧱 障害物を入れてみた

スタートからゴールまで何もないと面白くないので、障害物を追加。

obstacles = {(1, 1), (3, 1), (3, 3), (1, 3)}
env = GridWorld(size=5, obstacles=obstacles)

結果はこちら





(報酬グラフと経路の画像)

ChatGPTさんのおすすめだけあって、収束はとても速かったです!

🧭 まとめ

今回の学び:

FrozenLakeでQ学習の仕組みがわかった

探索率(ε)を調整すると収束しやすい

ChatGPTさんに聞くと最短ルートで学べる(笑)


次回は少し難しい「CartPole」でDQNに挑戦します。
お楽しみに!