🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
本系列的完结篇,介绍了连续控制情境下的强化学习方法,确定策略 DPG 和随机策略 AC 算法。
15. 连续控制
15.1 动作空间
-
离散动作空间
- Action space A=left,right,upAction space A=left,right,upAction \ space \ \mathcal{A}={left,right,up}
- 比如超级玛丽游戏中的向上\向左\向右;
- 此前博文讨论的,都是离散的控制,动作有限。
-
连续动作空间
- Action space A=[0°,360°]×[0°,180°]Action space A=[0°,360°]×[0°,180°]Action \ space \ \mathcal{A}=[0°,360°]×[0°,180°]
- 比如机械臂,如果具有两个运动关节:
- 价值网络 DQN 可以解决离散动作控制的问题,因为 DQN 输出的是有限维度的向量。
- 策略网络也同样。
- 所以此前的方法不能简单照搬到连续控制。要想应用到连续控制上,可以采用 连续空间离散化。
连续空间离散化:
- 比如机械臂进行二维网格划分。那么有多少个格子,就有多少种动作。
- 缺点:假设d为连续动作空间的自由度,动作离散化后的数量会随着d的增加呈现指数增长,从而造成维度灾难。动作太多会学不好DQN 或 策略网络。
- 所以 离散化 适合自由度较小的问题。
另外还有两个方法:
- 使用确定策略网络(Deterministic policy networkDeterministic policy networkDeterministic \ policy \ network)
- 使用随机策略(Stochastic policy networkStochastic policy networkStochastic \ policy \ network)。
15.2 DPG | 确定策略
回到顶部#### a. 基础了解
Deterministic Policy Gradient.确定策略梯度,可以用于解决连续控制问题。后续引入深度神经网络,就是著名的 DDPG。
DPG 是 Actor-Critic 方法的一种。结构图如下:
-
策略网络 actor
- 策略网络是确定性的函数 a=π(s;θ)a=π(s;θ)a=\pi(s;\theta)
- 输入是状态 s ;输出是一个具体的动作 s;即给定状态输出具体的动作,无随机性。
- 输出的动作是可以指导运动的实数或向量。
-
价值网络 critic
- 记作 q(s,a;w)q(s,a;w)q(s,a;w)
- 输入是状态 s 和 动作 a,基于状态 s,评价动作 a 的好坏程度,输出一个分数 q;
-
训练两个神经网络,让两个网络越来越好。