DRL算法
DQN
- Q-Learning:迭代
%2B%3D%7B%5Calpha%7D%2B%7B%5Cbig(%7Dr(s%2Ca%2Cs’)%2B%7B%5Cgamma%7DQ%5E%5Cpi(s’%2Ca’)-Q%5E%5Cpi(s%2Ca)%7B%5Cbig)%7D#card=math&code=Q%5E%5Cpi%28s%2Ca%29%2B%3D%7B%5Calpha%7D%2B%7B%5Cbig%28%7Dr%28s%2Ca%2Cs%27%29%2B%7B%5Cgamma%7DQ%5E%5Cpi%28s%27%2Ca%27%29-Q%5E%5Cpi%28s%2Ca%29%7B%5Cbig%29%7D),然后求
%3Dargmax_aQ%5E%5Cpi(s%2Ca)#card=math&code=%5Cpi%28s%29%3Dargmax_aQ%5E%5Cpi%28s%2Ca%29)。不同策略执行,即采样策略随优化更新。
- DQN:用Q-Network代替Q表。网络输入的是状态,输出的是Q值。
- 有了状态-动作对到Q值的映射,某个状态下做决策就选择Q值最大的Action,同时有
的概率随机得到Action
- 经验回放,先攒一堆样本,再从中随机采样一部分拿来更新网络。通过强化学习采集到的数据之间存在着关联性,利用这些数据进行顺序训练,神经网络当然不稳定,经验回放可以打破数据间的关联。
- 损失函数,两个状态Q值的均方误差
- discount_rate (
) 从0.99调到0.8之后训练效果明显提升?
DDPG
- Actor-Critic框架
- 经验回放+目标网络(共四个网络)
- 目标网络采用软更新参数
w%7Btar%7D#card=math&code=w%7Btar%7D%3D%7B%5Ctau%7Dw%2B%281-%5Ctau%29w_%7Btar%7D),更新系数
一般取比较小
- 对选择出来的action会增加一定的噪声N
- Critic损失函数为两个状态Q值的均方误差,Actor的损失函数为负的当前Q值均值
A3C
- 先给定目标函数
- 基于策略梯度,优化策略。离散行为用Softmax策略,离散行为的概率(与DQN不同之处在于,前者是确定性策略,即选择Q值大的Action,而此处可以得到随机策略)。连续行为用高斯策略。
