知識グラフ全体

迷路の最短ルートをQ学習で学ぶ

クリックで穴とゴールを配置し,エージェントが何百回も迷路を歩くうちに「どのマスが得か」を数値(Q値)として学んでいく様子を観察できるアプリの,しくみと数式の解説.

対象アプリ: 強化学習(最短ルート探索)


01 - 概要

このアプリで学べること

このアプリは,迷路の中を歩き回る1体のエージェントが,穴に落ちたりゴールに着いたりを繰り返す「試行錯誤」だけを頼りに,遠回りせずゴールへ着く道を自力で見つけ出す過程を可視化したものである.教科書的に式だけを追うのではなく,実際に数字(Q値)が盤面の上で動いていく様子を見ながら,次のことを体感できる.

  • 報酬という単純な数字だけから,「進むべき方向」という賢い振る舞いがどう生まれるか.
  • ゴールで得た価値が,1マスずつ後ろへ伝わっていく「バックアップ」の様子(右のQ値盤で,緑色がゴールから広がっていくのが見える).
  • 学習率 α や割引率 γ,報酬の大きさを変えると,学習の速さや最終的に選ばれる経路がどう変わるか.
  • 探索(ランダムな試し歩き)を一切行わない単純な貪欲方策でも学習が進む理由と,そのために生じる限界.

02 - モデル化

迷路を「状態・行動・報酬」に翻訳する

状態 盤面上の1マス.7行×5列=35個ある.エージェントは常にどこか1マスに「いる」.
行動 「左へ」「右へ」「下へ」の3つだけ.上へは戻れない(迷路は上から下へ一方向に進む構造になっている).
報酬 1歩進むたびに小さな数(既定 1),穴に落ちると大きな罰(既定 10 ),ゴールに着くと大きなご褒美(既定 +100)を受け取る.

盤面の一番端の列にいるときは「左」または「右」の一方が存在しない.そうした境界では,存在しない方向を最初から比較の対象から外す.次の図は,あるマス(状態)から見える3方向の候補を示したものである.

03 - 数式

Q値(状態の価値)の更新式

このアプリのQ値は,「行動ごとの価値」ではなく「そのマスに立つこと自体の価値」を表す1つの数値として,マスごとに1つだけ持たせている(迷路のように行動の結果が確定的に決まる問題では,この単純化でも十分に学習が進む).エージェントが実際にあるマス s' へ移動したとき,そのマスのQ値は次の式で更新される.

更新式(通常のマスへ移動したとき)

Q s 1 α Q s + α r + γ max Q s

s 今回実際に移動して入ったマス.この式はこのマスのQ値だけを書き換える.
α (学習率) 01 の数.新しい経験をどれだけ強く反映するか.大きいほど直近の経験に素早く上書きされる.
r (報酬) s に入った直後に得た報酬(通常は1,穴なら 10 ,ゴールなら+100など).
γ (割引率) 01 の数.まだ見ぬ「その先」の価値をどれだけ重視するか.1 に近いほど遠くのゴールも重視する.
max Q s s からさらに進める左・右・下のマスのうち,最もQ値が高いもの.「その先にどれだけ期待できるか」の見積もり.

穴に落ちた,またはゴールに着いた場合はそこでエピソードが終わり「その先」が存在しないため,max項をそのまま0 として扱う.

更新式(穴・ゴールなど終端に着いたとき)

Q s 1 α Q s + α r

この式は「今までの評価を 1α だけ残しつつ,新しく得た手がかり(今回の報酬+その先の期待値)を α だけ混ぜ込む」という,なめらかな上書き(移動平均)になっている.何百回も歩くうちに,ゴールに近いマスから順にQ値が実際の価値に近づいていく.

04 - 方策

どちらへ進むかを決めるルール

エージェントは,現在の状態から進める方向(左・右・下)のうち,Q値が最も高い方向を選んで進む(貪欲方策).同点の場合は 左 > 右 > 下 の優先順位で決める.

行動選択則

進む方向 = argmax{ Q (左), Q (右), Q (下) }

この方策には探索(exploration)がない.一般的なQ学習では,まれにわざとランダムな方向へ動く「ε-greedy」という仕組みを入れて,まだ知らない道を偶然にでも試せるようにする.このアプリにはその仕組みがなく,常にその時点で最もQ値が高い方向へ確定的に進む.

