簡介
**SAC(Soft Actor-Critic)**是一種用於連續動作空間的最先進的離策略演算法 - 將最大熵目標與 Actor-Critic 結合。 SAC 自動調節溫度,穩定且樣品效率高。
1. 最大熵 RL
$$\pi^* = \arg\max_\pi \sum_t \mathbb{E}_{\pi}[r(s_t, a_t) + \alpha \mathcal{H}(\pi(\cdot|s_t))]$$
關鍵見解:平衡獎勵最大化和熵(探索)→ 穩健的政策。
2.SAC 元件
class SACActorContinuous(nn.Module):
"""Gaussian policy for continuous actions"""
def __init__(self, state_dim, action_dim, hidden=256):
super().__init__()
self.net = nn.Sequential(
nn.Linear(state_dim, hidden), nn.ReLU(),
nn.Linear(hidden, hidden), nn.ReLU(),
)
self.mean = nn.Linear(hidden, action_dim)
self.log_std = nn.Linear(hidden, action_dim)
def forward(self, state):
feat = self.net(state)
mean = self.mean(feat)
log_std = self.log_std(feat).clamp(-20, 2)
return mean, log_std
def sample(self, state):
mean, log_std = self.forward(state)
std = log_std.exp()
dist = torch.distributions.Normal(mean, std)
x = dist.rsample() # Reparameterization trick
action = torch.tanh(x)
log_prob = dist.log_prob(x) - torch.log(1 - action.pow(2) + 1e-6)
return action, log_prob.sum(-1)
雙 Q 網絡
class TwinQNetwork(nn.Module):
def __init__(self, state_dim, action_dim, hidden=256):
super().__init__()
self.q1 = nn.Sequential(
nn.Linear(state_dim + action_dim, hidden), nn.ReLU(),
nn.Linear(hidden, hidden), nn.ReLU(),
nn.Linear(hidden, 1),
)
self.q2 = nn.Sequential(
nn.Linear(state_dim + action_dim, hidden), nn.ReLU(),
nn.Linear(hidden, hidden), nn.ReLU(),
nn.Linear(hidden, 1),
)
def forward(self, state, action):
x = torch.cat([state, action], dim=-1)
return self.q1(x), self.q2(x)
3. TD3 — 雙重延遲 DDPG
DDPG 的 3 個技巧:
- 雙批評者:取最小值→減少高估
- 延遲策略更新:更新參與者少於批評者
- 目標策略平滑:為目標操作添加噪音
4.演算法選擇指南
| 演算法 | 行動空間 | 開/關政策 | 樣品效率 | 最適合 |
|---|---|---|---|---|
| DQN | 離散 | 政策外 | 好 | 遊戲 |
| 聚苯醚 | 兩者 | 在保政策 | 低 | 通用 |
| 策略諮詢委員會 | 連續 | 政策外 | 高 | 機器人 |
| TD3 | 連續 | 政策外 | 高 | 機器人 |
| DDPG | 連續 | 政策外 | 好 | 簡單連續 |
5. 基於模型的強化學習概述
學習環境模型 → 計劃,而非無模型:
| 方法 | 學習模型? | 計劃? | 範例 |
|---|---|---|---|
| 無模型 | 沒有 | 沒有 | DQN、PPO |
| 基於模型 | 是的 | 是的 | 夢想家,MuZero |
| 混合動力 | 是的 | 是的 | 世界模特兒 |
總結
| 概念 | 描述 |
|---|---|
| 策略諮詢委員會 | 最大熵 + 雙重批評者 + 自動溫度 |
| TD3 | 雙批評家+延遲+平滑 |
| 熵 | 鼓勵勘探,政策穩健 |
| 政策外 | 取樣效率高,重播緩衝 |