強化学習(Reinforcement Learning)は、機械学習の一分野です。 エージェント(行動する主体)が環境と相互作用しながら、 試行錯誤を通じて最適な行動方針を学習する手法です。
このゲームでは、ネズミがエージェント、 15x15のグリッド迷路が環境、 チーズを獲得することが目標です。
強化学習の基本的な要素は以下の3つです:
エージェントの目標は、累積報酬を最大化する方策(行動の選び方)を学習することです。 正解を教えるのではなく、報酬というヒントだけを頼りに自ら最適解を見つけ出す点が、 教師あり学習との大きな違いです。
方策勾配法(Policy Gradient)は、ニューラルネットワークを使って 行動の確率分布を直接学習する手法です。
ネットワークは各状態に対して「上に行く確率は30%、右に行く確率は50%...」のように 行動確率を出力します。この確率分布が方策(Policy)と呼ばれます。
学習の基本的なアイデアは次の通りです:
これはREINFORCEアルゴリズムとも呼ばれ、 方策の勾配を以下の式で推定します:
直感的には、「良い報酬が得られたエピソードで取った行動は、 もっと高い確率で選ばれるようにパラメータを更新する」ということです。
このゲームで使用するニューラルネットワークは、 3層構造の全結合ネットワークです。
入力の符号化(One-Hot):
15×15=225次元のベクトルを用意し、ネズミの位置とチーズの位置に対応するセルを
1 にセットします。それ以外はすべて 0 です。
活性化関数:
f(x) = max(0, x)。負の値を0にカットするシンプルな非線形関数報酬の設計は強化学習で最も重要な要素のひとつです。 適切な報酬がなければ、エージェントは何を学べばよいか分かりません。
| 条件 | 報酬 | 説明 |
|---|---|---|
| チーズ獲得 | +1 | ネズミがチーズのマスに到達した |
| チーズに接近 | +1 | マンハッタン距離が前ステップより縮んだ |
| チーズから離反 | -1 | マンハッタン距離が前ステップより増えた |
距離ベースの報酬シェーピング:
チーズ獲得の報酬(+1)だけでは、ネズミが偶然チーズにたどり着くまで学習信号がなく、 学習が極めて遅くなります。そこで報酬シェーピングを導入し、 チーズに近づくだけでも正の報酬を与えます。
この仕組みにより、ネズミは最初からチーズの方向に向かう傾向を素早く学習できます。 ただし、壁の存在により最短距離が直線距離とは限らないため、 迷路の構造を理解する学習も必要になります。
学習は以下のステップを繰り返すことで進行します:
割引累積報酬:
各時刻 t での報酬は、将来の報酬も含めた割引累積報酬として計算されます。 割引率 γ(ガンマ)により、遠い未来の報酬ほど小さく評価されます。
割引報酬の正規化:
計算された割引報酬は平均0、分散1に正規化されます。 これにより学習が安定し、報酬のスケールに依存しない勾配更新が可能になります。
RMSProp オプティマイザ:
重みの更新にはRMSPropを使用します。 これは勾配の二乗の移動平均を追跡し、パラメータごとに学習率を適応的に調整する手法です。
学習の挙動はハイパーパラメータの設定に大きく依存します。 各パラメータの役割と調整のコツを解説します。
強化学習における最も基本的かつ重要な問題が、 探索と活用のジレンマ(Exploration vs Exploitation Tradeoff)です。
このゲームではε-greedy法を使ってこのバランスを取ります。 確率 ε でランダムな行動(探索)、確率 1-ε でネットワークが推薦する行動(活用)を選びます。
なぜ探索が必要なのか:
学習初期のネットワークは未熟で、出力する確率分布は最適とは限りません。 もし常に現在の方策に従うだけなら、たまたま最初に発見した経路しか強化されず、 局所最適解に陥ってしまいます。
適度な探索を入れることで、ネットワークが未知の状態空間を経験し、 より良い方策を発見する機会が生まれます。ただし、探索率が高すぎると せっかく学習した知識がランダム行動で掻き乱されてしまいます。
ゲーム画面でεの値を変えながら、 学習の進み方がどう変わるか観察してみてください。