はじめに
強化学習のパートで用語が多かったり、関係がわからないなどで混乱したので自分なりに整理をしてみました。
🎯 強化学習って何をしているの?
まず一番大事なところ。
👉 「どう行動すれば一番得か?」を学ぶのが強化学習
例えば:
- ゲーム → 勝つ行動を覚える
- ロボット → 転ばない動きを覚える
🏗 全体像
最初は全部バラバラに見えましたが、整理するとこうなります👇
① 問題の定義(世界)
↓
② 評価のルール
↓
③ 評価の結果
↓
④ 行動の決め方(アルゴリズム)
🧩 ① 問題の定義:マルコフ決定過程(MDP)
👉 強化学習の土台
- 状態(State)
- 行動(Action)
- 報酬(Reward)
- 状態遷移
💡ポイント
👉 「今の状態だけで次が決まる」
最初は難しく感じましたが、「ゲームのルールを決めているだけ」 と考えると理解しやすかったです。
💰 ② 評価のルール:割引率(γ)
👉 将来の報酬をどれくらい重視するか
- γ = 0 → 今だけ
- γ = 1 → 未来も重視
最初は「なんで必要?」と思いましたが、「未来の報酬をどう扱うか決めるため」 と理解しました。
📊 ③ 評価の結果:価値関数
ここは学習していて、とても重要なポイントだなと思いました。
- 状態価値関数(V) → 「この状態って良いの?」
- 行動価値関数(Q) → 「この行動って良いの?」
👉 MDPと割引率が決まって初めて定義できる
⚖️ ④ 探索 vs 活用問題
シンプルにまとめると、以下のようになります。
- 活用(Exploitation): すでに知っている「確実に良い結果が出る行動」だけを繰り返すこと。
- 探索(Exploration): もっと良い結果があるかもしれないと期待して「未知の新しい行動」を試すこと。
目先の利益を確実に取りに行くか、未来のより大きな利益のために冒険するかというジレンマですが、優れたAI(エージェント)を育てるには、「どちらか一方に偏るのではなく、両方のバランスをうまく取ることが不可欠」 という結論になります。
🎰 バンディットアルゴリズム(舞台設定)
👉 「探索 vs 活用」に集中するための、一番シンプルな練習問題
バンディット(Bandit)とは、カジノにある「スロットマシン(片腕の盗賊)」のことです。目の前に当たりの確率が違う複数のスロットマシンが並んでいると想像してください。
- 状態が1つだけとは?: 前回のMDP(マップの移動など)のように、「自分が行動した結果、別の場所に移動する(状況が変わる)」ことはありません。ただずっと目の前のスロットを引くだけです。
- なぜこのモデルを使うの?: 状態の変化という複雑なルールがないため、「今一番出ている台を打ち続けるか(活用)」、「他の台の様子も見てみるか(探索)」という 「探索 vs 活用問題」だけを純粋に考えるのにぴったりだからです。
では、このスロットマシンをどう攻略するか? その代表的な「作戦(方策)」が以下の2つです。
■ ε-greedy(イプシロン・グリーディ)方策
👉 「基本はいつものお気に入り、たまには適当に冒険する」作戦
一番シンプルで直感的なルールです。
- 活用: 基本的(たとえば90%の確率)には、今までで一番結果が良かった行動(一番当たるスロット、一番おいしい行きつけのレストラン)を選びます。
- 探索: 残りのごくわずかな確率(たとえば10%。この割合を「ε:イプシロン」と呼びます)で、完全にランダムで適当な行動を選びます。
- 特徴: 「たまにはサイコロを振って行く店を決めよう」というような、非常にシンプルで分かりやすいアプローチです。
■ UCB(Upper Confidence Bound)方策
👉 「まだよく知らないから、もしかしたら大化けするかも!」作戦
ε-greedyの「ランダムな探索」を、もう少し賢く論理的にしたルールです。
- 未知を重視: サイコロで適当に決めるのではなく、「まだあまり試していない行動」にボーナス点(期待値)を上乗せして評価します。
- どう動くか: 「あの台、まだ2回しか引いてないから、本当は設定6(一番当たる台)かもしれないぞ…?」というように、不確実さ(伸びしろ)を計算して探索を行います。
- 特徴: 「すでにハズレだと分かっている台」を無駄に何度も引くことを防げるため、無駄のない効率的な探索ができます。
💡 まとめ
バンディットという「一番シンプルなゲーム」を使って、「たまには適当に遊ぶ(ε-greedy)」か、「未知の可能性を計算して挑む(UCB)」かというアプローチを考えている、と捉えると理解しやすいと思います。
🤖 ⑤ 行動の決め方(アルゴリズム)
強化学習の核心部分である「エージェントがどうやって行動を決めるか(アルゴリズム)」について、親しみやすいイラストでまとめました。
ここまで学んできた「状態」「行動」「報酬」の仕組みを使って、実際にエージェントが賢くなっていくための具体的な「解き方」が、ここからのテーマです。大きく「価値ベース」と「方策ベース」という2つのアプローチがあります。
■ Q学習 (Q-Learning)(価値ベース)
👉 「行動の良さ(Q値)」をコツコツ更新する、一番の基本
- 考え方: ある状態で特定の行動をとった時の「将来得られる報酬の合計(期待値)」を「Q値(点数)」として定義します。この点数の表(Qテーブル)を更新していきます。
-
ポイント:
- 行動の結果、「良い結果(プラスの報酬)」 が得られたら、その行動のQ値を 「上げる」。
- 逆に 「悪い結果(マイナスの報酬や罠)」 だったら、Q値を 「下げる」。
- 特徴: 非常にシンプルで分かりやすい、強化学習の 「一番基本」 となる手法です。
■ 方策勾配法 (Policy Gradient)(方策ベース)
👉 点数ではなく、「行動そのもの」を選ぶ確率を直接学習する
- 考え方: 価値ベースのように行動の「点数」を計算するのではなく、「ある状態でどの行動をとるか」という 確率(方策:$\pi$) を直接モデル(ニューラルネットワークなど)で学習します。
- ポイント: 得られた報酬が高くなるような行動を、次から選ぶ確率を 「直接上げる」 ようにモデルを更新します。
- 特徴: 複雑な行動や、連続的な行動を扱うのに適しています。
REINFORCE
👉 方策勾配法の「基本形」。単純な更新ルール
- 考え方: 方策勾配法の中でも、最も歴史がありシンプルな手法です。
- ポイント: 一連の行動が終わって(エピソード完了)、得られた全報酬に基づいて、その時とった全ての方策を一気に更新します。単純ですが、学習が不安定になりやすいという課題もあります。
■ Actor-Critic (アクター・クリティック)
👉 「役割分担」で賢くなる。イメージしやすく人気の手法
- 考え方: 「価値ベース」と「方策ベース」のいいとこ取りをした手法です。2つの異なる役割を持つネットワークが登場します。
-
役割分担:
- Actor (アクター): 実際に 「行動を決める」 役割。方策ベースを使い、Criticの評価を参考に確率を更新します。
- Critic (クリティック): Actorの行動を 「評価する」 役割。価値ベース(例えばQ値やV値)を使い、実際の報酬と比較して評価値を更新します。
- 特徴: 役割を分けることで学習が安定しやすく、「個人的に一番イメージしやすかった」 という人も多い、非常に強力なアルゴリズムです。
🗺 強化学習の全体像:最終整理
これまで学んできた強化学習の全体像を、一つのストーリーとして整理しました。
-
【問題】出発点
そもそも強化学習の目的は、「どう行動すれば一番得か(報酬を最大化できるか)?」 をエージェントに自力で見つけさせることです。
↓ -
【定義】ゲームの盤面を作る
まず、その世界のルール(状態、行動、報酬など)を マルコフ決定過程(MDP) として数学的に定義します。
↓ -
【評価】未来の価値のルール
将来もらえる報酬を、今の価値としてどれくらい見積もるか、割引率(γ) で評価の基準を決めます。
↓ -
【価値】良し悪しの点数化
ルールと基準が決まって初めて、「この状態は良いか?(状態価値 V)」「この行動は良いか?(行動価値 Q)」という点数が計算できるようになります。
↓ -
【探索】未知への挑戦
実際に学習を進める際、既知の確実な報酬だけでなく、もっと良い方法を見つけるために、ε-greedyやUCBといった作戦で「探索と活用」のバランスを取ります。
↓ -
【学習】賢くなるための計算
そして最後に、Q学習(価値ベース)、方策勾配法(方策ベース)、Actor-Critic(ハイブリッド)といった具体的なアルゴリズムを使って、最も得をする行動パターン(最適方策)を更新・学習していきます。
おわりに
初めて聞く言葉が多くても、「構造で理解する」 ことでかなり整理できるなと思いました。
学習に利用している書籍






