强化学习个人总结(1)

强化学习个人总结

DQN

  • 只训练Q网络,也就是直接得到每个动作的分数,以此来评估动作的好坏。
  • 使用TD error更新Q网络,也就是动作-价值网络,Q值=未来的奖励和
  • TD error使用两个Q网络的差,一个当前网络,一个目标网络(当前网络在过去的一个副本,定期更新)

DDQN

  • 计算TD error的时候,不完全使用目标网络,计算Q值有两个步骤,第一个是通过策略函数选择让Q值最大的动作,第二是带入动作,得到最大的Q值
  • DDQN在第一步上进行了更改,即使用当前网络的策略函数选择动作,而不是使用目标网络的策略函数

Dueling DQN

  • 更改了Q网络的输出,原本只输出Q值,现在输出平均Q值V和相对Q值A,两者相加V+A得到完整的Q值

AC

  • 训练两个网络,策略网络Π,价值网络Q(V),策略网络输出每个动作的概率,价值网络给每个动作打分
  • 价值网络的输出分数*每个动作的概率,求和,该值作为loss,最大化该loss,即可得到最优的策略网络
  • 价值网络(通过未来奖励和计算),将TD error作为loss,最小化该loss,即可得到一个准确分数的价值网络

A2C

  • 更改了策略网络的loss计算方式。优势函数*每个动作的概率,求和,得到loss,最大化loss
  • 优势函数(类似TD error)=当前动作的分数-平均动作分数(baseline),前者等于当前奖励R+下一个时间后的未来预测Q1,后者等于当前时间后的未来预测Q2

A3C

  • 为了加速RL的计算,采用一个主网络,下面包含很多A2C的子网络。两个操作,push和pull。
  • pull:将主网络参数赋值给子网络
    push:利用梯度更新,对主网络的参数进行更新

PS:个人学习总结,如有错误,还望不吝指正

你可能感兴趣的:(深度学习,人工智能)