强化学习1(基本概念)

强化学习中的基本概念

状态(state)和动作(action)

一个状态可以想象成游戏中的一帧画面,整个游戏就是由多帧画面组成的。值的注意的是, t t t时刻的画面可能有多种,它与智能体选择的动作有关,因此,状态具有随机性。我们将 t t t时刻的状态记作 S t St St。动作是智能体与环境交互时所发出的,好的动作能够使智能体适应环境,从而获取较高的奖励,而坏的动作可能使得智能体在游戏局中失败
基本概念

例如在上面的图片中,这张图片就是当前状态,马里奥做成的动作就是action。所以有三种动作:向上、向左和向右。

策略(policy π \pi π)

我们知道当前马里奥的状态如何控制它做出动作?策略 π \pi π就是根据观测到的状态(state)做出决策,控制智能体(agent)做出动作(action)。策略一般定义为一个概率密度函数
π ( a ∣ s ) = P ( A = a ∣ S = s ) \pi(a|s)=\mathbb{P}(A=a|S=s) π(as)=P(A=aS=s)

例如在上面的图片中,我们输入当前状态 s s s,可以得出向上、向右和向左的概率。

  • π ( l e f t ∣ s ) = 0.2 \pi(left|s)=0.2 π(lefts)=0.2
  • π ( r i g h t ∣ s ) = 0.1 \pi(right|s)=0.1 π(rights)=0.1
  • π ( u p ∣ s ) = 0.7 \pi(up|s)=0.7 π(ups)=0.7
    强化学习主要是学习这个策略函数,根据策略函数我们可以根据当前状态做出决策。

奖励(reward)

agent做出一个动作,游戏就会给出奖励,这个奖励通常由我们自己来定义,还是以超级玛丽的游戏作为例子,我们可以定义如下奖励:

  • 吃到金币: R = 1 R=1 R=1
  • 赢得游戏: R = 10000 R=10000 R=10000
  • 碰到敌人: R = − 10000 R=-10000 R=10000
  • 什么没发生: R = 0 R=0 R=0

状态转移(state transition)

智能体做出一个动作,游戏就会从一个状态(state)转移到一个新的状态(state)。也就是马里奥执行一个动作(例如向上跳),游戏就会显示到另一个画面。我们通常认为状态转移是随机的,随机性取决于环境。
p ( s ′ , a ) = P ( S ′ = s ′ ∣ S = s , A = a ) p(s^\prime,a)=\mathbb{P}(S^\prime=s^\prime|S=s,A=a) p(s,a)=P(S=sS=s,A=a)

这个公式是观测到当前的状态 s s s和动作 a a a,状态变成 s ′ s^\prime s的概率

回报(return)

回报(return)定义为未来的累计奖励,英文为:cumulative future reward。(注意和奖励的区别)。我们把 t t t时刻的奖励记为: U t U_t Ut
U t = R t + R t + 1 + R t + 2 + ⋯ U_t=R_t+R_{t+1}+R_{t+2}+\cdots Ut=Rt+Rt+1+Rt+2+

也就是把从t时刻的奖励加起来,直到游戏结束。下面思考一个问题: R t R_t Rt R t + 1 R_{t+1} Rt+1同样重要吗?这个问题相当于你是选择我现在给你100元还是我一年后给你100元。大部分人会选择现在得到100元,因为未来有太多不确定性。所以未来的奖励没有现在的奖励重要,因此我们要给 R t + 1 R_{t+1} Rt+1较小的权重。所以我们通常使用折扣回报(Discounted return)这个概念,定义一个折扣系数 γ ( 0 < γ < 1 ) \gamma(0<\gamma<1) γ(0<γ<1),也就是上面说的权重。
U t = R t + γ R t + 1 + γ 2 R t + 2 + ⋯ U_t=R_t+\gamma R_{t+1}+\gamma ^2R_{t+2}+\cdots Ut=Rt+γRt+1+γ2Rt+2+

