強化学習(ML:Q学習)を可視化する迷路デモ

プログラミング

はじめに

機械学習と一口に言っても、そのアプローチはいくつかの分野に分かれています。
代表的なものは次の3つです。

  • 教師あり学習:正解ラベル付きデータから予測モデルを学ぶ
  • 教師なし学習:データの構造や特徴そのものを見つけ出す
  • 強化学習:行動とその結果として得られる報酬をもとに判断を改善していく

本記事で扱うのは、このうちの強化学習です。
強化学習は「正解」を直接教えられなくても、環境の中で行動し、その結果を評価しながら、より良い行動選択を身につけていく点が特徴です。

今回は、強化学習の代表的なアルゴリズムである Q-learning を、迷路のような GridWorld 環境で学習させ、その様子をブラウザ上でリアルタイムに観察できるデモを作成しました。
エージェントが試行錯誤しながら、だんだんゴールへの近道を見つけていく過程を「動き」として確認できる構成になっています。


本論

どのようなルールで学習させているか

学習環境は 10×10 の GridWorld(盤面)です。
盤面には、壁・スタート・ゴール・罠が固定で配置されており、エージェントは各ステップで「上・下・左・右」のいずれかを選択します。

行動の結果には、次のような報酬を与えています。

  • 通常移動:-0.01
  • 壁に衝突:追加で -0.05
  • ゴール到達:+1.0(エピソード終了)
  • 罠に到達:-1.0(エピソード終了)

このように、少しずつマイナスの報酬を与えることで、エージェントは「無駄に動かず、より短い経路を選ぶ」ように誘導されます。
1エピソードは最大 200 ステップで、ゴール・罠・タイムアウトのいずれかで終了します。

学習アルゴリズムは 表形式の Q-learning です。
状態はエージェントの座標 (x, y)、行動は4方向。
各状態ごとに「この方向へ進むと、将来どれくらい得をしそうか」という期待値(Q値)を保持します。

行動選択には ε-greedy 法を用い、学習初期はほぼランダムに行動し、エピソードが進むにつれて学んだ行動を優先するようになります。


デモ動画について

この学習過程は、WebSocket を使ってバックエンドからリアルタイムに配信しています。
ブラウザ上では、エージェントの位置、エピソード数、探索率(ε)、累積報酬などを確認でき、学習が進むにつれて動きが洗練されていく様子を視覚的に観察できます。

実際の挙動は、以下のデモ動画で確認できます。

  • 🎥 YouTube デモ動画

文章で読むよりも、「最初は迷走し、徐々に最短経路へ収束していく」変化が直感的に分かるはずです。


コードについて

ソースコードはすべて GitHub に公開しています。

構成はシンプルで、
GridWorld(環境)、Q-learning エージェント(学習ロジック)、FastAPI + WebSocket(制御と可視化)が明確に分離されています。
深層学習や外部ライブラリには依存しておらず、強化学習の基本的な考え方を追いやすい構成になっています。


おわりに

このデモが示しているのは、強化学習が「正解データなし」で学べるという点です。
エージェントは、行動と報酬の積み重ねだけで、壁や罠を避け、より効率的にゴールへ向かう行動を獲得していきます。

学習されている中身は、迷路の各マスにおける4方向の期待値そのものです。
そのため、「学習とは何か」「何が更新されているのか」を具体的に追える点が、このデモの大きな価値だと考えています。

強化学習の入り口として、ぜひコードと動画の両方を眺めてみてください。


コメント

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