Foundation for Reinforcement Learning

本文最后更新于:7 个月前

概念

有监督学习任务:找到一个最优的模型函数。使其在训练数据集上最小化一个给定的损失函数。 \[ \text { 最优模型 }=\arg_{\text { 模型 }} \mathbb{E}_{\text {(特征, 标签)}\sim \text{数据分布 }}[\text { 损失函数 }(\text { 标签, 模型 }(\text { 特征 }))] \] 强化学习任务:最大化智能体策略在和动态环境交互过程中的价值。根据 1.5 节的分析,策略的价值可以等价转换成奖励函数在策略的占用度量上的期望,即: \[ \text { 最优策略 }=\arg \max _{\text {策略 }} \mathbb{E}_{\text {(状态。动作) 策略的占用度量 }}[\text { 奖励函数 }(\text { 状态, 动作)] } \]

  • 二者优化的途径是不同的,有监督学习直接通过优化模型对于数据特征的输出来优化目标,即修改目标函数而数据分布不变;强化学习则通过改变策略来调整智能体和环境交互数据的分布,进而优化目标,即修改数据分布而目标函数不变

MAB - 多臂老虎机

多臂老虎机问题可以表示为一个元组 \(\langle\mathcal{A}, \mathcal{R}\rangle\), 其中: - \(\mathcal{A}\) 为动作集合,其中一个动作表示拉动一个拉杆。若多臂老虎机一共有 \(K\) 根拉杆,那动作空间就是集合 \(\left\{a_1, \ldots, a_K\right\}\),我们用 \(a_t \in \mathcal{A}\) 表示任意一个动作; - \(\mathcal{R}\) 为奖励概率分布,拉动每一根拉杆的动作 \(a\) 都对应一个奖励概率分布 \(\mathcal{R}(r \mid a)\), 不同拉杆的奖励分布通常是不同的。

假设每个时间步只能拉动一个拉杆,多臂老虎机的目标为最大化一段时间步 \(T\) 内累积的奖励: \(\max \sum_{t=1}^T r_t, r_t \sim \mathcal{R}\left(\cdot \mid a_t\right)\) 。其中 \(a_t\) 表示在第 \(t\) 时间步拉动某一拉杆的动作, \(r_t\) 表示动作 \(a_t\) 获得的奖励。

探索和利用两者之间的平衡

  • \(\epsilon\) 贪心算法:\(a_t= \begin{cases}\arg \max _{a \in \mathcal{A}} \hat{Q}(a), & \text { 采样概率: } 1-\epsilon \\ \text { 从 } \mathcal{A} \text { 中随机选择, } & \text { 采样概率: } \epsilon\end{cases}\)
  • 上置信界算法:给定一个概率 \(p=e^{-2 N_t(a) U_t(a)^2}\Longrightarrow \hat{U}_t(a)=\sqrt{\dfrac{-\log p}{2 N_t(a)}}\),根据霍夫丁不等式,\(Q_t(a)<\hat{Q}_t(a)+\hat{U}_t(a)\) 至少以概率 \(1-p\) 成立,在每次拉杆前计算奖励期望的上界
  • 汤普森采样算法:例如对二项分布的老虎机,其参数的概率分布为 beta 分布

马尔科夫

马尔科夫过程

用元组 \(\langle\mathcal{S}, \mathcal{P}\rangle\) 描述一个马尔可夫过程,其中 \(\mathcal{S}\) 是有限数量的状态集合,\(\mathcal{P}\) 是状态转移矩阵(state transition matrix)。假设一共有 \(n\) 个状态,此时 \(\mathcal{S}=\left\{s_1, s_2, \ldots, s_n\right\}\)。状态转移矩阵 \(\mathcal{P}\) 定义了所有状态对之间的转移概率 \[ \mathcal{P}=\left[\begin{array}{ccc} P\left(s_1 | s_1\right) & \cdots & P\left(s_n | s_1\right) \\ \vdots & \ddots & \vdots \\ P\left(s_1 | s_n\right) & \cdots & P\left(s_n | s_n\right) \end{array}\right] \] 当前状态是未来的充分统计量

