强化学习(一)

本文介绍了强化学习的基本概念,包括马尔可夫决策过程(MDP)、值函数、动态规划、蒙特卡罗方法和时间差分学习。通过实例解释了策略估计、策略改进、策略迭代和值迭代等算法,并探讨了强化学习在内容推荐等领域的应用。

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

前言

近几年,由于DeepMind成功地将强化学习(reinforcement learning)运用在AlphaGo上,机器首次在复杂任务上取得了超过人类的表现,使得强化学习成为目前机器学习研究的前沿方向之一。强化学习由来已久,Sutton等在1979年就已经开始研究强化学习,1998年出版了强化学习介绍一书,并于2012年发布第二版,本文前几部分内容主要参考该书。

强化学习最早主要用于智能控制领域,比如机器人控制、电梯调度、电信通讯等,如今已经在自动驾驶、NLP、内容推荐[4]和语音交互领域都有相关的应用。2013年底DeepMind发表文章Playing Atari with Deep Reinforcement Learning,首次成功地将深度学习运用到强化学习任务上,通过无监督学习实现从纯图像输入来玩Atari 2600游戏的效果。而后DeepMind逐渐改进算法,使得DQN在Atari几乎一半的游戏中超过人类水平,以至2016年AlphaGo和无人车的出现,人们惊奇地发现人工智能即将颠覆我们的生活,甚至有人评论说传统的深度学习已经可以很好地感知理解了,强化学习可以利用这些感知生成策略,因而可以创造更高的机器智能。

下面是DeepMind使用DQN让机器学习玩Atari 2600游戏的视频。

什么是强化学习

Reinforcement learning is learning what to do—how to map situations to actions—so as to maximize a numerical reward signal[1].

强化学习研究的是智能体agent与环境之间交互的任务,也就是让agent像人类一样通过试错,不断地学习在不同的环境下做出最优的动作,而不是有监督地直接告诉agent在什么环境下应该做出什么动作。在这里我们需要引入回报(reward)这个概念,回报是执行一个动作或一系列动作后得到的奖励,比如在游戏超级玛丽中,向上跳可以获得一个金币,也就是回报值为1,而不跳时回报就是0。回报又分为立即回报和长期回报,立即回报指的是执行当前动作后能立刻获得的奖励,但很多时候我们执行一个动作后并不能立即得到回报,而是在游戏结束时才能返回一个回报值,这就是长期回报。强化学习唯一的准则就是学习通过一序列的最优动作,获得最大的长期回报。比较有挑战性的是,任一状态下做出的动作不仅影响当前状态的立即回报,而且也会影响到下一个状态,因此也就会影响整个执行过程的回报。

因此,强化学习和监督学习的区别主要有以下两点[6]

  1. 强化学习是试错学习(Trail-and-error),由于没有直接的指导信息,智能体要以不断与环境进行交互,通过试错的方式来获得最佳策略。
  2. 延迟回报,强化学习的指导信息很少,而且往往是在事后(最后一个状态)才给出的,这就导致了一个问题,就是获得正回报或者负回报以后,如何将回报分配给前面的状态。

问题描述与MDP

前面已经提到强化学习是尝试并发现回报最大动作的过程,下面就具体来描述一下这个过程。首先考虑一个问题,一个之前完全没有接触过国际象棋的小白怎样和一个专业棋手对弈。刚开始小白对棋面并没有任何概念,只能随机下,但假设双方每一轮下完后都会得到立即回报,比如吃子回报为1,被吃回报为-1,其他回报为0。可以想象一开始小白会输得很惨,但如果小白很聪明,随着不断地尝试小白不仅理解了下棋的规则,并且知道在什么棋面下做出什么动作可以吃更多的棋子。在这里我们将小白作为我们的智能体agent,棋面就是状态,下棋就是agent根据当前状态做出的动作,每个动作执行完后都会引起状态改变,如果状态的改变只与前一个状态和当前的动作有关,而与之前的状态和动作无关(即满足马尔可夫性),那么整个过程可以用马尔可夫决策过程(Markov Decision Processes)来描述,而Sutton在书中直接将满足马尔可夫性的强化学习任务定义为马尔可夫决策过程,并将状态和动作都是有限空间的MDP定义为有限马尔可夫决策过程(finite MDP)。

