强化学习笔记(六)

Deep Q Network

Deep Q Network 意义

  • Q 表格的存储和查询消耗大量空间时间, 社交网络有效提升了效率

Deep Q Network 两大利器

  • Experience replay: 每次 DQN 更新的时候, 我们都可以随机抽取一些之前的经历进行学习. 随机抽取这种做法打乱了经历之间的相关性, 也使得神经网络更新更有效率
  • Fixed Q-targets: 在 DQN 中使用到两个结构相同但参数不同的神经网络, 预测 Q 估计 的神经网络具备最新的参数, 而预测 Q 现实 的神经网络使用的参数则是很久以前的

Deep Q Network 算法

DQN

初始化记忆回放库 D, 容量为 N
初始化行为价值网络 Q,随机权重参数 θ (用于计算 Q 估计)
初始化目标行为价值网络 Q^,随机权重参数 θ_ = θ (用于计算 Q 现实)
回合循环 1 - M 执行以下操作:
	初始化序列 s1 = {x1}, 以及处理序列 Φ = Φ(s1)
	单步循环 1 - T 执行以下操作:
		按照概率 ε 随机选取行为 at
		其他情况下选择 Q 最大值的行为: at = argmaxaQ(Φ(st), a; θ)
		执行 at 并观察奖励 rt 和下一个状态 xt+1
		更新下一状态 st+1 = st, at, xt+1 以及 处理序列 Φt+1 = Φ(st+1)
		将 (Φt, at, rt, Φt+1) 存入回放库 D
		从 D 中随机取 minibatch 个样本 (Φj, aj, rj, Φj+1) 
		设置估计值 yj: 若 j + 1 步结束, yj = rj; 其他情况下: yj = rj + γ * maxa'Q^(Φj+1, a'; θ_)
		计算单步梯度(均方差) (yj - Q(Φj, aj; θ))^2
		每过 C 步复制 Q 使得 Q^ = Q
	结束单步循环
结束回合循环
  • DQN 可以理解为 Q learning 主框架上加了些装饰, 这些装饰包括:
    • 记忆库 (用于重复学习)
    • 神经网络计算 Q 值
    • 暂时冻结 q_target 参数 (切断相关性)

猜你喜欢

转载自blog.csdn.net/weixin_40042498/article/details/113994266