DRL算法

DQN

  • Q-Learning:迭代DRL算法 - 图1%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),然后求DRL算法 - 图2%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,同时有DRL算法 - 图3的概率随机得到Action
  • 经验回放,先攒一堆样本,再从中随机采样一部分拿来更新网络。通过强化学习采集到的数据之间存在着关联性,利用这些数据进行顺序训练,神经网络当然不稳定,经验回放可以打破数据间的关联。
  • 损失函数,两个状态Q值的均方误差
  • discount_rate (DRL算法 - 图4) 从0.99调到0.8之后训练效果明显提升?

DDPG

  • Actor-Critic框架
  • 经验回放+目标网络(共四个网络)
  • 目标网络采用软更新参数 DRL算法 - 图5w%7Btar%7D#card=math&code=w%7Btar%7D%3D%7B%5Ctau%7Dw%2B%281-%5Ctau%29w_%7Btar%7D),更新系数DRL算法 - 图6一般取比较小
  • 对选择出来的action会增加一定的噪声N
  • Critic损失函数为两个状态Q值的均方误差,Actor的损失函数为负的当前Q值均值

A3C

  • 先给定目标函数
  • 基于策略梯度,优化策略。离散行为用Softmax策略,离散行为的概率(与DQN不同之处在于,前者是确定性策略,即选择Q值大的Action,而此处可以得到随机策略)。连续行为用高斯策略。