RL算法介绍及比较

主要介绍的算法有:Q Learning、Sarsa、Sarsa(lamda)、TD、Policy Gradient、AC、A3C、DQN、DoubleDQN、DuelingDQN、DDPG、MCTS、UCT

(1)Q Learning:建立Q值表,根据当前state预测Q值,用查表的方式选择action。是value-based方法。

(2)Sarsa:与QL不同的是先根据当前state选action,再更新Q值表。是value-based方法。

(3)Sarsa(lamda):lamda==0,单步更新;lamda==1,回合更新;lamda属于[0,1],根据action距离目标的距离设置不同的权重来更新。

(4)TD:时间差分方法,方差小。是value-based方法。

(5)Policy Gradient:action可以是连续的,可能学习速度会很慢,根据当前state预测action。是policy-based方法。

(6)AC:是策略(policy-based)和值(value-based)方法的结合,根据reward值学习更新策略。

RL算法介绍及比较_第1张图片

(7)A3C:有效利用计算资源提升计算效率,并行计算后合并。每个小部分都是一个AC算法,且可以相互通信。

(8)DQN:是神经网络和强化学习的结合。对于Q值表巨大的情况,用神经网络预测Q值,从而选择action。

(9)DoubleDQN:解决DQN过拟合问题,估计值过大问题。有两个神经网络,一个Q估计神经网络用来预测Reward,一个用来预测action,跟预测的Q值相关。

(10)DuelingDQN:DQN网络改进成两个输出,一个输出每个state的价值,一个输出每个action的优势值。

(11)DDPG:在连续动作上更有效学习,是AC和DQN的结合。由两个神经网络组成,一个是基于策略梯度的神经网络(分为动作估计网络预测action执行和动作现实网咯更新价值网络系统),一个是基于价值函数的神经网络(分为状态估计网络(输入是动作现实网络来分析)和状态现实网络(action作为输入))

(12)MCTS:循环随机搜索可能的action,给每个action一个reward值,评估选择哪个action

(13)UCT:是MCTS和UCB的结合。不再单一的看MCTS搜索后reward值高的点,还要有一定的exploration。防止陷入局部最优值。

 

一些简单的小游戏(后续会更新):https://github.com/xiaoqian19940510/python-/tree/master/Reforcement

星际争霸(我在上面做的策略算法的改进,在投,后续会更新):https://github.com/xiaoqian19940510/sparcraft

你可能感兴趣的:(RL算法介绍及比较)