MRP - 马尔科夫奖励过程

\(\langle\mathcal{S}, \mathcal{P}, r, \gamma\rangle\) 构成: - \(\mathcal{S}\) - 有限状态 - \(\mathcal{P}\) - 状态转移矩阵。 - \(r\) - 奖励函数,某个状态 \(s\) 的奖励 \(r(s)\) 指转移到该状态时可以获得奖励的期望。 - \(\gamma\) 是折扣因子 (discount factor) , \(\gamma\) 的取值范围为 \([0,1)\) 。远期利益有一定不确定性

定义回报如下 \[ G_t=R_t+\gamma R_{t+1}+\gamma^2 R_{t+2}+\cdots=\sum_{k=0}^{\infty} \gamma^k R_{t+k} \] 定义价值函数 \(V(s)=\mathbb{E}\left[G_t \mid S_t=s\right]\),迭代法推出 \(V(s)=r(s)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s\right) V\left(s^{\prime}\right)\),为贝尔曼方程,记 \[ \mathcal{V}=\left[V\left(s_1\right), V\left(s_2\right), \ldots, V\left(s_n\right)\right]^T, \mathcal{R}=\left[r\left(s_1\right), r\left(s_2\right), \ldots, r\left(s_n\right)\right]^T\] 矩阵形式以及解,该解法复杂度为 \(\mathcal{O}(n^3)\) \[ \begin{aligned} \mathcal{V} & =\mathcal{R}+\gamma \mathcal{P} \mathcal{V} \\ \mathcal{V} & =(I-\gamma \mathcal{P})^{-1} \mathcal{R}\end{aligned} \]

MDP - 马尔科夫决策过程

\(\langle\mathcal{S},\mathcal{A},\gamma,r(s,a),P\rangle\) 构成:

  • \(\mathcal{S}\) - 状态集合
  • \(\mathcal{A}\) - 动作集合
  • \(\gamma\) - 折扣因子(大多数情况下介于 0.95 和 0.99 之间)
  • \(r(s, a)\) - 奖励函数,此时奖励可以同时取决于状态 \(s\) 和动作 \(a\)
  • \(P\left(s^{\prime} | s, a\right)\) - 状态转移函数,表示在状态 \(s\) 执行动作 \(a\) 之后到达状态 \(s^{\prime}\) 的概率(为三维数组或者连续的)

定义策略,可以有确定性策略和随机性策略(根据概率分布) \[ \pi(a | s)=P\left(A_t=a | S_t=s\right) \] 定义状态价值函数,代表基于某种策略 \(\pi\) 下从状态 \(s\) 出发的期望回报 \[ V^\pi(s)=\mathbb{E}_\pi\left[G_t | S_t=s\right] \] 定义动作价值函数,代表基于某种策略 \(\pi\) 下从状态 \(s\) 执行动作 \(a\) 的期望回报 \[ Q^\pi(s, a)=\mathbb{E}_\pi\left[G_t | S_t=s, A_t=a\right] \] 全概率公式得到 \[ V^\pi(s)=\sum_{a \in A} \pi(a | s) Q^\pi(s, a) \] 类似 MRP,在给定当前状态 \(s\) 和执行动作 \(a\)\[ \begin{aligned} Q^\pi(s, a) & =\mathbb{E}_\pi\left[R_t+\gamma Q^\pi\left(S_{t+1}, A_{t+1}\right) \mid S_t=s, A_t=a\right] \\ & =r(s, a)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s, a\right) \sum_{a^{\prime} \in A} \pi\left(a^{\prime} \mid s^{\prime}\right) Q^\pi\left(s^{\prime}, a^{\prime}\right)\end{aligned} \] 最优状态价值是选择使最优动作价值最大的那个动作得到的状态价值 \[ V^*(s)=\max _{a \in \mathcal{A}} Q^*(s, a) \] 于是得到贝尔曼最优方程 \[ \begin{aligned} V^*(s) & =\max _{a \in \mathcal{A}}\left\{r(s, a)+\gamma \sum_{s^{\prime} \in \mathcal{S}} p\left(s^{\prime} \mid s, a\right) V^*\left(s^{\prime}\right)\right\} \\ Q^*(s, a) & =r(s, a)+\gamma \sum_{s^{\prime} \in \mathcal{S}} p\left(s^{\prime} \mid s, a\right) \max _{a^{\prime} \in \mathcal{A}} Q^*\left(s^{\prime}, a^{\prime}\right)\end{aligned} \] ## 动态规划算法