当然回报也具有随机性,随机性主要有两个来源动作(action)和状态(state)

  • 动作的随机: π ( a ∣ s ) = P ( A = a ∣ S = s ) \pi(a|s)=\mathbb{P}(A=a|S=s) π(as)=P(A=aS=s)
  • 状态的随机: p ( s ′ , a ) = P ( S ′ = s ′ ∣ S = s , A = a ) p(s^\prime,a)=\mathbb{P}(S^\prime=s^\prime|S=s,A=a) p(s,a)=P(S=sS=s,A=a)

这两个公式意思就是:根据当前状态得出一个随机的动作,更具当前的动作和状态得出一个状态转移。所以奖励 R i R_i Ri 取决于 S i S_i Si A i A_i Ai

价值函数(Value Function)

动作价值函数(Action-Value Function)

动作价值函数记作 Q ( s , a ) Q(s,a) Q(s,a)。首先上面所讲的回报 U t U_t Ut只是一个随机变量,它取决于未来所有的动作和状态,由于 U t U_t Ut是一个随机变量,在 t t t时刻我并不知道 U t U_t Ut是什么,所以我们可以对 U t U_t Ut求期望,把随机性用积分积掉,最后得到的就是一个数。
Q π ( s t , a t ) = E [ U t ∣ S t = s t , A t = a t ] Q_\pi(s_t,a_t)=\mathbb{E}[U_t|S_t=s_t,A_t=a_t] Qπ(st,at)=E[UtSt=st,At=at]
根据这个式子求出的期望就是动作价值函数,除了 s t s_t st a t a_t at其余的随机变量都被积分积掉了。所以动作价值函数 Q π Q_\pi Qπ与当前状态 s t s_t st和当前动作 a t a_t at有关,还与策略函数policy π \pi π有关,因为积分时会用到。那么如何将这个策略函数去掉?我们可以取最大值。
Q ∗ ( s t , a t ) = m a x π Q π ( s t , a t ) Q^*(s_t,a_t)=\underset{\pi}{max} Q_\pi(s_t,a_t) Q(st,at)=πmaxQπ(st,at)

也就是我们取能使 Q Q Q最大化的策略函数

状态价值函数(State-Value Function)

状态价值函数记作 V ( s ) V(s) V(s),是动作价值函数 Q π Q_\pi Qπ的期望
V π = E A [ Q π ( s t , A ) ] = ∑ a π ( a ∣ s t ) ⋅ Q π ( s t , a ) V_\pi=\mathbb{E}_A[Q_\pi(s_t,A)]= {\textstyle \sum_{a}}\pi(a|s_t)\cdot Q_\pi(s_t,a) Vπ=EA[Qπ(st,A)]=aπ(ast)Qπ(st,a)
V π = E A [ Q π ( s t , A ) ] = ∫ π ( a ∣ s t ) ⋅ Q π ( s t , a ) d a V_\pi=\mathbb{E}_A[Q_\pi(s_t,A)]= \int \pi(a|s_t)\cdot Q_\pi(s_t,a) da Vπ=EA[Qπ(st,A)]=π(ast)Qπ(st,a)da
这里的期望是根据随机变量 A A A求的,上面的两种情况分别对应变量离散和连续的两种情况。

两种价值函数的对比

里的期望是根据随机变量 A A A求的,上面的两种情况分别对应变量离散和连续的两种情况。

两种价值函数的对比

动作价值函数 Q π Q_\pi Qπ,告诉我们,使用价值函数policy π \pi π,智能体处于状态s时做出动作a是否明智,可以给该动作打分。状态价值函数 V π V_\pi Vπ,如果使用价值函数 π \pi π,可以评价当前状态是好还是坏(游戏是快赢了还是快输了)。还可以评价价值函数 π \pi π的好坏,如果 π \pi π越好,那么 E S [ V π ( S ) ] \mathbb{E}_S[V_\pi(S)] ES[Vπ(S)],也就是 V π V_\pi Vπ的平均值就越大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值