Q学習
強化学習とは、報酬を最大化するように行動する方法をエージェントに学習させる手法である。これは犬に「お手」や「お座り」を教える過程とよく似ている。犬は正しい行動をしたときにエサ(報酬)を得ることで、その行動を強化する。同様に強化学習では、エージェントが環境と相互作用しながら、どの行動がより大きな報酬につながるかを学習する。
また、強化学習はゲームAIやロボット制御などさまざまな領域で利用されているほか、ChatGPTの学習過程(RLHF)にも用いられる実用性の高い手法である。
強化学習の基本サイクル
強化学習では、エージェント(学習主体)が環境から状態を観測し、行動を選択する。環境は行動に応じて報酬を返し、次の状態へと遷移する。このサイクルを繰り返し、最終的に「未来の報酬の合計(収益)」が最大となる行動方針、方策を学習する。
- 時刻Tの状態 S_T を観測する
- 行動 A_T を選択する
- 報酬 R_T を受け取り、次状態 S_{T+1} へ遷移する
この積み重ねによって、「どの行動が良いか」を学び続けることができる。
例:迷路でお菓子を探す猫
強化学習を直感的に理解するために、「迷路の中でお菓子を探す猫」を例にするとわかりやすい。
• 猫=エージェントが迷路を歩き
• 曲がる/進む=行動を選び
• お菓子を見つけたら報酬がもらえる(Reward)
猫は最初は迷うが、何度も試すうちに「この道を行くとお菓子が見つかりやすい」ということを学習し、最適なルート(方策)を獲得する。まさに強化学習の仕組みそのものである。
状態・行動・報酬
強化学習の問題は以下の3要素で表される。
● 状態(State)
その時点での環境の情報。
例:猫の位置。
● 行動(Action)
状態に基づいてエージェントが選択する動き。
例:上・下・左・右へ進む。
● 報酬(Reward)
行動に対する環境からの評価。
例:お菓子を見つければ+1、壁にぶつかれば0 など。
エージェントは報酬を最大化するように行動を学習していく。
方策(Policy)と価値関数(Value Function)
● 方策(Policy)
状態に応じてどの行動を選ぶかの戦略のこと。
● 価値関数(Value Function)
将来的に得られる報酬の期待値。
• 状態価値関数 V(s)
状態sにいるだけでどれほど良い未来が期待できるか


• 行動価値関数 Q(s, a)
状態sで行動aを選択したとき、どれほど良い未来が期待できるか