价值策略迭代

随便初始化一个 \(V_0 \equiv 0\),在最优贝尔曼方程上迭代,此时 \(V_{+\infty}=V^{\star}\) \[ V_{k+1}(s) \leftarrow \max _{a \in \mathcal{A}}\left[\sum_{s^{\prime} \in \mathcal{S}} \mathbb{P}_{\mathcal{E}}\left(s^{\prime} \mid s, a\right)\left[r\left(s, a, s^{\prime}\right)+\gamma V_k\left(s^{\prime}\right)\right]\right] \]

策略提升

得知状态价值函数的基础上优化策略,有完全贪心策略,只选择价值最大的那一个动作 \[ \pi(a \mid s):= \begin{cases}1 & a=\operatorname{argmax}_{a^{\prime} \in \mathcal{A}} Q\left(s, a^{\prime}\right) \\ 0 & \text { otherwise }\end{cases} \]

时序差分算法

无模型的强化学习:环境的奖励函数和状态转移函数是未知的,只有不断地交互采样得到数据才能学习

Sarsa 算法(在线策略)

\(\epsilon\)-贪心策略,有 \(1-\epsilon\) 的概率采用动作价值最大的那个动作,\(\epsilon\) 概率从动作空间中随机采取一个动作 \[ \pi(a \mid s)= \begin{cases}\epsilon /|\mathcal{A}|+1-\epsilon & \text{ 如果 } a=\arg \max _{a^{\prime}} Q\left(s, a^{\prime}\right) \\ \epsilon /|\mathcal{A}| & \text { 其他动作 }\end{cases} \] 蒙特卡洛方法直接拿到奖励然后更新,SARSA 算法考虑下一个状态的价值估计,其中使用 \(\epsilon\)-贪心策略估计动作函数 \[ Q\left(s_t, a_t\right) \leftarrow Q\left(s_t, a_t\right)+\alpha\left[r_t+\gamma Q\left(s_{t+1}, a_{t+1}\right)-Q\left(s_t, a_t\right)\right] \] 其中 \(r_t+\gamma V(s_{t+1})-V(s_t)\) 被称为时序差分(temporal difference, TD),也可以多走几步,为多步 Sarsa 算法 \[ Q\left(s_t, a_t\right) \leftarrow Q\left(s_t, a_t\right)+\alpha\left[r_t+\gamma r_{t+1}+\cdots+\gamma^n Q\left(s_{t+n}, a_{t+n}\right)-Q\left(s_t, a_t\right)\right] \]

Q-learning 算法(离线策略)

更新方式变为 \[ Q\left(s_t, a_t\right) \leftarrow Q\left(s_t, a_t\right)+\alpha\left[R_t+\gamma \max _a Q\left(s_{t+1}, a\right)-Q\left(s_t, a_t\right)\right] \] 本质上 Sarsa 算法是有了下一个状态后用当前策略(这里是 \(\epsilon\)-贪心策略)去找到下一个或者多个状态的动作,从而更新相应的动作状态价值,Q-learning 算法有了下一个状态后不用当前策略,而是选取最好的那个状态动作,这是由贝尔曼最优方程保证的

