連続 離散に適した強化学習のフレームワーク - 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) | オンポリシー。連続・離散どちらも対応。安定しやすい。 |
どれを選べばいい?
- SACやTD3は、連続制御タスクでよく使われ、高性能・高安定性です。
- 簡単に始めたい場合は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)