特にQ関数は、強化学習アルゴリズムの中心となる。
マルコフ決定過程(MDP)
強化学習はMDPとして定式化される。
• 状態集合 S
• 行動集合 A
• 遷移確率 P(s'|s,a)
• 報酬関数 R(s,a)
• 割引率 γ
マルコフ性(次状態は現在の状態と行動のみに依存)の仮定により、問題が数学的に扱いやすくなる。
Q-learning:代表的な強化学習アルゴリズム
Q-learningは、強化学習の中でも最も有名で、モデルフリー・オフポリシーであることが特徴である。環境の遷移確率や報酬分布を知らなくても学習できる。
モデルフリー
「実際に行動して得られた経験だけで学習する」手法。モデルを知らなくてもOK.
オフポリシー
行動を生成する方策(振る舞い方策)と、学習したい方策(ターゲット方策)が異なる学習
エージェントは、状態と行動の組み合わせに対する価値=関数Q(s,a)を更新しながら最適な方策を獲得する。
Q関数の定義
ある状態で行動aを選んだときに期待される累積報酬:
Q(s,a) = \text{期待される将来の報酬の合計}
これが高いほど「良い行動」と判断される。
Q-learningの更新式(ベルマン最適方程式に基づく)
それぞれの意味は以下の通りである。
- α:学習率
新しい情報をどの程度 Q 値に反映させるかを決めるパラメータ - γ:割引率
将来の報酬をどれだけ重視するかを表す。値が 0 に近いほど目先の報酬重視、1 に近いほど長期的な報酬重視。 - 𝑟𝑡:即時報酬
時刻tに行動𝑎𝑡 を実行した後に得られる報酬。 -

次の状態s𝑡+1において,行動𝑎′ の中で最も高いQ値。
「次のステップで最善を尽くしたと仮定した場合の見込み値」。
この式を使い、試行錯誤しながらQ値を更新していく。
α(学習率)と γ(割引率)の役割
- 学習率 α
大きい → 新しい情報を強く反映
小さい → 過去のQ値を重視
• 割引率 γ
大きい(1に近い) → 将来の報酬を重視
小さい → 今すぐの報酬を重視
行動選択:探索と活用(ε-greedy)
Q-learningでは、常に最適行動だけをすると学習が偏るため、たまにランダムな行動もとる(適度に冒険しながら賢く)。
• 最適行動を選ぶ → 活用(Exploitation)
• ランダム行動を選ぶ → 探索(Exploration)
多くの実装では、最初は探索多めにして:
- 初期:ε = 1.0(ほぼランダム行動)
- 学習が進むにつれて徐々に減らす
- 最終的に:ε = 0.01 など(ほぼ最適行動)
こうすることで、初期に探索し、後半は安定して最適化する学習になる。
εの割合で探索し、1−εで活用する。これをε-greedy法という。
Q-learningの活用例
● ゲームAI
• 迷路ゲーム
• テトリス
• あるいはAtariゲームをクリアしたDQNの前段階となる。
● ロボット制御
• 障害物回避
• 自律移動
• 腕ロボットの軌道学習など。
● 需要予測・価格設定
• 在庫管理での補充判断
• ダイナミックプライシング
(「今この価格にしておけば将来得られる利益の期待値が高いか?」をQ学習で評価)
● 経路探索
• 交通シミュレーション
• ドローンの最適飛行ルート学習
試行錯誤して改善するという特徴が実世界の課題と相性が良く、適用範囲が非常に広い。
Q学習のメリット・デメリット
メリット
● シンプルで理解しやすい
アルゴリズムの構造が明快であり、初学者でも直感的に理解しやすい手法である。実装も容易である。
● 汎用性が高い
探索方法に依存せず、環境が離散的であればどのようなタスクにも適用可能である。
● オフポリシー学習が可能
エージェントは探索時に必ずしも最適行動をとる必要がなく、別の方策で行動しても、理論的には最適な行動価値関数を学習できるという強みがある。
デメリット
● 状態空間が広い場合に学習が困難
状態空間の次元が大きくなるほど、Qテーブルが巨大化し、更新や探索に膨大な時間がかかる。高次元環境ではほぼ利用不可能となる。
● 過学習のリスク
経験が偏ると、一部の状態だけに過度に最適化された行動価値を学習してしまい、汎用性が低下する場合がある。
● 連続的な状態や行動を扱えない
基本的なQ学習は離散値を前提とするため、ロボットアームの角度や速度のような連続量のタスクには不向きである。関数近似なしでは現実的な利用が困難である。
この課題を解決するために、生まれたのが深層強化学習であり、その代表的手法がDQNである。
DQNの登場:深層学習でQ値を近似する
DQNは「Qテーブルをつくる」という発想を捨て、ニューラルネットワークを使ってQ関数そのものを近似する 手法である。これにより、従来のQ学習では扱えなかった連続値・高次元環境が学習可能になった。
DQNが導入した三つの安定化技術
Q-network(メインネットワーク)
状態stを入力とし、行動aごとのQ(sₜ,a)を出力するネットワークである。
Experience Replay(経験再生)
過去の経験をメモリに蓄積し、ランダムにサンプリングして学習する。
時系列データの相関を断ち切り、学習を安定化させる。
Target Network(ターゲットネットワーク)
学習の急激な発散を抑えるために、誤差計算専用のネットワークを用意する。一定ステップごとにメインネットワークの重みをコピーし、ゆっくり変化する“教師”として振る舞う。
DQNの学習手順
DQNは以下の流れで学習を行う。
1. Q-network に状態を入力して Q(sₜ,aₜ) を出力
2. ε-greedy 法で行動を選択
3. 得られた経験をメモリへ保存
4. メモリからミニバッチをランダム抽出(Experience Replay)
5. Target Network を用いてTD誤差を計算
6. 誤差に基づき Q-network を更新
7. 一定ステップごとに Target Network を同期
この繰り返しにより、ニューラルネットワークは「状態 → 最適行動」のマッピングを獲得していく。
例えで理解するDQN:迷路でお菓子を探す猫
Q学習とDQNの違いを直感的に理解するために「迷路でお菓子を探す猫」の例が使える。
● Q学習の猫
猫は迷路を歩きながら、「この場所で上に進んだらどうだった」「右に進んだらどうだった」をノート(Qテーブル)に書き込んでいく。
しかし迷路が複雑になると、
• ノートが膨大になる
• ちょっと環境が変わるだけでノートを書き直し
• 学習が遅すぎる
という問題が起きる。
● DQNの猫
猫はノートの代わりに 脳内のニューラルネットワーク を使って迷路全体の特徴を学習する。
さらに、
• 経験を蓄えて後から復習(Experience Replay)
• 賢い先生役(Target Network)がゆっくり正解を教える
といった仕組みにより、複雑な迷路でも早く安定して学習できる。
参考