采样数据的策略为行为策略,利用这些数据来更新的策略为目标策略,两者一样是在线策略,两者不一样是离线策略

Dyna-Q 算法

每次选取一个曾经访问过的状态 \(s\),采取曾经在该状态下执行过的动作 \(a\),通过模型得到转移后的状态 \(s^{\prime}\) 以及奖励 \(r\),并根据这个模拟数据 \((s,a,r,s^{\prime})\) 用 Q-learning 的方式来更新动作价值函数。

DQN 算法(深度 Q 网络)

原始算法

Q-learning 的更新规则 \[ Q(s, a) \leftarrow Q(s, a)+\alpha\left[r+\gamma \max _{a^{\prime} \in \mathcal{A}} Q\left(s^{\prime}, a^{\prime}\right)-Q(s, a)\right] \] 神经网络参数 \(\omega\)\(Q_{\omega}(s,a)\) 表征 \(Q\) 值,将 Q 网络的损失函数构造为均方误差的形式 \[ \omega^*=\arg \min _\omega \frac{1}{2 N} \sum_{i=1}^N\left[Q_\omega\left(s_i, a_i\right)-\left(r_i+\gamma \max _{a^{\prime}} Q_\omega\left(s_i^{\prime}, a^{\prime}\right)\right)\right]^2 \] 实际训练中使用 Buffer 池中抽样尽量使数据同分布,使用固定的 target 模型更新原始模型,一定时间间隔之后将 target 模型更新为原始模型。

Double DQN

训练过程中高估 \(Q\) 值,改写为 \[ r+\gamma Q_{\omega^{-}}\left(s^{\prime}, \underset{a^{\prime}}{\arg \max } Q_\omega\left(s^{\prime}, a^{\prime}\right)\right) \] 即不选取目标网络中最大价值动作,而是选择原始网络中的最大价值动作,这样某些不可能超过 \(0\)\(Q\) 值高估数量减少

Dueling DQN

价值函数 \(Q\) 减去状态价值函数 \(V\) 的结果定义为优势函数 \(A\), 即 \(A(s, a)=Q(s, a)-V(s)\) 。在同一个状态下, 所有动作的优势值之和为 0。因为所有动作的动作价值的期望就是这个状态的状态价值。在 Dueling \(D Q N\) 中,\(Q\) 网络被建模为 \[ Q_{\eta, \alpha, \beta}(s, a)=V_{\eta, \alpha}(s)+A_{\eta, \beta}(s, a) \] 由于这样对于相同的 \(Q\) 值,两者的值可以你增我减,可以固定最优动作的优势函数为 \(0\) \[ Q_{\eta, \alpha, \beta}(s, a)=V_{\eta, \alpha}(s)+A_{\eta, \beta}(s, a)-\max _{a^{\prime}} A_{\eta, \beta}\left(s, a^{\prime}\right) \] 也可以优势之和固定为 \(0\) \[ Q_{\eta, \alpha, \beta}(s, a)=V_{\eta, \alpha}(s)+A_{\eta, \beta}(s, a)-\frac{1}{|\mathcal{A}|} \sum_{a^{\prime}} A_{\eta, \beta}\left(s, a^{\prime}\right) \] 这样更加稳定

策略梯度算法

