QLearning--贪吃蛇 笔记

神经网络发展历程

逐渐能够处理的问题
在这里插入图片描述

强化学习

马尔可夫决策过程

在这里插入图片描述

基本定义

一个马尔可夫决策过程由五元组组成 ( S , A , { P s 2 } , γ , R ) \left(S, A,\left\{P_{s 2}\right\}, \gamma, R\right) (S,A,{Ps2},γ,R)

  • S:表示状态集(states)
  • A:表示一系列动作(actions)
  • P s a P_{s a} Psa:表示状态转移概率。表示的是在当前s ∈ S状态下,经过a ∈ A作用后,会转移到的其他状态的概率分布情况。比如,在状态s下执行动作a,转移到s’的概率可以表示为p(s’|s,a)。
    (dicount factor):表示阻尼系数[0,1)
  • R: S × A → R S \times A \rightarrow \mathbb{R} S×AR,表示回报函数(reward function)

MDP 的动态过程如下:某个智能体(agent)的初始状态为 s 0 s_{0} s0,然后从 A 中挑选一个动作 a 0 a_{0} a0执行,执行后,agent 按 P s a P_{s a} Psa概率随机转移到了下一个s1状态,s1∈ P s a P_{s a} Psa。然后再执行一个动作 a 1 a_{1} a1,就转移到了 s 2 s_{2} s2,接下来再执行 a 2 a_{2} a2…,我们可以用下面的图表示状态转移的过程。
s 0 ⟶ a 0 s 1 ⟶ a 1 s 2 ⟶ a 2 s 3 ⟶ a 3 … s_{0} \stackrel{a_{0}}{\longrightarrow} s_{1} \stackrel{a_{1}}{\longrightarrow} s_{2} \stackrel{a_{2}}{\longrightarrow} s_{3} \stackrel{a_{3}}{\longrightarrow} \dots s0a0s1a1s2a2s3a3
如果回报r是根据状态s和动作a得到的,则MDP还可以表示成下图:在这里插入图片描述

值函数

上面我们给出了MDP的定义,作为一个智能体(agent),当它在决定下一步应该走什么时,最简单的方式就是看下Reward函数的值是多少,即比较走不同动作的回报,从而做出决定。但是就像下棋的时候,我们每走一步都会向后考虑,所谓“走一步看三步”,所以这里我们只看一步即一次Reward函数是不够的,这就引出了值函数(Value Function)也叫折算累积回报(discounted cumulative reward)。

状态值函数(state value function)

当我们遵循某个策略 π \pi π,我们将值函数定义如下:
V π ( s ) = E [ R ( s 0 ) + γ R ( s 1 ) + γ 2 R ( s 2 ) + ⋯ ∣ s 0 = s , π ] V^{\boldsymbol{\pi}}(s)=E\left[R\left(s_{0}\right)+\gamma R\left(s_{1}\right)+\gamma^{2} R\left(s_{2}\right)+\cdots | s_{0}=s, \pi\right] Vπ(s)=E[R(s0)+γR(s1)+γ2R(s2)+s0=s,π]
我们将上面的式子写作递推的样子如下:
V π ( s ) = R ( s 0 ) + γ V π ( s ′ ) V^{\pi}(s)=R\left(s_{0}\right)+\gamma V^{\pi}\left(s^{\prime}\right) Vπ(s)=R(s0)+γVπ(s)
另外当策略,在状态s时,我们可以确定唯一的动作a,但是s经过动作a会进入哪个状态是不唯一的,比如同样是掷骰子操作,可能得到的状态有6种,那么利用Bellman等式我们便可以得到下面的公式:
V π ( s ) = R ( s ) + γ ∑ s ′ ∈ S P s π ( s ) ( s ′ ) V π ( s ′ ) V^{\pi}(s)=R(s)+\gamma \sum_{s^{\prime} \in S} P_{s \pi(s)}(s^{\prime}) V^{\pi}(s^{\prime}) Vπ(s)=R(s)+γsSPsπ(s)(s)Vπ(s)
再根据我们最初增强学习的目的,我们便可以得出,求V的目的就是想找到一个当前状态s下,最优的行动策略,表示如下:
V ∗ ( s ) = R ( s ) + max ⁡ Q∈A ⁡ γ ∑ s ′ ∈ S P S Q ( s ′ ) V ∗ ( s ′ ) V^{*}(s)=R(s)+\max _{\operatorname{Q \in A} } \gamma \sum_{s^{\prime} \in S} P_{SQ}(s^{\prime}) V^{*}(s^{\prime}) V(s)=R(s)+QAmaxγsSPSQ(s)V(s)

