QLearning--贪吃蛇 笔记

博客介绍了神经网络发展历程,重点阐述强化学习中的马尔可夫决策过程,包括其五元组定义、状态转移过程。还引出值函数,如状态值函数和动作值函数。最后介绍了Q学习,给出其基本迭代公式,表明它是一种值迭代方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

神经网络发展历程

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

强化学习

马尔可夫决策过程

在这里插入图片描述

基本定义

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

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

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

值函数

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

状态值函数(state value function)

当我们遵循某个策略π\piπ,我们将值函数定义如下:
Vπ(s)=E[R(s0)+γR(s1)+γ2R(s2)+⋯∣s0=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(s0)+γ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′∈SPsπ(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′∈SPSQ(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(s0,a0)+γR(s1,a0)+γ2R(s2,a2)+⋯∣s0=s,a0=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(s0,a0)+γ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(st,at)←Q(st,at)⎵ old value +α⎵ learning rate ⋅(rt+1⎵ reward +γ⎵ discount factor ⋅max⁡aQ(st+1,a)⎵ estimate of optimal future value ⏞learned value−Q(st,at)⎵ 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、付费专栏及课程。

余额充值