🟨 はじめに
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に挑戦します。
お楽しみに!


