强化学习第二版-Sutton-学习笔记

章节目录

    • 1. 导论
  • I 表格型求解方法
    • 2. 多臂赌博机
      • K臂赌博机
      • 增量式实现
      • 跟踪一个非平稳问题
      • 乐观初始值
      • 基于置信度上界(UCB)的动作选择
      • 梯度赌博机算法
    • 3. 有限马尔科夫决策过程(有限MDP)
      • 目标和收益
      • 回报和分幕
      • 策略和价值函数
      • 最优策略与最优价值函数

1. 导论

参考书籍:https://item.jd.com/12696004.html

在交互中学习是几乎所有学习和智能理论的基本思想,强化学习相比于其他机器学习方法,更加侧重于以交互目标为导向进行学习。

强化学习四要素:策略、收益、价值函数、环境模型。

  • 策略:策略就是环境到动作的映射,是强化学习的核心。
  • 收益:就是每一步动作的回报,强化学习的目标是最大化长期总收益。
  • 价值函数:智能体从当前时刻到未来的总收益的期望,价值评估是几乎所有强化学习方法中最重要的部分。
  • 环境模型:给定一个状态和动作,环境模型可以预测下一个状态和收益。强化学习由有模型的方法和无模型的方法。

I 表格型求解方法

简单问题是指其状态和动作空间小到可以用数组或表格的形式表示价值函数。后续分别介绍:多臂赌博机、有限马尔科夫过程、动态规划、蒙特卡洛、时序差分、多步自举与基于表格型方法的规划和学习。

2. 多臂赌博机

K臂赌博机

重复的在K个动作中进行选择,每一次选择后都会得到一定数值的收益,目标是在一段时间内最大化总收益的期望(隐含背景:每个动作的平均收益不同)。

K个动作中每一个被选择时有一个期望收益或平均收益,称为该动作的“价值”。

  • 如果知道每个动作的价值,每次选择直接选价值最高的动作;
  • 如果不知道每个动作的价值,就对每个动作的价值进行估计;

每次选择估计价值最高的动作,称为贪心的动作。

  • 每次选择贪心的的动作,称为开发
  • 如果有一定概率选择非贪心动作,称为试探 ϵ − 贪 心 \epsilon-贪心 ϵ);

一种对动作价值进行估计的方法是:计算实际收益的平均值。

增量式实现

假设 Q n Q_n Qn为被选择 n − 1 n-1 n1次后,某个动作的价值的估计,则有:
Q n + 1 = Q n + 1 n [ R n − Q n ] Q_{n+1}=Q_n+\frac{1}{n}[R_n-Q_n] Qn+1=Qn+n1[RnQn]
一般形式为:
新 估 计 值 = 旧 估 计 值 + 步 长 ∗ [ 目 标 − 旧 估 计 值 ] 新估计值 = 旧估计值 + 步长 * [目标 - 旧估计值] =+[]

跟踪一个非平稳问题

取平均值方法对于动作价值平稳的情况适用,但对于收益的概率分布随时间变化的问题不再适用。解决办法是相比于过去很久的收益,给近期收益更高的权重,比如固定步长
Q n + 1 = Q n + α [ R n − Q n ] = ( 1 − α ) n Q 1 + ∑ i = 1 n α ( 1 − α ) n − i R i Q_{n+1}=Q_n+\alpha [R_n-Q_n]\\ =(1-\alpha)^nQ_1+\sum_{i=1}^n\alpha(1-\alpha)^{n-i}R_i Qn+1=Qn+α[RnQn]=(1α)nQ1+i=1nα(1α)niRi
其中, α ∈ ( 0 , 1 ] \alpha\in(0,1] α(0,1]

乐观初始值

初始动作价值提供了一种简单的试探方式,比如将初始动作价值设置较高,实际动作价值较低,就会对每一个动作进行尝试,进行大量试探。但是该方法只对平稳问题有效,不太适合非平稳问题。

基于置信度上界(UCB)的动作选择

A t = arg max ⁡ a [ Q t ( a ) + c ln ⁡ t N t ( a ) ] A_t=\argmax_a[Q_t(a)+c\sqrt{\frac{\ln t}{N_t(a)}}] At=aargmax[Qt(a)+cNt(a)lnt ]
其中, ln ⁡ t \ln t lnt表示 t t t的自然对数, N t ( a ) N_t(a) Nt(a)表示时刻 t t t之前动作 a a a被选择的次数, c c c是大于0的数。
随着时间的流逝,具有较低价值估计的动作或者已经被选择了更多次的动作被选择的频率较低。

  • 处理非平稳问题,需要更复杂的方法;
  • 另一个难题是处理大的状态空间,尤其是函数近似问题;

梯度赌博机算法

针对每个动作学习一个偏好函数 H t ( a ) H_t(a) Ht(a),偏好函数越大,动作就越频繁地被选择。
H t + 1 ( a T ) = H t ( A t ) + α ( R t − R ˉ t ) ( 1 − π t ( A t ) ) , H t + 1 ( a ) = H t ( a ) − α ( R t − R ˉ t ) π t ( a ) , 所 有 a ≠ A t H_{t+1}(a_T)=H_t(A_t)+\alpha(R_t-\bar R_t)(1-\pi_t(A_t)),\\ H_{t+1}(a)=H_t(a)-\alpha(R_t-\bar R_t)\pi_t(a), 所有 a\ne A_t Ht+1(aT)=Ht(At)+α(RtRˉt)(1πt(At)),Ht+1(a)=Ht(a)α(RtRˉt)πt(a),a=At
R ˉ t \bar R_t Rˉt作为比较收益的基准项,如果收益高于它,那么未来选择动作 A t A_t At的概率就会增加,反之概率就会降低,未选择的动作被选择的概率上升。

