how to

11-trpo算法

Nov 11, 2024
notesjulyfun技术学习hrl
2 Minutes
291 Words
  • 对 AC 做了非常多优化
  • 【策略目标】
    • 修改成新策略 𝜋𝜃 下的形式
    • 并做近似
    • 近似过程要求 𝜃𝜃 不能差太多,故 KL 散度约束到 𝛿 之内.
  • 【近似求解】
    • 对目标函数 1 阶近似,带 𝑔,KL 约束 2 阶近似,带海森矩阵 𝐻.
    • 可直接用 KKT 导出问题的解 𝜃𝑘+1.
  • 【共轭梯度】
    • 直接假设每一步 KL 散度都更新到 𝛿,可简化 KKT 解
    • 直接用共轭梯度法解算 𝐻𝑥=𝑔
  • 【线性搜索】
    • 由于多处近似,解可能不满足 KL 散度约束
    • (0,1) 之间的超参数 𝛼,求最小非负整数 𝑖 使得 𝛼𝑖 倍变化量满足 KL 散度限制.
  • 【广义优势估计】
    • 上面还没估计优势函数 [?]
    • 设时序差分误差 𝛿𝑡=𝑟𝑡+𝛾𝑉(𝑠𝑡+1)𝑉(𝑠𝑡)
    • 𝐴(𝑘)𝑡=𝑘1𝑙=0𝛾𝑙𝛿𝑡+𝑙
    • 𝐴 进行指数加权平均.

代码实践

  • 如果动作时连续的,策略网络可输出动作高斯分布的均值和标准差,形同:
1
mu, std = self.actor(states)
2
old_action_dists = torch.distributions.Normal(mu.detach(),
3
std.detach())
4
old_log_probs = old_action_dists.log_prob(actions)
5
critic_loss = torch.mean(
6
F.mse_loss(self.critic(states), td_target.detach()))
7
self.critic_optimizer.zero_grad()
8
critic_loss.backward()
Article title:11-trpo算法
Article author:Julyfun
Release time:Nov 11, 2024
Copyright 2025
Sitemap