假设策略是关于参数 \(\theta\) 处处可微的函数,定义策略学习的目标函数为 \[ J(\theta)=\mathbb{E}_{s_0}\left[V^{\pi_\theta}\left(s_0\right)\right] \] 代表所有状态下以 \(\pi_{\theta}\) 策略获得价值的期望,可以推导 \[ \begin{aligned} \nabla J(\theta)&=\sum_{s\in \mathcal{S}}\nu^{\pi_{\theta}}(s)\sum_{a\in \mathcal{A}}\nabla_{\theta}\pi_{\theta}(a|s)Q^{^{\pi_{\theta}}}(s,a)\\ &=\sum_{s\in \mathcal{S}}\nu^{\pi_{\theta}(s)}\sum_{a\in \mathcal{A}} \pi_{\theta}(a|s)Q^{\pi_{\theta}}(s,a)\nabla_{\theta}\log\pi_{\theta}(a|s)\\ &=\mathbb{E}_{\pi_{\theta}}\left[Q^{\pi_{\theta}}(s,a)\nabla_{\theta}\log \pi_{\theta}(a|s)\right] \end{aligned} \] Reinforce 算法:有限步数环境下采样轨迹计算相应的价值,这是通过蒙特卡洛采样,估计是无偏的,对每个时间 \(t\) 往后采样序列得到轨迹并计算回报并求和乘以策略对数的梯度 \[ \nabla_\theta J(\theta)=\mathbb{E}_{\pi_\theta}\left[\sum_{t=0}^T\left(\sum_{t^{\prime}=t}^T \gamma^{t^{\prime}-t} r_{t^{\prime}}\right) \nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right)\right] \]

使用当前策略采样,计算当前轨迹每个时刻 \(t\) 往后的回报,记为 \(\psi_t\),然后梯度上升 \[ \theta\leftarrow \theta+\alpha \sum_{t}^{T}\psi_t \nabla_{\theta}\log\pi_{\theta}(a_t|s_t) \]

[!NOTE]

如果定义深度神经网络的所有操作为 \(F:I\rightarrow O\)​,DQN 算法本质是用 \(F(s)[a]\)​ 去拟合 \(Q(s,a)\)​ ,与 Q-learning 的 \(Q^{*}\)​ 两者的平方误差均值作损失函数,然后梯度下降;策略梯度算法本质是用 \(\text{Softmax}(F(s))[a]\)​ 去拟合 \(\pi(a|s)\)​​,梯度用公式推导,使用采样的样本梯度上升。

Actor-Critic 算法

一个既学习价值函数,又学习策略函数的方法

  • Actor 学习策略,使用策略梯度算法更新策略 \[ \theta_{\text{act}}=\theta_{\text{act}}+\alpha_\theta \sum_t \delta_t \nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right) \]

  • Critic 学习价值函数,类似 DQN,把下一个时刻的目标 \(r+\gamma V_{\omega}(s_{t+1})\) 作为 target,优化损失函数,梯度更新只有 \(V_{\omega}(s_{t})\) 原始价值函数更新 \[ \mathcal{L}(\omega)=\dfrac{1}{2}(r+\gamma V_{\omega}(s_{t+1})-V_{\omega}(s_{t}))^2\\ \nabla \mathcal{L}(\omega)=-(r+\gamma V_{\omega}(s_{t+1})-V_{\omega})\nabla V_{\omega}(s_{t}) \]

TRPO 算法

如何更新策略

新旧策略之间的差距为 \[ \begin{aligned} J(\theta^{\prime})-J(\theta)&=\mathbb{E}_{\pi_{\theta}^{\prime}}\left[\sum_{t=0}^{\infty}\gamma^{t}[r(s_t,a_t)+\gamma V^{\pi_{\theta}}(s_{t+1})-V^{\pi_{\theta}}(s_t))]\right]\\ &:=\mathbb{E}_{\pi_{\theta^{\prime}}}\left[\sum_{t=0}^{\infty}\gamma^{t}A^{\pi_{\theta}}(s_t,a_t)\right]\\ &=\frac{1}{1-\gamma} \mathbb{E}_{s \sim \nu^\pi \pi_{\theta^{\prime}}} \mathbb{E}_{a \sim \pi_{\theta^{\prime}} \cdot(\cdot \mid s)}\left[A^{\pi_\theta}(s, a)\right] \end{aligned} \] 其中 \(A^{\pi_{\prime}}(s_t,a_t)\) 为优势函数,\(\nu^{\pi}(s)=(1-\gamma)\sum_{t=0}^{\infty}\gamma^{t}P_{t}^{\pi}(s)\) 为状态访问分布,保证对所有的 \(s\) 求和为 \(1\)

  • 假设1:相邻两策略之间的状态访问分布变化不大,第一个期望不变
  • 假设2:相邻两策略之间的 KL 散度相近,信任区域为策略空间的一个球