そのため,学習の初期にたまたま選ばれた道の評価がわずかにでも先に上がってしまうと,より短い別の道があってもそちらを二度と試さないまま学習が落ち着いてしまうことがある.実際に迷路を作って何度も学習をやり直し,必ずしも最短経路には収束しない場面を観察してみると,探索の大切さが実感できる.

05 - 観察

学習の様子から何を読み取るか

  • 価値の伝播: 最初はすべてのマスのQ値が0.ゴールに何度か到達すると,まずゴールの手前のマスのQ値が上がり,さらにその手前......と,まるで水が染み込むようにゴールから逆向きにプラスの値(Q値盤の緑)が広がっていく.
  • 危険の学習: 穴の周囲のマスは,繰り返し 10 の罰を受け取ることでQ値が徐々に負(Q値盤の赤)に沈んでいき,エージェントは自然とその列を避けるようになる.
  • 学習率 α の効果: 大きくすると数回の試行で評価が大きく動くが,値が安定せず振動しやすい.小さくすると変化はなめらかだが,収束に多くのステップを要する
  • 割引率 γ の効果: 1に近いほど「まだ遠いゴール」の価値もしっかり伝わるようになる.0 に近づけると目先の一歩の報酬しか重視しなくなり,ゴールの価値が手前まで伝わりにくくなる.
  • 報酬設計の効果: 1歩ごとの報酬(既定1)を0 にすると「急ぐ理由」がなくなり,遠回りする経路と最短経路のQ値の差が出にくくなる.穴の罰を弱くすると,危険な列を避けなくなることがある.
パラメータ 大きくすると 小さくすると
学習率 α 直近の経験に素早く適応するが,値が振動しやすい 変化がなめらかだが収束が遅い
割引率 γ 遠いゴールの価値も手前まで伝わりやすい 目先の報酬だけを重視し,遠い価値が伝わりにくい
1歩の報酬 (マイナスを強めると)遠回りを強く嫌うようになる 0に近づけると経路の長さに無頓着になる
穴の罰 危険な列を強く避けるようになる 穴のそばも平気で通るようになりうる

06 - 実験

やってみよう

  1. 穴を1つも置かずにゴールだけ設定し,「自動実行」で学習させる.Q値盤にゴールから手前へ緑が広がる様子を眺める.
  2. スタートとゴールの間に一列まるごと穴を並べ,迂回路を1つだけ残す.迂回路のQ値だけが正になっていくか確認する.
  3. 学習率 α 0.05 0.9 でそれぞれ100ステップ実行し,Q値の落ち着き方の違いを比べる.
  4. 割引率 γ0 に近い値にしてから学習し,ゴールの価値が手前のマスまで伝わりにくくなることを確認する.
  5. 「リセットして迷路を編集し直す」で同じ迷路のまま何度か学習をやり直し,毎回同じ経路に収束するかどうかを見る(探索がないことの影響を確認する).

07 - 用語

用語ミニ辞典

エージェント 迷路の中を動く主体.このアプリでは常に1体だけ存在する.
環境 エージェントを取り巻く世界.ここでは迷路の盤面と,そのルール(穴に落ちるとどうなるか等).
状態 環境のある一瞬の様子.ここでは「今どのマスにいるか」がそのまま状態になる.
行動 状態に対してエージェントが選べる操作.ここでは左・右・下の3択.
報酬 行動の直後に環境から与えられる数値の手がかり.良し悪しの唯一の情報源.
方策 状態から行動を選ぶルール.このアプリは常にQ値最大の方向を選ぶ「貪欲方策」.
価値関数 状態(や行動)の「割に合う度合い」を数値化したもの.このアプリのQ値がこれにあたる.
エピソード スタートから穴かゴールに着くまでの一続きの試行.1回で終わり,また最初から始まる.

 

この記事は 強化学習(最短ルート探索)アプリ の実装内容にもとづく解説であり,実際にアプリを操作しながら読むことを想定している.

ホーム>>カテゴリー別分類>>データ分析>>迷路の最短ルートをQ学習で学ぶ

最終更新日:2026年7月17日

[ページトップ]

金沢工業大学

利用規約,誤植や誤りなどがございましたら、こちらからご連絡ください。

google translate (English version)