Deep Q-Learning深度增强学习算法
DQN算法
由于某些环境中状态过多,通过传统Q-learning的方法,维护一张规模巨大的Q表显然是不现实的。DQN利用神经网络代替了Q表,只需要通过对实际训练的采样数据进行训练,就可以近似模拟Q表的数值
- 初始化记忆库D
- 初始化Q估计神经网络 => Q_eval
- 初始化Q现实神经网络 => Q_real
- For episode = 1 in M
- 初始化序列s_t = {x1, x2, … ,xn}
For step = 1 in T
- 根据贪心算法选择action => a_t
- agent执行a_t,得到环境的reward => r_t和下一步的states => s_t_next
- 在D中存储与更新样本:{s_t, a_t, r_t, s_t_next}
- 在D中随机选择一批样本:{s_j, a_j, r_j, s_j_next}
- 在Q_real中,根据Q-learning算法计算状态s_j_next的真实Q值 => Q_real(s_j)
- 在Q_eval中,计算状态s_j的Q值 => Q_eval(s_j),与Q_real(s_j) 做差,利用梯度下降算法,优化参数
- 每隔C步更新神经网络,即将Q_eval的参数赋值给Q_real
以下为英文DQN算法