之前介绍过Sarsa算法,其是一种TD算法,目的是为了学习动作价值函数
。Q-learning也是一种TD算法,目的是为了学习最优动作价值函数Q*,其实训练DQN的算法就是Q-learning。
Sarsa算法和Q-learning算法的区别:


两者的TD target略有不同。
Q-learning的TD target:

求最大化:

求完最大化后,可以消掉
,得到下面的等式:

直接求期望比较困难,所以对期望进行蒙特卡洛近似,得到TD target:
![]()
Q-learning算法的表格形式:

第二部的max可以查表得知,查到
那一行,找到最大值。
Q-learning算法的神经网络形式:

DQN是对最优价值函数的近似,用
表示DQN,DQN可以控制agent,我们当然要选用分数最高的动作,即最大化后得到的动作at。让agent执行动作at,我们可以更新参数w,让DQN对价值的估计更准确。
算法步骤如下:

总结:











