基本概念
马尔可夫决策过程(MDP)
-
智能体(agent):强化学习的主体,由谁做动作或决策,谁就是智能体
-
环境(environment):与智能体交互的对象,可以抽象的理解为交互过程中的规则或机理
-
状态(state):每个时刻,环境都有一个状态,即对当前时刻环境的概括。状态是做决策的依据
-
状态空间(state space):所有可能存在状态的集合
-
动作(action):智能体基于当前状态所做出的决策
-
动作空间(action space):所有可能动作的集合
-
奖励(reward):智能体执行一个动作之后,环境返还给智能体的一个数值,由我们自己来定义
-
状态转移(state transition):智能体从当前 ttt 时刻的状态 sss 转移 到下一个时刻状态 s′s's′ 的过程
-
状态转移概率函数(state transition probability function):通常来说,状态转移是随机的,随机性来自于环境,我们用状态转移函数来描述状态转移
Pt(s′∣s,a)=P(St+1′=s′∣St=s,At=a) P_t(s'|s,a)=P(S'_{t+1}=s'|S_t=s,A_t=a) Pt(s′∣s,a)=P(St+1′=s′∣St=s,At=a)
策略
- 策略(policy):根据观测到的状态(state),如何做出决策,即如何从动作空间中选取一个动作,通常分为随机策略和确定策略:
- 随机策略:把状态记作 sss ,动作记作 aaa ,随即策略函数 π(a∣s)=P(A=a∣S=s)\pi(a|s) =P(A=a|S=s)π(a∣s)=P(A=a∣S=s) ,策略函数的输入是状态s和动作a,输出是一个0到1之间的概率值,可以告诉我状态空间中每个动作的概率值
- 确定策略:它把状态s作为输出,直接输出动作a=μ(s)a = \mu(s)a=μ(s), 而不是输出概率值。对于给定的状态s,做出的决策a是确定的,没有随机性
- 智能体与环境交互:智能体观测到环境的状态 sss ,做出动作 aaa ,动作会改变环境的状态,环境反馈给智能体奖励 rrr 以及新的状态 s′s's′
- 回合(episodes):智能体从游戏开始到通关或结束的过程
回报与折扣回报
-
回报(return):当前时刻开始到本回合(episodes)结束的所有奖励的总和,也叫累计奖励。把 ttt 时刻的回报记作随机变量 UtU_tUt。如果一回合游戏结束,已经观测到所有奖励,那么就把回报记作 utu_tut
Ut=Rt+Rt+1+Rt+2+Rt+3+⋯+Rn U_t = R_t+R_{t+1}+R_{t+2}+R_{t+3}+\cdots+R_{n} Ut=Rt+Rt+1+Rt+2+Rt+3+⋯+Rn -
折扣回报(discounted return):对未来的奖励做折扣
Ut=Rt+γRt+1+γ2Rt+2+⋯ U_t = R_t+\gamma R_{t+1}+\gamma ^{2}R_{t+2} + \cdots Ut=Rt+γRt+1+γ2Rt+2+⋯
- 回报中的随机性:Ut的随机性来自于SAt,St+1,At+1,⋯Sn,AnSA_t,S_{t+1},A_{t+1}, \cdots S_n, A_nSAt,St+1,At+1,⋯Sn,An
价值函数
-
动作价值函数(action-value function):假设我们已经观测到状态sts_tst,做完决策选中动作ata_tat,那么UtU_tUt的随机性来自于t+1t+1t+1时刻起的所有状态,我们对UtU_tUt关于St+1,At+1,⋯Sn,AnS_{t+1},A_{t+1}, \cdots S_n, A_nSt+1,At+1,⋯Sn,An求条件期望,得到
Qπ(st,at)=ESt+1,At+1,⋯ ,Sn,An[Ut§t=st,At=at] Q_{\pi}(s_t,a_t)=E_{S_{t+1},A_{t+1},\cdots ,S_n,A_n}[U_t\S_t=s_t,A_t=a_t] Qπ(st,at)=ESt+1,At+1,⋯,Sn,An[Ut§t=st,At=at]
Qπ(st,at)Q_{\pi}(s_t,a_t)Qπ(st,at)依赖于st和ats_t和a_tst和at,而不依赖于t+1时刻之后的状态和动作;同时,由于动作 At+1,At+2,⋯A_{t+1},A_{t+2},\cdotsAt+1,At+2,⋯都依赖于策略函数π\piπ,因此不同的π\piπ求出的期望也不同,所以Qπ(st,at)Q_{\pi}(s_t,a_t)Qπ(st,at)依赖于π\piπ综上所述: Qπ(st,at)Q_{\pi}(s_t,a_t)Qπ(st,at)依赖于st,at,πs_t,a_t,\pist,at,π
-
最优动作价值函数(optimal action-value function):消除策略π\piπ的影响,只评价当时状态和动作的好坏
Q⋆(st,at)=maxπ Qπ(st,at) Q_{\star}(s_t,a_t)=\mathop{max} \limits_{\pi}\:Q_{\pi}(s_t,a_t) Q⋆(st,at)=πmaxQπ(st,at)
状态价值函数
- 状态价值函数(state-value function):只根据当前的状态判断棋局的好坏
Vπ(st)=EAt,St+1,At+1,⋯ ,Sn,An[Ut∣St=st] V_{\pi}(s_t)=E_{A_t,S_{t+1},A_{t+1},\cdots,S_n,A_n}[U_t|S_t=s_t] Vπ(st)=EAt,St+1,At+1,⋯,Sn,An[Ut∣St=st]
也可以如下定义:
Vπ(st)=EAt∼π(⋅∣st)[Qπ(st,At)]=∑a∈AQπ(a∣st)⋅Qπ(st,a) V_{\pi}(s_t)=E_{A_t \sim \pi(\centerdot | s_t)}[Q_{\pi}(s_t,A_t)]=\sum _{a \in \mathcal{A}} Q_{\pi}(a|s_t) \centerdot Q_{\pi}(s_t,a) Vπ(st)=EAt∼π(⋅∣st)[Qπ(st,At)]=a∈A∑Qπ(a∣st)⋅Qπ(st,a)