下面引入一些定义[1]:马尔可夫决策过程是一个agent与环境交互的过程,因此有一个离散的时间序列, t = 0 , 1 , 2 , 3 , . . . t=0,1,2,3,... t=0,1,2,3,...,在每一个时刻 t t t,agent都会接收一个用来表示环境的状态 S t ∈ S S_{t}\in\bf{S} StS,其中 S \bf{S} S表示所有可能状态的集合,并且在状态的基础上选择一个动作 A t ∈ A ( S t ) A_{t}\in{\bf{A}}(S_{t}) AtA(St),其中 A ( S t ) {\bf{A}}(S_{t}) A(St)表示在状态 S t S_{t} St时所有可能采取的动作的集合,在 t t t时刻agent采取一个动作后都会收到一个回报值 R t + 1 ∈ R R_{t+1}\in\bf{R} Rt+1R,然后接收一个新状态 S t + 1 S_{t+1} St+1。下图为整个过程的示意图。

在任意时刻和状态下,agent都可以选择一个动作,选择的依据就是我们说的策略—即状态到动作的映射$\pi(a\mid{s})$,而一个使得在任意时刻和状态下的长期回报都是最大的策略是我们最终需要得到的。所谓长期回报我们可以用每个时刻的立即回报来表示:

KaTeX parse error: \tag works only in display equations

但实际上我们一般会用下面更通用的公式来代替:

KaTeX parse error: \tag works only in display equations

其中 γ ∈ [ 0 , 1 ] \gamma\in[0,1] γ[0,1]称为回报折扣因子,表明了未来的回报相对于当前回报的重要程度。 γ = 0 \gamma=0 γ=0时,相当于只考虑立即回报不考虑长期回报, γ = 1 \gamma=1 γ=1时,将长期回报和立即回报看得同等重要。 T ∈ [ 1 , ∞ ] T\in[1,\infty] T[1,]表示完成一次实验过程的总步数, T = ∞ T=\infty T= γ = 1 \gamma=1 γ=1不能同时满足,否则长期回报将无法收敛。特别地,我们将一次有限步数的实验称作一个单独的episodes,也就是经过有限步数后最终会接收一个终止状态,这一类的任务也叫做episodic tasks。下面讨论的强化学习任务都是有限MDP的episodic tasks。

马尔可夫决策过程

一个有限马尔可夫决策过程由一个四元组构成 M = ( S , A , P , R ) M=({\bf{S}}, {\bf{A}}, {\bf{P}}, {\bf{R}}) M=(S,A,P,R)[6]。如上所述, S \bf{S} S表示状态集空间, A {\bf{A}} A表示动作集空间, P {\bf{P}} P表示状态转移概率矩阵, R {\bf{R}} R表示期望回报值。

