强化学习入门

强化学习是指智能体通过不断试错的方式进行学习,利用与环境进行交互时获得的奖励或惩罚来指导行为

试错学习

  • 尝试(决策-decision)
  • 错误
  • 结果:每次尝试无论产生什么样的结果,都会对下一次结果产生影响
    • 奖励(reward):正确的结果
    • 惩罚(punishment):错误的结果
  • 学习:通过不断地尝试来修正自己的行为,从而在下一次尝试中做出更有利的行为

试错学习的目标通常是以最大化累积的奖励来呈现,这个过程就是序列决策(sequential decision making)。

换句话说,对于任意问题,只要能够建模成序列决策问题或者带有鲜明的试错学习特征,就可以使用强化学习来解决,并且这是截至目前最为高效的方法之一,这就是要学习强化学习的原因。

其他类型的强化学习,例如观察学习(模仿学习、离线强化学习)

马尔可夫决策过程

马尔可夫决策过程(Markov decision process,MDP),它能够以数学的形式来表达序列决策过程,也是强化学习最基本的问题模型。

马尔可夫过程

智能体和环境之间交互是在一系列离散的时间(time step)中交互的,通常时间 t t t是有限的,即有限马尔可夫决策过程(Finite MDP)。上限用 T T T表示,从 t t t T T T为一个回合,比如游戏的一局。

有些方法可以拓展到连续时间的情况,但为了方便,我们尽量只考虑离散时步的情况。

性质

马尔可夫决策过程有一个前提,即马尔可夫性质。

P ( s t + 1 ∣ s 0 , s 1 , . . , s t ) = P ( s t + 1 ∣ s t ) P(s_{t+1}|s_0,s_1,..,s_t) = P(s_{t+1}|s_t) P(st+1s0,s1,..,st)=P(st+1st)

在给定历史状态 s 0 , s 1 , . . . , s t s_0,s_1,...,s_t s0,s1,...,st下,某个未来的状态只与当前状态 s t s_t st有关,与历史的状态无关

显然,现实生活中很多场景都不符合马尔可夫性质,但可以结合其他方法来辅助强化学习。

马尔可夫链

在这里插入图片描述

上图中, s 1 , s 2 , s 3 s1,s2,s3 s1,s2,s3分别表示三种不同的状态,其中的连线表示不同状态之间转移的概率。上图被称为马尔可夫链(Markov Chain),离散状态的马尔可夫过程也称为马尔可夫链,其状态是有限的,并且满足马尔可夫过程的性质,下一个时刻的状态只取决于当前时刻的状态。

例如 P 12 = P ( S t + 1 = s 2 ∣ S t = s 1 ) P_{12} = P(S_{t+1} = s_2|S_{t} = s_1) P12=P(St+1=s2St=s1)

进一步可扩展为 P s s ′ = P ( S t + 1 = s ′ ∣ S t = s ) P_{ss'} = P(S_{t+1} = s'|S_{t} = s) Pss=P(St+1=sSt=s)

其中大写S表示所有状态的集合,可以将状态之间转化的概率用表格表示。

在这里插入图片描述
进而表示为状态转移矩阵(State Transition Matrix)

在这里插入图片描述

当给定状态转移的马尔可夫链后,我们可以对这个链进行采样,这样就会得到一串轨迹。

在这里插入图片描述

马尔可夫奖励过程(Markov Reward Processes,MRPs)

是马尔可夫链 + 奖励函数(Reward function)+ 折扣因子 γ \gamma γ

奖励函数R是一个期望,表明当我们从一个状态到达另一个状态的时候,可以获得多大的奖励。

R ( s ) = E [ r t + 1 ∣ s t = s ] R(s) = E[r_{t+1}|s_t = s] R(s)=E[rt+1st=s]

如果状态有限,则奖励函数可以用向量表示。如下图所示,可以将奖励过程看作一个随波逐流的纸船,到达不同位置获得不同的奖励。在下图中到达状态S1和S7分别可以获得5和10的奖励,到达其他状态没有奖励。

在这里插入图片描述

回报

G t = r t + r t + 1 + . . . + r T G_t = r_{t} + r_{t+1} + ... +r_{T} Gt=rt+rt+1+...+rT

G t = r t + γ r t + 1 + . . . + γ n r T G_t = r_{t} + \gamma r_{t+1} + ... +\gamma^nr_{T} Gt=rt+γrt+1+...+γnrT

其中 G t G_t Gt是累积奖励(回报), γ \gamma γ是衰减因子,位于0-1之间,奖励越靠后,权越小。

带衰减因子有以下考量

  • 马尔可夫过程可能带环,避免无穷
  • 想尽可能快的得到未来的奖励
  • 作为超参数来调整对现在的状态还是之前的状态更看重

例如对轨迹: s 4 , s 5 , s 6 , s 7 , γ = 0.5 s_4,s_5,s_6,s_7,\gamma = 0.5 s4,s5,s6,s7,γ=0.5的回报

G = 0 + 0.5 ∗ 0 + 0.25 ∗ 0 + 0.125 ∗ 10 G = 0 + 0.5 * 0 + 0.25 * 0 + 0.125*10 G=0+0.50+0.250+0.12510

状态价值函数

当有了回报,就可以定义状态的价值,即状态价值函数(state-value function),在马尔可夫奖励过程中,状态价值函数被定义为回报的期望。注意,在不同的马尔可夫过程中,状态价值函数定义不同

