連続 離散に適した強化学習のフレームワーク - Shinichi0713/RL-study GitHub Wiki

目的

強化学習のフレームワークは制御対象によって、かなり学習効率の安定性が変わります。 連続か、離散かで適したアルゴリズムについて一覧化を掲載します。

連続

制御が連続(アクション空間が連続値)の場合、以下のような連続制御に適した強化学習法がよく使われます。

連続制御に適した強化学習アルゴリズム

アルゴリズム名 特徴・説明
DDPG (Deep Deterministic Policy Gradient) 連続アクション空間に対応したActor-Critic型の手法。オフポリシー。
TD3 (Twin Delayed Deep Deterministic Policy Gradient) DDPGの改良版。より安定で高精度。オフポリシー。
SAC (Soft Actor-Critic) エントロピー正則化を導入し、探索性と安定性が高い。近年人気。オフポリシー。
PPO (Proximal Policy Optimization) オンポリシー。連続・離散どちらも対応。安定しやすい。

どれを選べばいい?

  • SACTD3は、連続制御タスクでよく使われ、高性能・高安定性です。
  • 簡単に始めたい場合はPPOもおすすめです。

参考:実装例(SAC)

from stable_baselines3 import SAC
import gymnasium as gym

env = gym.make("LunarLanderContinuous-v2")
model = SAC("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=100_000)

離散

制御対象が離散アクション空間の場合(例:上下左右、A/B/Cのような選択肢)、適した強化学習アルゴリズム(フレームワーク)は以下の通りです。

離散制御に適した強化学習アルゴリズム

アルゴリズム名 特徴・説明
Q学習 (Q-learning) 代表的なテーブル型強化学習。状態・行動数が少ない場合に有効。
SARSA Q学習に似ているが、行動方策に従った更新。
DQN (Deep Q-Network) Q学習をディープラーニングで拡張。高次元状態空間にも対応。
Double DQN, Dueling DQN, Rainbow DQN DQNの発展形。安定性や性能が向上。
Policy Gradient (REINFORCEなど) 方策を直接パラメータ化して学習。
PPO (Proximal Policy Optimization) 離散・連続両対応だが、離散アクションでもよく使われる。安定して学習しやすい。
A2C/A3C (Advantage Actor Critic) 複数のエージェントで並列学習。

実装フレームワーク(ライブラリ)

  • Stable-Baselines3(Python, 公式サイト
    • DQN, PPO, A2Cなど主要なアルゴリズムを簡単に利用可能
  • RLlib (Ray)
    • スケーラブルで多機能な強化学習フレームワーク
  • Keras-RL
    • Kerasベース、DQNなどを手軽に実装可能
  • OpenAI Baselines
    • OpenAIによる標準実装集
  • Tensorforce, Coach, Dopamine など

例:Stable-Baselines3でDQN

from stable_baselines3 import DQN
import gymnasium as gym

env = gym.make("LunarLander-v3")  # 離散アクション環境
model = DQN("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=100_000)