在MDP中给定任何一个状态 s ∈ S s\in\bf{S} sS和动作 a ∈ A a\in\bf{A} aA,都会以某个概率转移到下一个状态 s ′ s^{'} s,这个概率为 p ( s ′ ∣ s , a ) = P r { S t + 1 = s ′ ∣ S t = s , A t = a } ∈ P p(s^{'}\mid s, a)={\bf{Pr}}\{S_{t+1}=s^{'}\mid S_{t}=s, A_{t}=a\}\in\bf{P} p(ss,a)=Pr{ St+1=sSt=s,At=a}P,并获得下一个回报的期望值为 r ( s , a , s ′ ) = E [ R t + 1 ∣ S t = s , A t = a , S t + 1 = s ′ ] ∈ R r(s,a,s^{'})={\bf{E}}\left[R_{t+1}\mid{S_{t}=s,A_{t}=a,S_{t+1}=s^{'}}\right]\in\bf{R} r(s,a,s)=E[Rt+1St=s,At=a,St+1=s]R

值函数及贝尔曼公式

增强学习的最终结果是找到一个环境到动作的映射—即策略 π ( a ∣ s ) \pi(a\mid{s}) π(as)。如果一个策略只考虑立即回报,那么很可能就会掉入眼前陷阱。比如说有一个岔路口,往左回报是100,往右回报是10,如果策略只考虑立即回报,那肯定是往左,但往左走的下一次回报只有10,而往右走的下一次回报有200,可以看到这个策略并不是最优的策略,此外增强学习又往往有具有延迟回报的特点,在很多情况下的动作并不会产生立即回报,但这一系列动作的累积效果又的确会导致后续回报的产生,因此立即回报并不能说明策略的好坏。在几乎所有的强化学习理论中都会定义值函数来表示给定策略下期望的未来回报,并将值函数作为评估学习效果的指标。

值函数有多种定义,目前常见的是将值函数直接定义为未来回报的期望:

KaTeX parse error: \tag works only in display equations

上面表示的是在某个策略 π \pi π下,当环境处于状态 s s s时未来回报的期望,因此又叫做状态值函数(state-value function for policy),只跟当前状态有关。同样,我们也可以定义动作值函数(action-value function for policy),如下:

KaTeX parse error: \tag works only in display equations

动作值函数表示在某个策略 π \pi π下,当环境处于状态 s s s时采取动作 a a a的未来回报的期望。可以看到动作值函数与状态值函数唯一的不同是动作值函数不仅指定了一个初始状态,而且也指定了初始动作,而状态值函数的初始动作是根据策略产生的。由于在MDP中,给定状态 s s s,agent根据策略选择动作 a a a,下个时刻将以概率 p ( s ′ ∣ s , a ) p(s^{'}\mid{s,a}) p(ss,a)转移到状态 s ′ s^{'} s,因此值函数又可以改写成如下形式:

$$\begin{split} \upsilon_{\pi}(s)&={\bf{E_{\pi}}}\left[G_{t}\mid{S_{t}=s}\right] \\ &={\bf{E_{\pi}}}\left[\sum_{k=0}^{\infty}\gamma^{k}R_{t+k+1}\mid{S_{t}=s}\right] \\ &={\bf{E_{\pi}}}\left[R_{t+1}+\gamma\sum_{k=0}^{\infty}\gamma^{k}R_{t+k+2}\mid{S_{t}=s}\right] \\ &=\sum_{a}\pi(a\mid{s})\cdot{\bf E}_{\pi}\left[R_{t+1}+\gamma\sum_{k=0}^{\infty}\gamma^{k}R_{t+k+2}\mid{S_{t}=s,A_{t}}\right] \\ &=\sum_{a}\pi(a\mid{s})\sum_{s^{'}}p(s^{'}\mid{s,a})\left[r(s,a,s^{'})+\gamma{\bf E}_{\pi}\left[\sum_{k=0}^{\infty}\gamma^{k}R_{t+k+2}\mid{S_{t+1}=s^{'}}\right]\right] \\ &=\sum_{a}\pi(a\mid{s})\sum_{s^{'}}p(s^{'}\mid{s,a})\left[r(s,a,s^{'})+\gamma\upsilon_{\pi}(s^{'})\right] \end{split}\tag{2.3}$$
也就是说在策略$\pi$下当前状态的值函数可以通过下一个状态的值函数来迭代求解,这个公式被称为$\upsilon_{\pi}$的贝尔曼公式(Bellman equation for $\upsilon_{\pi}$)。

同样,动作值函数也可以写成相似的形式:

$$\begin{split} q_{\pi}(s,a)&={\bf{E_{\pi}}}\left[G_{t}\mid{S_{t}=s,A_{t}=a}\right] \\ &={\bf{E_{\pi}}}\left[R_{t+1}+\gamma\sum_{k=0}^{\infty}\gamma^{k}R_{t+k+2}\mid{S_{t}=s,A_{t}=a}\right] \\ &=\sum_{s^{'}}p(s^{'}\mid{s,a})\left[r(s,a,s^{'})+\gamma\upsilon_{\pi}(s^{'})\right] \end{split}\tag{2.4}$$
$\upsilon_{\pi}(s)$也可以用$q_{\pi}(s,a)$来表示: $$\upsilon_{\pi}(s)=\sum_{a}\pi(a\mid{s})q_{\pi}(s,a)\tag{2.5}$$

下面是迭代计算 υ π ( s ) \upsilon_{\pi}(s) υπ(s) q π ( s , a ) q_{\pi}(s,a) qπ(s,a)的图解[1],可以与上述公式对照理解。

最优值函数及贝尔曼最优公式

上面所说的值函数都是未来回报的期望值,而我们需要得到的最优策略必然是使得任意时刻未来回报的期望值都是最大的,也就是说我们的优化目标可以表示为: π ∗ = arg ⁡ max ⁡ π υ π ( s ) (2.6) \pi_{*}=\mathop{\arg\max}_{\mathbf{\pi}}\upsilon_{\pi}(s)\tag{2.6} π=argmaxπυπ(s)(2.6)
当然最优策略可能不止一个,但这些最优策略都有一个共同的特点,就是它们共享同样的状态值函数,这个状态值函数叫做最优状态值函数(optimal state-value function),用 υ ∗ \upsilon_{*} υ来表示。对于所有的 s ∈ S s\in\bf{S} sS
υ ∗ ( s ) = max ⁡ π υ π ( s ) (2.7) \upsilon_{*}(s)=\max_{\mathbf{\pi}}\upsilon_{\pi}(s)\tag{2.7} υ(s)=πmaxυπ(s)(2.7)
最优策略同样也共享相同的动作值函数(optimal action-value function),用 q ∗ q_{*} q来表示。对于所有的 s ∈ S s\in\bf{S} s

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值