-
整理自网络资源
-
DRL: Deep Reinforcement Learning 深度增强学习
-
DQN: Deep Q-Network
什么是DRL
- action
- observation:每个时间片,agent都是更剧当前的观察来确定下一步的动作
- state:observation的集合就作为agent所在的状态state
- reward: agent执行了action,与环境交互后,环境会变化,变化的好坏就用reward表示
- policy:state到action的过程
- 任务:找到一个最优的策略policy从而使得reward最好
- 两类policy:
- 找(a=pi(s)) :一一对应表示, Deterministic policy(确定性策略),输入一个状态,输出一个确定的action
- 找(pi(a|s)):概率表示,Stochastic policy(随机性策略),输入一个状态,输出每个action的概率分布
MDP Markov Decision Process
- MDP基于一种假设:未来取决于当前
- 下一个状态仅取决于当前的状态和动作
- (P(s_{t+1}|s_t)=P(s_{t+1}|s_t,s_{t-1},...,s_1,s_0))
价值函数
return 回报:
- (G_t=R_{t+1}+lambda R_{t+2}+...=sum_{k=0}^{infty}lambda^{k}R_{t+k+1})
- (G_t)又称 cumulative discounted reward (累积折扣奖励)
- 其中R为Reward
- (lambda)为discount factor(折扣因子),一般小于1
- 越大:看得越远,注重长期奖励
- 越小:越短视,注重眼前奖励
- 实际上除非整个过程结束,否则显然我们无法获取所有的reward来计算出每个状态的Return
价值函数:
- v(s): 表示一个状态未来的潜在价值
- 定义上看,value function就是Return的期望
- (v(s)=E[G_t|S_t=s])
- (v(s)=E[R_{t+1}+lambda v(S_{S+1})|S_t=s])
动作价值函数 Action-Value Function
- (Q^pi(s,a))
- 如果知道了每个动作的价值,那么就可以选择一个价值最大的动作去执行了。
- 这里使用的reward和之前的reward不一样
- 之前state对应的reward是多种动作对应的reward的期望值
- 这里的是执行完这一个动作a得到的reward
- 注意看两个函数的参数数量都不一样。
- (Q^pi(s,a)=E[r_{t+1}+lambda r_{t+2}+lambda^2 r_{t+3}...|s,a]=E[r+lambda Q^pi (s',a')|s,a])
最优价值函数
- 最优价值函数和一般的动作价值函数的关系:
- (Q^*(s,a)=max_pi Q^pi(s,a))
- (Q^*(s,a)=E_{s'}[r+lambda max_{a'}Q^*(s',a')|s,a])
- 最优的Q值必然为最大值
Q-learning
- 更新Q值得方法:
- $Q(S_t,A_t) <- Q(S_t,A_t)+alpha (R_{t+1} + lambda max_aQ(S_{t+1},a)-Q(S_t,A_t)) $
DQN
价值函数近似
- 用一个函数来表示Q(s,a)
- (Q(s,a)=f(s,a,w))
- w: 表示函数的参数
- f是近似的,并不知道Q值得实际分布情况
DQN
- 用一个深度神经网络来表示这个f
- 神经网络的训练是一个最优化问题,最优化一个损失函数loss function
- 目标是让损失函数最小化。为此,我们需要有样本,巨量的有标签数据,然后通过反向传播使用梯度下降的方法来更新神经网络的参数。
- 将目标Q值作为标签,我们的目标:使Q值趋近于目标Q值
- 损失函数:
- (L(w)=E[(r+lambda max_{a'}Q(s',a',w)-Q(s,a,w))^2])
- (r+lambda max_{a'}Q(s',a',w))为target