3. 有限马尔科夫决策过程(有限MDP)

在有限MDP中,状态、动作和收益的集合( S S S A A A R R R)都只有有限个元素。
p ( s ′ , r ∣ s , a ) = P r { S t = s ′ , R t = r ∣ S t − 1 = s , A t − 1 = a } p(s',r|s,a)=Pr\{S_t=s',R_t=r|S_{t-1}=s,A_{t-1}=a\} p(s,rs,a)=Pr{ St=s,Rt=rSt1=s,At1=a}
S t S_t St R t R_t Rt的每个可能值出现的概率只取决于前一状态 S t − 1 S_{t-1} St1和前一动作 A t − 1 A_{t-1} At1,并且与更早之前的状态和动作完全无关。

目标和收益

  • 智能体的目标是最大化其收到的总收益;
  • 提供收益的方式必须要使智能体在最大化收益的同时也实现目标;
  • 收益信号并不是传授智能体如何实现目标的先验知识;
  • 收益信号只能用来传达什么是你想要实现的目标,而不是如何实现这个目标;

回报和分幕

回报是收益的总和:
G t = R t + 1 + R t + 2 + R t + 3 + 。 。 。 + R T G_t=R_{t+1}+R_{t+2}+R_{t+3}+。。。+R_{T} Gt=Rt+1+Rt+2+Rt+3++RT
T T T是最终时刻,智能体与环境的交互被分成一个个子序列,我们称每一个子序列为幕(episodes)。

折扣后回报:
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + 。 。 。 = ∑ k = 0 ∞ γ k R t + k + 1 G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+。。。=\sum_{k=0}^\infty \gamma^kR_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+=k=0γkRt+k+1
其中, 0 ≤ γ ≤ 1 0\leq\gamma\leq 1 0γ1是一个参数,称为折扣率。

增量式计算回报:
G t = R t + 1 + γ G t + 1 G_t=R_{t+1}+\gamma G_{t+1} Gt=Rt+1+γGt+1

策略和价值函数

策略是从状态到每个动作的选择概率之间的映射,例如: π ( a ∣ s ) \pi(a|s) π(as)

把策略 π \pi π下状态 s s s的价值函数记为 v π ( s ) v_{\pi}(s) vπ(s),其定义为:
v π ( s ) = E π [ G t ∣ S t = s ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] v_{\pi}(s)=E_{\pi}[G_t|S_t=s]=E_{\pi}[\sum_{k=0}^{\infty}\gamma^kR_{t+k+1}|S_t=s] vπ(s)=Eπ[GtSt=s]=Eπ[k=0γkRt+k+1St=s]
把函数 v π v_{\pi} vπ称为策略 π \pi π状态价值函数

把策略把策略 π \pi π下状态 s s s时采取动作 a a a的价值记为 q π ( s , a ) q_{\pi}(s,a) qπ(s,a),其定义为:
q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] q_{\pi}(s,a)=E_{\pi}[G_t|S_t=s,A_t=a]=E_{\pi}[\sum_{k=0}^{\infty}\gamma^kR_{t+k+1}|S_t=s,A_t=a] qπ(s,a)=Eπ[GtSt=s,At=a]=Eπ[k=0γkRt+k+1St=s,At=a]
把函数 q π q_{\pi} qπ称为策略 π \pi π动作价值函数

贝尔曼方程:
v π = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] , 对 于 所 有 的 s ∈ S v_{\pi}=\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)[r+\gamma v_{\pi}(s')], 对于所有的s\in S vπ=aπ(as)s,rp(s,rs,a)[r+γvπ(s)],sS

最优策略与最优价值函数

v ∗ ( s ) = max ⁡ π v π ( s ) q ∗ ( s , a ) = max ⁡ π q π ( s , a ) v_{*}(s)=\max_{\pi}v_{\pi}(s)\\ q_{*}(s,a)=\max_{\pi}q_{\pi}(s,a) v(s)=πmaxvπ(s)q(s,a)=πmaxqπ(s,a)
贝尔曼最优方程:
v ∗ ( s ) = max ⁡ a E [ R t + 1 + γ v ∗ ( S t + 1 ) ∣ S t = s , A t = a ] = max ⁡ a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v ∗ ( s ′ ) ] v_{*}(s)=\max_{a}E[R_{t+1}+\gamma v_{*}(S_{t+1})|S_t=s,A_t=a]\\ =\max_{a}\sum_{s',r}p(s',r|s,a)[r+\gamma v_{*}(s')] v(s)=amaxE[Rt+1+γv(St+1)St=s,At=a]=amaxs,rp(s,rs,a)[r+γv(s)]
贝尔曼最优方程可以直接求解,但是需要满足以下条件:

  • 知道环境的动态变化特性;
  • 足够的计算资源;
  • 马尔科夫性质;

实际系统中,上述条件很难满足。

你可能感兴趣的:(强化学习)