Re Reference AI

技術

強化学習とは

Reinforcement Learning / RL

エージェントが環境との試行錯誤を通じて、報酬を最大化する行動を学習する機械学習の枠組み

強化学習機械学習

ひとことで言うと

正解を教えてもらう代わりに、行動の結果として返ってくる「ご褒美(報酬)」を手がかりに、試行錯誤でうまいやり方を身につけていく学習方法。

概要

強化学習は、エージェントが環境の中で行動を選び、その結果として得られる報酬をもとに、長期的な報酬の合計を最大化する方策(行動の選び方)を学習する機械学習の枠組み。 エージェントは現在の状態を観測して行動を選択し、環境から報酬と次の状態を受け取る、というループを繰り返しながら学習を進める。 教師あり学習のように「この入力にはこの出力が正解」というラベルは与えられず、行動の良し悪しは報酬という間接的な信号としてのみ伝えられる。 そのため、まだ試していない行動を試す「探索」と、これまでに良いと分かっている行動を選ぶ「活用」のバランスを取ることが中心的な課題になる。 Q学習のような価値ベースの手法、方策そのものを直接最適化する方策勾配法、両者を組み合わせたActor-Critic法などの系統があり、ニューラルネットワークと組み合わせたものは深層強化学習と呼ばれる。 ゲームAIやロボット制御に加えて、RLHFDPOのようにLLMを人間の好みに合わせるアライメント手法の基盤としても使われている。

背景

囲碁やロボット制御のような逐次的な意思決定の問題では、個々の行動に対する正解ラベルを人間が用意するのは難しく、最終的な結果(勝敗やタスクの成否)しか分からないことが多い。 強化学習は、こうした問題でも報酬という弱い信号から試行錯誤を通じて行動を改善できる枠組みとして発展してきた。

歴史

強化学習という考え方は、心理学における条件づけの研究と、1950年代にBellmanが定式化した動的計画法・ベルマン方程式に起源を持つ。 1988年: SuttonがTD学習(Temporal Difference学習)を提案。 1989年: WatkinsがQ学習を提案。 1998年: SuttonとBartoが教科書『Reinforcement Learning: An Introduction』を出版し、分野の標準的な定式化が普及。 2015年: DeepMindがDQNでAtariゲームを人間並みにプレイできることを示し、深層強化学習が注目を集める。 2016年: 深層強化学習と木探索を組み合わせたAlphaGoが囲碁のトップ棋士に勝利。 2022年以降: RLHFがChatGPTをはじめとするLLMのアライメントに使われ、LLM開発の重要な構成要素になった。

アーキテクチャ

エージェントと環境の相互作用は、状態空間、行動空間、報酬関数、そして状態と行動から次の状態への遷移を定めるルールからなるマルコフ決定過程(MDP)の枠組みで定式化されることが多い。 方策(ポリシー)はある状態でどの行動を選ぶかを決める関数であり、価値関数はある状態(または状態行動対)から得られる将来の期待累積報酬を表す。 価値ベースの手法は価値関数を学習して間接的に方策を導き、方策勾配法は方策のパラメータを直接報酬が大きくなる方向へ更新し、Actor-Criticはこの両方を組み合わせる。

ワークフロー

エージェントが環境の現在の状態を観測する。 方策に従って(探索を交えつつ)行動を選択し、実行する。 環境から報酬と次の状態を受け取る。 この経験をもとに、価値関数や方策のパラメータを更新する。 このループを繰り返し、累積報酬を最大化する方策へ近づけていく。

コード例

Gymnasiumでの強化学習環境の基本的な実行ループ

import gymnasium as gym

env = gym.make("CartPole-v1")
observation, info = env.reset()

for _ in range(1000):
    action = env.action_space.sample()  # ランダムな行動選択(実際は方策に従う)
    observation, reward, terminated, truncated, info = env.step(action)
    if terminated or truncated:
        observation, info = env.reset()
env.close()

利点

  • 正解ラベルを用意できない逐次的な意思決定の問題でも、報酬さえ設計できれば学習できる
  • 人間が思いつかない戦略を試行錯誤の中から発見できることがある(AlphaGoの新手など)
  • シミュレーション環境があれば、大量の試行を自動で生成して学習できる

欠点

  • サンプル効率が悪く大量の試行錯誤を必要とする。そのため実環境(実機ロボットなど)での学習はコストが高い
  • 報酬設計が難しく、意図しない抜け道で報酬を稼ぐ挙動(報酬ハッキング)を招くおそれもある
  • 学習が不安定になりやすく、ハイパーパラメータや乱数シードの影響を受けやすい

比較

  • 機械学習強化学習は機械学習の一分野で、正解ラベルから学ぶ教師あり学習と異なり、報酬信号から行動を学習する
  • Q学習Q学習は強化学習の代表的なアルゴリズムの1つで、状態と行動の価値(Q値)を学習する価値ベースの手法
  • RLHFRLHFは人間のフィードバックから学習した報酬モデルを使い、強化学習でLLMを人間の好みに合わせる応用例
  • モンテカルロ木探索モンテカルロ木探索はシミュレーションによる先読みを行う探索手法であり、AlphaGoでは強化学習と組み合わせて使われた

関連用語

機械学習Q学習RLHFDPOモンテカルロ木探索深層学習アライメント

よくある質問

教師あり学習との違いは?

教師あり学習は入力と正解ラベルのペアから学ぶが、強化学習には正解ラベルがなく、行動の結果として得られる報酬だけを手がかりに学ぶ。また、行動が将来の状態に影響するため、時間的に遅れて届く報酬をどの行動に帰属させるかという問題(信用割当問題)を扱う必要がある。

LLMと強化学習の関係は?

RLHFでは、人間の好みを学習した報酬モデルのスコアを報酬として、強化学習(PPOなど)でLLMの出力を人間の好みに合わせて調整する。また、数学やコーディングのように正解を機械的に検証できるタスクの結果を報酬として、推論モデルの学習に強化学習を使う手法も広がっている。

深層強化学習とは?

価値関数や方策をニューラルネットワークで近似する強化学習のこと。状態を表で管理する古典的な手法では扱えない、画像のような高次元の入力を扱えるようになる。DQNやAlphaGoが代表例。

参考文献

関連Zenn記事