前言
近两年AIGC模型均在SFT之后,进行强化学习的微调,并逐渐成为主流范式,因此,记录一下学习强化学习的笔记,以供回顾。本笔记参考https://www.bilibili.com/video/BV1sd4y167NS。
在强化学习笔记(一)基本概念中,我们定义了几个基本概念,本文沿着这些概念出发,给出了贝尔曼公式(Bellman equation)。
state value
考虑如下的单步过程:
\[ S_{t} \xrightarrow{A_{t}} R_{t+1}, S_{t+1}
\]
其中,\(t, t+1\)为离散时刻, \(S_{t}\)为\(t\)时刻的state,\(A_{t}\)为\(S_{t}\)时的action,\(R_{t+1}\)为\(t+1\)时刻的reward,\(S_{t+1}\)为\(t+1\)时刻的state。\(S_{t}, A_{t}, R_{t}\)均为随机变量。
\(S_{t} \rightarrow A_{t}\)由policy \(\pi(A_{t}=a|S_{t}=s)\)决定;
\(S_{t}, A_{t} \rightarrow R_{t+1}\)由reward probability \(p(R_{t+1}=r|S_{t}=s, A_{t}=a)\)决定;
\(S_{t}, A_{t} \rightarrow S_{t+1}\)由state transition probability \(p(S_{t+1}=s'|S_{t}=s, A_{t}=a)\)决定。
将上述单步过程扩展到多步过程:
\[ S_{t} \xrightarrow{A_{t}} R_{t+1}, S_{t+1} \xrightarrow{A_{t+1}} R_{t+2}, S_{t+2} \rightarrow \dots
\]
其discounted return为
\[G_{t} = R_{t+1} + \gamma R_{t+2} + \gamma^{2}R_{t+3} + \dots
\]
discount rate \(\gamma \in (0, 1)\),\(G_{t}\)为随机变量。
\(G_{t}\)的期望称为为state value function,简称为state value:
\[v_{\pi}(s)=\mathbb{E}[G_{t}|S_{t}=s]
\]
- state value为s的函数。
- state value基于policy \(\pi\),对于不同的policy,state value可能不同。
- 更大的state value对应着更好的策略。
- state value代表智能体从某一个state s出发,获得的平均return。
Bellman equation
考虑到如下random trajectory
\[ S_{t} \xrightarrow{A_{t}} R_{t+1}, S_{t+1} \xrightarrow{A_{t+1}} R_{t+2}, S_{t+2} \rightarrow \dots
\]
其discounted return为
\[\begin{align}
G_{t} &= R_{t+1} + \gamma R_{t+2} + \gamma^{2} R_{t+3} + \dots \notag\\
&= R_{t+1} + \gamma G_{t+1}
\notag
\end{align}
\]
其中,\(R_{t+1}\)表示状态由\(S_{t}\)转移到\(S_{t+1}\)后立刻获得的reward,\(G_{t+1}\)表示\(S_{t}\)转移到\(S_{t+1}\)后未来将会获得的return。对应的state value为
\[\begin{align}
v_{\pi}(s) &= \mathbb{E}[G_{t}|S_{t}=s] \notag \\
&= \mathbb{E}[R_{t+1}|S_{t}=s] + \gamma\mathbb{E}[G_{t+1}|S_{t}=s] \notag \\
\end{align} \tag{eq.1} \label{eq.1}
\]
其中
\[\begin{align}
\mathbb{E}[R_{t+1}|S_{t}=s] &= \sum_{a}\pi(a|s) \mathbb{E}[R_{t+1}|S_{t}=s, A_{t}
=a] \notag\\
&= \sum_{a}\pi(a|s)\sum_{r}rp(r|s, a) \notag
\end{align} \tag{eq.2} \label{eq.2}
\]
\[\begin{align}
\mathbb{E}[G_{t+1}|S_{t}=s] &= \sum_{s'}\mathbb{E}[G_{t+1}|S_{t+1}=s', S_{t}=s]p(s'|s) \notag \\
&= \sum_{s'}v_{\pi}(s')\sum_{a}p(s'|s, a)\pi(a|s) \notag \\
\end{align} \tag{eq.3} \label{eq.3}
\]
将\ref{eq.2}和\ref{eq.3}带入\ref{eq.1}可得
\[\begin{align}
v_{\pi}(s) &= \mathbb{E}[G_{t}|S_{t}=s] \notag \\
&= \mathbb{E}[R_{t+1}|S_{t}=s] + \gamma \mathbb{E}[G_{t+1}|S_{t}=s] \notag \\
&= \sum_{a}\pi(a|s)\sum_{r}rp(r|s, a) + \gamma \sum_{s'}v_{\pi}(s')\sum_{a}p(s'|s, a)\pi(a|s) \notag \\
&= \sum_{a}\pi(a|s) [\sum_{r}rp(r|s, a)+\gamma \sum_{s'}p(s'|s, a)v_{\pi}(s')] \notag \\
\end{align} \tag{eq.4} \label{eq.4}
\]
上式即为Bellman equation。
为了更好地求解Bellman equation,我们将其转化为矩阵形式,定义
\(r_{\pi}(s) = \sum_{a}\pi(a|s)\sum_{r}rp(r|s, a)\),\(p_{\pi}(s'|s)=\sum_{a}p(s'|s, a)\pi(a|s)\)。假设存在\(n\)个state,对于任意state \(s_{i}\),其Bellman equation为
\[\begin{align}
v_{\pi}(s_{i})=r_{\pi}(s_{i})+\gamma\sum_{s_{j}}p_{\pi}(s_{j}|s_{i})v_{\pi}(s_{j}) \notag\\
\end{align} \tag{eq.5} \label{eq.5}
\]
定义:
\[v_{\pi} = [v_{\pi}(s_{1}), v_{\pi}(s_{2}), \dots, v_{\pi}(s_{n})]^{T} \in \mathbb{R}^{n}
\]
\[r_{\pi} = [r_{\pi}(s_{1}), r_{\pi}(s_{2}), \dots, r_{\pi}(s_{n})]^{T} \in \mathbb{R}^{n}
\]
\[[P_{\pi}]_{i, j} = p_{\pi}(s_{j}|s_{i}) \in \mathbb{R}^{n \times n}
\]
\ref{eq.5}可以改写为如下的矩阵向量形式
\[\begin{align}
v_{\pi} = r_{\pi} + \gamma P_{\pi} v_{\pi} \notag \\
\end{align} \tag{eq.6} \label{eq.6}
\]
求解Bellman equation
- 解析法
当\(r_{\pi}, \gamma, P_{\pi}\)已知时,\ref{eq.6}存在解析解
\[v_{\pi} = (I - \gamma P_{\pi})^{-1}r_{\pi}
\]
- 迭代法
在实际应用中,state space通常比较大,进而矩阵\(P_{\pi}\)的维度比较大,往往不容易求逆。
可以通过迭代法进行求解。首先,初始化\(v_{0}\),并且通过\(v_{k+1} = r_{\pi} + \gamma P_{\pi}v_{k}\)不断进行迭代,当\(k \rightarrow \infty\)时,\(v_{k} \rightarrow v_{\pi}\)。
证明过程如下
\(\delta_{k}=v_{k} - v_{\pi} = \gamma P_{\pi}(v_{k-1} - v_{\pi}) = \gamma P_{\pi} \delta_{k-1}=\dots=\gamma^{k} P_{\pi}^{k}\delta_{0}\),当\(k \rightarrow \infty\),\(r^{k} \rightarrow 0\),\(P_{\pi}^{k}\)的元素小于1,因此,序列\(\{v_{k}\}\)收敛,且收敛至\(v_{\pi}\)。
action value
action value指的是智能体从state s出发,并且执行action a后获得的平均return。
\[\begin{align}
q_{\pi}(s, a) &= \mathbb{E}[G_{t}|S_{t}=s, A_{t}=a] \notag \\
&= E[R_{t}|S_{t}=s, A_{t}=a] + \gamma \mathbb{E}[G_{t+1} | S_{t}=s, A_{t}=a] \notag \\
&= \sum_{r}rp(r|s, a) + \gamma \sum_{s'}p(s'|s, a)v_{\pi}(s') \notag \\
\end{align} \tag{eq.7} \label{eq.7}
\]
action value也可以通过以下公式推导出state value:
\[\begin{align}
v_{\pi}(s) = \mathbb{E}[G_{t}|S_{t}=s] = \sum_{a} \mathbb{E}[G_{t}|S_{t}=s, A_{t}=a]\pi(a|s)=\sum_{a}q_{\pi}(s, a)\pi(a|s) \notag \\
\end{align} \tag{eq.8} \label{eq.8}
\]