V t ( s ) = E [ G t ∣ s t = s ] = E [ r t + γ r t + 1 + . . . + γ n r T ∣ s t = s ] V^t(s) = E[G_t | s_t = s] \\ =E[r_{t} + \gamma r_{t+1} + ... +\gamma^nr_{T} | s_t = s] Vt(s)=E[Gtst=s]=E[rt+γrt+1+...+γnrTst=s]

从定义可以看出,状态价值函数的意义是对回报的期望,就是从某个状态开始,我们可能获得多大的价值

在这里插入图片描述

例如计算S4的状态价值函数

方法一,蒙特卡罗

从S4开始,采样生成很多轨迹,对每个轨迹计算回报,最后平均

方法二,贝尔曼方程

在这里插入图片描述

贝尔曼方程就是当前状态与未来状态的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算。贝尔曼方程因其提出者、动态规划创始人理查德 ⋅⋅ 贝尔曼(Richard Bellman)而得名 ,也叫作“动态规划方程”

贝尔曼方程的求解即是对状态价值函数求解

  • 将贝尔曼方程写成矩阵形式,通过求解矩阵,可得到状态价值函数。但涉及到矩阵求逆,时间复杂度 O ( n 3 ) O(n^3) O(n3),不适用状态数较多的情况。
  • 迭代算法
    • 动态规划
    • 蒙特卡罗
    • 时序差分学习(动态规划+蒙特卡罗)(temporal-difference learning,TD learning)

马尔可夫决策过程(MDPs)

马尔可夫决策过程可以用一个五元组< S , A , R , P , γ S,A,R,P,\gamma S,A,R,P,γ>表示,其中A表示动作空间、R表示奖励函数、P表示状态转移矩阵、 γ \gamma γ表示衰减因子。

较MRP增加了决策(动作)A。

性质

P ( s t + 1 ∣ s t , α t ) = P ( s t + 1 ∣ s 0 , s 1 , . . , s t , α t ) P(s_{t+1}|s_t,\alpha_t) = P(s_{t+1}|s_0,s_1,..,s_t,\alpha_t) P(st+1st,αt)=P(st+1s0,s1,..,stαt)

未来的状态不仅依赖于当前的状态,也依赖于在当前状态智能体采取的动作。

奖励函数也多了一个当前的动作 R ( s t = s , a t = a ) = E [ r t ∣ s t = s , a t = a ] R(s_t = s,a_t = a) = E[r_t|s_t=s,a_t=a] R(st=s,at=a)=E[rtst=s,at=a]

策略函数

策略定义了在某一个状态应该采取什么样的动作。知道当前状态后,我们可以把当前状态代入策略函数π来得到一个概率,即

π ( a ∣ s ) = p ( a t = a ∣ s t = s ) π(a|s) = p(a_t =a|s_t=s) π(as)=p(at=ast=s)

概率代表在所有可能的动作里面怎样采取行动。

  • 比如可能有 0.7 的概率往左走,有 0.3 的概率往右走,这是一个概率的表示。
  • 另外策略也可能是确定的,它有可能直接输出一个值,或者直接告诉我们当前应该采取什么样的动作,而不是一个动作的概率。

并且,已知策略函数和马尔可夫决策过程,可以将马尔可夫决策过程转化为马尔可夫奖励过程。

状态转移函数 P π ( s ′ ∣ s ) = ∑ a ∈ A π ( a ∣ s ) p ( s ′ ∣ s , a ) ] 奖励函数 r π ( s ) = ∑ a ∈ A π ( a ∣ s ) R ( s , a ) 状态转移函数P_{\pi}(s'|s) = \sum_{a \in A}{\pi(a|s)p(s'|s,a)]} \\ 奖励函数r_{\pi}(s) = \sum_{a \in A}{\pi(a|s)R(s,a)} 状态转移函数Pπ(ss)=aAπ(as)p(ss,a)]奖励函数rπ(s)=aAπ(as)R(s,a)

状态/动作价值函数

V π ( s ) = E π [ G t ∣ s t = s ] V_{\pi}(s) = E_{\pi}[G_t | s_t = s] Vπ(s)=Eπ[Gtst=s]

这里我们另外引入了一个 Q 函数(Q-function)。Q 函数也被称为动作价值函数(action-value function)

Q 函数定义的是在某一个状态采取某一个动作,它有可能得到的回报的一个期望,即

Q π ( s , a ) = E π [ G t ∣ s t = s , a t = a ] Q_{\pi}(s,a) = E_{\pi}[G_t | s_t = s,a_t = a] Qπ(s,a)=Eπ[Gtst=s,at=a]

这里的期望其实也是基于策略函数的。所以我们需要对策略函数进行一个加和,然后得到它的价值。 对 Q 函数中的动作进行加和,就可以得到价值函数:

V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V_{\pi}(s) = \sum_{a \in A} \pi(a|s)Q_{\pi}(s,a) Vπ(s)=aAπ(as)Qπ(s,a)

MRP和MDP区别

在这里插入图片描述

左侧的马尔可夫奖励过程,从一个状态到另一个状态只需要状态转移函数 P ( s ′ ∣ s ) P(s'|s) Pss。右侧的马尔可夫决策过程需要先选择行为,即中间一层黑色结点,最终转移到另一种状态。

在这里插入图片描述

DQN

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值