则需要优化的策略目标为 \[ \dfrac{\pi_{\theta^{\prime}}(a\mid s)}{\pi_{\theta}(a\mid s)}A^{\pi_{\theta_k}}(s,a) \] 同时还要保证优化后的策略尽可能与原来相近

\(\theta_{k}\)​​ 附近一阶近似和二阶近似 \[ \begin{gathered} \mathbb{E}_{s \sim \nu^{\pi_\theta}} \mathbb{E}_{a \sim \pi_{\theta_k}(\cdot \mid s)}\left[\frac{\pi_{\theta^{\prime}}(a \mid s)}{\pi_{\theta_k}(a \mid s)} A^{\pi_{\theta_k}}(s, a)\right] \approx g^T\left(\theta^{\prime}-\theta_k\right) \\ \mathbb{E}_{s \sim \nu^{\pi_{\theta_k}}}\left[D_{K L}\left(\pi_{\theta_k}(\cdot \mid s), \pi_{\theta^{\prime}}(\cdot \mid s)\right)\right] \approx \frac{1}{2}\left(\theta^{\prime}-\theta_k\right)^T H\left(\theta^{\prime}-\theta_k\right) \end{gathered} \] 转换为优化问题 \[ \theta_{k+1}=\underset{\theta^{\prime}}{\arg \max } g^T\left(\theta^{\prime}-\theta_k\right) \quad \text { s.t. } \quad \frac{1}{2}\left(\theta^{\prime}-\theta_k\right)^T H\left(\theta^{\prime}-\theta_k\right) \leq \delta \] KKT 条件,构造拉格朗日函数 \(L\left(\theta^{\prime}, \lambda\right)=g^T\left(\theta^{\prime}-\theta_k\right)+\lambda\left(\delta-\dfrac{1}{2}\left(\theta^{\prime}-\theta_k\right)^T H\left(\theta^{\prime}-\theta_k\right)\right)\)

  1. 定长方程式

\[ \begin{aligned} & \nabla_{\theta^{\prime}} L\left(\theta^{\prime}, \lambda\right)=g-\lambda H\left(\theta^{\prime}-\theta_k\right)=0 \\ & \Rightarrow \theta^{\prime}=\theta_k+\frac{1}{\lambda} H^{-1} g \end{aligned} \] 2. 原始可行性

\[ \frac{1}{2}\left(\theta^{\prime}-\theta_k\right)^T H\left(\theta^{\prime}-\theta_k\right) \leq \delta \] 3. 对偶可行性

\[ \lambda \geq 0 \] 4. 互补松弛型 \[ \lambda\left(\delta-\frac{1}{2}\left(\theta^{\prime}-\theta_k\right)^T H\left(\theta^{\prime}-\theta_k\right)\right)=0 \]

可以解得 \[ \theta_{k+1}=\theta_{k}+\sqrt{\dfrac{2\delta}{g^{T}H^{-1}g}}H^{-1}g \] 使用共轭梯度法求解 \(x=H^{-1}g\),代入 \[ \Delta\theta=\sqrt{\dfrac{2\delta}{x^{T}Hx}}x \] 线性搜索,找到最小的非负整数 \(i\),其中 \(\alpha\in(0,1)\) \[ \theta_{k+1}=\theta_k+\alpha^i \sqrt{\frac{2 \delta}{x^T H x}} x \] 使得新的 \(\theta_{k+1}\) 满足策略目标