动作值函数(action value function)

上面我们的值函数的只与状态s有关,如果与状态s和动作a都有关,便称为动作值函数,即所谓的Q函数,如下:
Q π ( s , a ) = E [ R ( s 0 , a 0 ) + γ R ( s 1 , a 0 ) + γ 2 R ( s 2 , a 2 ) + ⋯ ∣ s 0 = s , a 0 = a , π ] Q^{\pi}(s, a)=E\left[R\left(s_{0}, a_{0}\right)+\gamma R\left(s_{1}, a_{0}\right)+\gamma^{2} R\left(s_{2}, a_{2}\right)+\cdots | s_{0}=s, a_{0}=a, \pi\right] Qπ(s,a)=E[R(s0,a0)+γR(s1,a0)+γ2R(s2,a2)+s0=s,a0=a,π]
= R ( s 0 , a 0 ) + γ Q π ( s ′ , a ′ ) =R\left(s_{0}, a_{0}\right)+\gamma Q^{\pi}\left(s^{\prime}, a^{\prime}\right) =R(s0,a0)+γQπ(s,a)
从上式我们可以看出,我们不仅仅依赖状态s和策略,并且还依赖于动作a。
综上我们可以将MDP的最优策略定义如下:
π ∗ = arg ⁡ max ⁡ π V π ( s ) , ( ∀ s ) \pi^{*}=\arg \max _{\boldsymbol{\pi}} V^{\boldsymbol{\pi}}(s),(\forall s) π=argπmaxVπ(s),(s)
关于MDP的求解主要分为值迭代和策略迭代,分别站在不同的角度对MDP进行求解,这里我们不在赘述,网上有很多相关资料。下面我们简单阐述下动作值函数的值迭代求解方式,即所谓的Q-learning

Q学习

Q学习的基本迭代公式如下:
Q ( s t , a t ) ← Q ( s t , a t ) ⎵  old value  + α ⎵  learning rate  ⋅ ( r t + 1 ⎵  reward  + γ ⎵  discount factor  ⋅ max ⁡ a Q ( s t + 1 , a ) ⎵  estimate of optimal future value  ⏞ learned value − Q ( s t , a t ) ⎵  old value  ) Q\left(s_{t}, a_{t}\right) \leftarrow \underbrace{Q\left(s_{t}, a_{t}\right)}_{\text { old value }}+\underbrace{\alpha}_{\text { learning rate }} \cdot \left (\overbrace{\underbrace{r_{t+1}}_{\text { reward }}+\underbrace{\gamma}_{\text { discount factor }} \cdot \underbrace{\max _{a} Q\left(s_{t+1}, a\right)}_{\text { estimate of optimal future value }}}^\text{learned value} -\underbrace{Q\left(s_{t}, a_{t}\right)}_{\text { old value }}\right) Q(st,at) old value  Q(st,at)+ learning rate  α reward  rt+1+ discount factor  γ estimate of optimal future value  amaxQ(st+1,a) learned value old value  Q(st,at)
从公式中我们也可以看出它是一种值迭代方式,因为我们每次更新的是Q函数的值,而非策略。简单起见,整理一个简单的例子加以说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值