背景:强化学习玩游戏
模拟器(model 或 emulator)以动作(action)为输入,输出一张图像和奖励。
单张图像无法完全理解agent的当前状态,所以得结合动作与状态序列的信息。
agent的目标是,以一定的方式选择动作,与模拟器进行相交,来最大化将来的奖励。
Bellman equation:
Q∗(s,a)=Es′∈ϵ[r+γmaxQ∗(s′,a′)|s,a]
强化学习的一般方法是利用Bellman equation作为迭代更新:
Qi+1(s,a)=Es′∈ϵ[r+γmaxa′Q∗(s′,a′)|s,a]
DQN
将深度学习应用到强化有几个挑战。
- 大多深度学习的应用都需要大量的标注数据,而强化学习需要从reward信号学习,且reward信号经常比较稀疏(sparse)、有噪声(noisy)、有延迟(delayed)。从执行动作(action)到产生reward的延迟,可能有上千步长。
- 数据样本的独立性。深度学习假设数据样本是独立的,而在强化学习中状态(state)之间是高度相关的。
- 数据分布的不变性。深度学习假设数据分布是不变的,而强化学习可以学习新的行为(policy),进而改变数据的分布。
针对第二和第三点的应对策略:
经验回放机制(experience replay mechanism):通过多次随机取样之前的状态转移,来平滑训练分布的变化。
Q函数用网络表示时的损失函数
Li(θi)=Es,a∈ρ(⋅)[(yi−Q(s,a;θi))2]
其中目标值
yi=Es′∈ϵ[r+γmaxa′Q(s′,a′;θi−1)|s,a]
值得注意的是,在深度学习中 目标值在训练开始时是固定不变的,而有强化学习中却与网络的参数有关。
损失函数的导数为:
∇θiLi(θi)=Es,a∈ρ(⋅);s′∈ϵ[(r+γ