广义优势估计(GAE)

定义多步时序差分 \[ A_{t}^{(i)}=\sum_{j=0}^{i}\gamma^{j}\delta_{t+j}\\\delta_t=-V(s_t)+r_t+\gamma V(s_{t+1}) \] 使用数学归纳法可证明 \[ A_{t}^{(k)}=-V(s_t)+\sum_{i=0}^{k-1}\gamma^{i}r_{t+i}+\gamma^{k}V(s_{t+k}) \] 使用指数加权平均,有 \((1-\lambda)\sum_{i=0}^{\infty}\lambda^i=1\) \[ \begin{aligned} A_{t}^{GAE}&=(1-\lambda)(A_t^{(1)}+\lambda A_{t}^{(2)}+\lambda^2 A_{t}^{(3)}+\cdots)\\ & =(1-\lambda)\left(\delta_t \frac{1}{1-\lambda}+\gamma \delta_{t+1} \frac{\lambda}{1-\lambda}+\gamma^2 \delta_{t+2} \frac{\lambda^2}{1-\lambda}+\cdots\right) \\ & =\sum_{l=0}^{\infty}(\gamma \lambda)^l \delta_{t+l} \end{aligned} \]\(\lambda=0\) 时,为第一个差分 \(A_{t,\lambda=0}^{GAE}=\delta_t\),当 \(\lambda=1\) 时,\(A_t^{G A E}=\sum_{l=0}^{\infty} \gamma^l \delta_{t+l}=\sum_{l=0}^{\infty} \gamma^l r_{t+l}-V\left(s_t\right)\)

PPO 算法

使用拉格朗日乘子法将 KL 散度前面的系数也放进目标函数中,定义如下 \[ \underset{\theta}{\arg \max } \mathbb{E}_{s \sim \nu^{\pi_{\theta_k}}} \mathbb{E}_{a \sim \pi_{\theta_k}(\cdot \mid s)}\left[\dfrac{\pi_{\theta}(s|a)}{\pi_{\theta_k}(s|a)}A^{\pi_{\theta}}(s,a)-\beta D_{KL}[\pi_{\theta_k}(\cdot|s),\pi_{\theta}(\cdot|s)]\right] \]

PPO-惩罚

\(d_k=D_{KL}^{\nu^{\pi_{\theta_k}}}(\pi_{\theta_k},\pi_\theta)\)\(\beta\)​ 更新如下 \[ \beta_{k+1}= \begin{cases}\frac{\beta_k}{2}, & \text { 如果 } d_k<\frac{\delta}{1.5} \\ \beta_k \times 2, & \text { 如果 } d_k>\delta \times 1.5 \\ \beta_k, & \text { 否则 }\end{cases} \] 也就是散度太大的话权重调大,散度太低的话权重调小

PPO-截断

根据优势函数在 \([1-\epsilon,1+\epsilon]\) 前后截断 \[ \underset{\theta}{\arg \max } \mathbb{E}_{s \sim \nu}{ }^{\pi_{\theta_k}} \mathbb{E}_{a \sim \pi_{\theta_k}(\cdot \mid s)}\left[\min \left(\frac{\pi_\theta(a \mid s)}{\pi_{\theta_k}(a \mid s)} A^{\pi_{\theta_k}}(s, a), \operatorname{clip}\left(\frac{\pi_\theta(a \mid s)}{\pi_{\theta_k}(a \mid s)}, 1-\epsilon, 1+\epsilon\right) A^{\pi_{\hat{\sigma}_k}}(s, a)\right)\right. \] 如果 \(A>0\) 两者之比被 \(1+\epsilon\) 截断,如果 \(A<0\),则被 \(1-\epsilon\) 截断,为语言模型主流算法。


Foundation for Reinforcement Learning
https://lr-tsinghua11.github.io/2024/02/01/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/
作者
Learning_rate
发布于
2024年2月1日
许可协议