diff --git a/Reinforcement Learning.md b/Reinforcement Learning.md index 7d896b3..a933644 100644 --- a/Reinforcement Learning.md +++ b/Reinforcement Learning.md @@ -1,7 +1,220 @@ # Reinforcement Learning +## MDP + +### 马尔科夫过程 + +$$ + +$$ + +### 马尔科夫奖励过程 + +$$ + +$$ + +- 回报 + +$$ +G_t=R_t+\gamma R_{t+1}+\gamma^2R_{t+2}+\cdots=\sum^{\infty}_{k=0}\gamma^k R_{t+k} +$$ +- 价值函数 + +$$ +\begin{aligned} V(s)&= \textrm{E}[G_t|{S}_t={s}] \\ +&=\textrm{E}[R_t+\gamma V({S}_{t+1})|{S}_t={s}] \\ +贝尔曼方程:\\ +&=r(s)+\gamma \sum_{s'\in S}P(s'|s)V(s') +\end{aligned} +$$ + +### 马尔科夫决策过程 + +$$ + +$$ + +- 策略 + +$$ +\pi(a|s)=P(A_t=a|S_t=s) +$$ +- 状态价值函数 + +$$ +V^{\pi}(s)=\textrm{E}_{\pi}[G_t|S_t=s] +$$ +- 动作价值函数 + +$$ +Q^{\pi}(s,a)=\textrm{E}_{\pi}[G_t|S_t=s,A_t=a] +$$ +- 贝尔曼期望方程 + +$$ +\begin{aligned} Q^{\pi}(s,a)&=\textrm{E}_{\pi}[R_t+\gamma Q^{\pi}(s',a')|S_t=s,A_t=a]\\ +&=r(s,a)+\gamma\sum_{s'\in S}P(s'|s,a)\sum_{a'\in A}\pi(a'|s')Q^{\pi}(s',a')\\ +V^{\pi}(s)&=\textrm{E}_{\pi}[R_t+\gamma V^{\pi}(s')|S_t=s]\\ +&=\sum_{a\in A}\pi(a|s)\left(r(s,a)+\gamma \sum_{s'\in S}P(s'|s,a)V^{\pi}(s')\right) +\end{aligned} +$$ +- 蒙特卡洛方法 + + 重复随机抽样,然后运用概率统计方法来从抽样结果中归纳出目标的数值估计 + + - MDP状态价值 + +$$ +\begin{aligned} &用策略在\textrm{MDP}上采样很多条序列,计算从这个状态出发的回报再求其期望\\ +&V^\pi(s)=\textrm{E}_\pi[G_t|S_t=s]\approx \frac{1}{N}\sum^N_{i=1}G_t^{(i)} +\end{aligned} +$$ + - 一条序列只计算一次回报,也就是这条序列第一次出现该状态是计算后面的累积奖励,而后面再出现该状态时,该状态就被忽略了 + +$$ +\begin{aligned} &(1)使用策略\pi采样若干条序列:\\ +&s_0^{(i)} \xrightarrow{a_0^{(i)}} r_0^{(i)},s_1^{(i)}\xrightarrow{a_1^{(i)}} r_1^{(i)},s_2^{(i)}\xrightarrow{a_2^{(i)}} \cdots \xrightarrow{a_{T-1}^{(i)}} r_{T-1}^{(i)},s_T^{(i)}\\ +&(2)对每一条序列中的每一时间步t的状态s进行以下操作:\\ +&a.\quad更新状态s的计数器N(s)\leftarrow N(s)+1;\\ +&b.\quad更新状态s的总回报M(s)\leftarrow M(s)+G;\\ +&(3)每一个状态的价值被估计为回报的期望\\ +&V(s)=M(s)/N(s)\\ +&根据大数定律,当N(s)\rightarrow \infty时,有V(s)\rightarrow V^\pi(s),所以还有一种增量更新方法:\\ +&a.\quad N(s)\leftarrow N(s)+1;\\ +&b.\quad V(s)\leftarrow V(s)+\frac{1}{N(s)}(G-V(s));\\ +\end{aligned} +$$ + +- 贝尔曼最优方程 + +$$ +\begin{aligned} V^*(s)&=\max_{\pi}V^{\pi}(s) \qquad \forall s\in S\\ +&=\max_{a\in A}Q^*(s,a)\\ +&=\max_{a \in A}\{r(s,a)+\gamma \sum_{s'\in S}P(s'|s,a)V^*(s')\}\\ +Q^*(s,a)&=\max_\pi Q^\pi(s,a) \qquad \forall s\in S,a\in A\\ +&=r(s,a)+\gamma \sum_{s'\in S}P(s'|s,a)V^*(s')\\ +&=r(s,a)+\gamma \sum_{s'\in S}P(s'|s,a)\max_{a'\in A}Q^*(s',a') +\end{aligned} +$$ + ## value-based +### DP + +- 策略迭代 + + 策略评估与策略提升不断循环交替,直至最后得到最优策略 + + - 策略评估 + +$$ +\begin{aligned}[h] &V^{k+1}(s)=\sum_{a\in A}\pi(a|s)\left( r(s,a)+ \gamma\sum_{s'\in S}P(s'|s,a)V^k(s') \right)\\ +&当k\rightarrow \infty时, +序列\{V^{k}\}会收敛到V^\pi\\ +&实际中,当\max_{s\in S}|V^{k+1}(s)-V^k(s)|\leq\epsilon时,结束策略评估 +\end{aligned} +$$ + - 策略提升 + +$$ +\begin{aligned} &\textrm{if}\quad \exists \quad \pi'\\ +&\textrm{st.}\quad \forall s\in S, +\quad Q^\pi(s,\pi'(s))\geq V^\pi(s)\\ +&\textrm{then}\quad V^{\pi'}(s)\geq V^\pi(s)\\ +&\pi'(s)=\arg \max_a Q^\pi(s,a)=\arg\max_a\{r(s,a)+\gamma\sum_{s'}P(s'|s,a)V^\pi (s')\} +\end{aligned} +$$ + +- 价值迭代 + +$$ +\begin{aligned} &V^{k+1}(s)=\max_{a\in A}\{r(s,a)+\gamma\sum_{s'\in S}P(s'|s,a)V^k(s)\}\\ +&\textrm{when}\quad V^{k+1}=V^k\\ +&\pi(s)=\arg\max_a\{r(s,a)+\gamma\sum_{s'}P(s'|s,a)V^{k+1}(s)\} +\end{aligned} +$$ + +### TD + +- 价值函数的蒙特卡洛 + +$$ +V(s_t)\leftarrow V(s_t)+\alpha[G-V(s_t)] +$$ +- 价值函数的时序差分 + +$$ +\begin{aligned} &V(s_t)\leftarrow V(s_t)+\alpha[r_t+\gamma V(s_{t+1})-V(s_t)]\\ +&其中,r_t+\gamma V(s_{t+1})-V(s_t)称为时序差分 +\end{aligned} +$$ +- Sarsa + + - + +$$ +\begin{aligned} &初始化Q(s,a)\\ +&\textbf{for}序列e=1\rightarrow E\quad \textbf{do:}\\ +&\quad得到初始状态s\\ +&\quad用\epsilon -贪婪策略根据Q选择当前状态s下的动作a\\ +&\quad \textbf{for} 时间步t=1\rightarrow T\quad\textbf{do:}\\ +&\qquad得到环境反馈r,s'\\ +&\qquad用\epsilon -贪婪策略根据Q选择当前状态s'下的动作a'\\ +&\qquad Q(s,a)\leftarrow Q(s,a)+\alpha[r+\gamma Q(s',a')-Q(s,a)]\\ +&\qquad s\leftarrow s',a\leftarrow a'\\ +&\quad \textbf{end for}\\ +&\textbf{end for} +\end{aligned} +$$ + - 在线策略 + +$$ +\begin{aligned} &行为策略(采样数据表的策略)与\\ +&目标策略(用这些数据更新的策略)相同,\\ +&如a和a'皆有当前策略\epsilon-Greedy(Q)采样得到 +\end{aligned} +$$ + - 多步Sarsa + + - 使用n步的奖励,然后使用之后状态的价值估计 + +$$ +G_t=r_t+\gamma r_{t+1}+\cdots +\gamma^nQ(s_{t+n},a_{t+n}) +$$ + - 动作价值函数更新 + +$$ +Q(s_t,a_t)\leftarrow Q(s_t,a_t)+\alpha[r_t+\gamma r_{t+1}+\cdots +\gamma^nQ(s_{t+n},a_{t+n})-Q(s_t,a_t)] +$$ + +- Q-Learning + + - + +$$ +\begin{aligned} &初始化Q(s,a)\\ +&\textbf{for}序列e=1\rightarrow E\quad \textbf{do:}\\ +&\quad得到初始状态s\\ +&\quad用\epsilon -贪婪策略根据Q选择当前状态s下的动作a\\ +&\quad \textbf{for} 时间步t=1\rightarrow T\quad\textbf{do:}\\ +&\qquad得到环境反馈r,s'\\ +&\qquad Q(s,a)\leftarrow Q(s,a)+\alpha[r+\gamma \max_{a'}Q(s',a')-Q(s,a)]\\ +&\qquad s\leftarrow s'\\ +&\quad \textbf{end for}\\ +&\textbf{end for} +\end{aligned} +$$ + - 离线策略 + +$$ +\begin{aligned} &行为策略(采样数据表的策略)与\\ +&目标策略(用这些数据更新的策略)不同,\\ +&如a由行为策略\epsilon-Greedy(Q)采样得到,\\ +&a'由当前策略\max(Q)采样得到, +\end{aligned} +$$ + ## policy-based ### 一般方法 @@ -202,7 +415,75 @@ $$ \omega\gets\omega-\alpha\cdot\nabla_{\omega}L(\omega) $$ +### TRPO + +- 策略目标 + ## Multi-agent -### Subtopic 1 +### 完全合作关系 + +- multi-agent cooperative A2C(MAC-A2C) + + - 策略网络 + +$$ +\pi(A^i|S;\theta^i) +$$ + + - 动作A的概率密度函数 + +$$ +\pi(A|S;\theta^1,\cdots,\theta^m)\triangleq \pi(A^1 |S;\theta^1)\times\cdots\times \pi(A^m |S;\theta^m) +$$ + - 合作关系 MARL 的策略梯度定理 + +$$ +\nabla_{\theta^i}J(\theta^1,\cdots,\theta^m)=\mathbb{E}_{S,A}\left[\left(Q_\pi(S,A)-b\right)\cdot \nabla_{\theta^i}\ln\pi(A^i|S;\theta^i)\right] +$$ + - 随机梯度——策略梯度的无偏估计 + +$$ +\begin{aligned} g^i(s,a;\theta^i)&\triangleq \left(Q_\pi(s,a)-V_\pi(s)\right)\cdot\nabla_{\theta^i}\ln\pi(a^i|s;\theta^i)\\ +用r_t+\gamma\cdot v(s_{t+1};\omega)近似Q_\pi(s_t,a_t),\\用v(s_t;\omega)近似V_\pi(s_t)\\ +\tilde{g}^i(s_t,a_t^i;\theta^i)&\triangleq \left(r_t+\gamma\cdot v(s_{t+1};\omega)-v(s_t;\omega)\right)\cdot \nabla_{\theta^i}\ln\pi(a_t^i|s_t;\theta^i) +\end{aligned} +$$ + - 策略网络提升 + +$$ +\theta^i\gets\theta^i+\beta\cdot\tilde{g}^i(s_t,a_t^i;\theta^i) +$$ + + - 价值网络 + +$$ +v(s_t,\omega) +$$ + + - 观测 + +$$ +s=[o_1,\cdots,o_m] +$$ + - TD目标 + +$$ +\hat{y_t}\triangleq r_t+\gamma\cdot v(s_{t+1};\omega) +$$ + - 损失函数 + +$$ +L(\omega)\triangleq\frac{1}{2}[v(s_t;\omega)-\hat{y_t}]^2 +$$ + - 损失函数的梯度 + +$$ +\nabla_\omega L(\omega)=[v(s_t;\omega)-\hat{y_t}]\cdot\nabla_\omega v(s_t;\omega) +$$ + - 梯度下降 + +$$ +\omega\gets\omega-\alpha\cdot\nabla_{\omega}L(\omega) +$$ diff --git a/Reinforcement Learning.pdf b/Reinforcement Learning.pdf index ae369f4..ce62bdd 100644 Binary files a/Reinforcement Learning.pdf and b/Reinforcement Learning.pdf differ diff --git a/Reinforcement Learning.svg b/Reinforcement Learning.svg index 1de6117..287f364 100644 --- a/Reinforcement Learning.svg +++ b/Reinforcement Learning.svg @@ -1,4 +1,4 @@ -]>‎Reinforcement ‎Learning‎value-based‎policy-based‎一般方法‎目标函数‎策略梯度定理‎随机梯度——策略梯度的无偏估计‎策略网络提升‎带基线的策略梯度方法‎带基线的策略梯度定理——b是不依赖于A的任意‎函数‎随机梯度线‎REINFORCE‎折扣回报‎动作价值是折扣回报的期望‎用折扣回报的观测值蒙特卡洛近似动作价值‎策略网络提升‎带基线的REINFORCE‎策略网络‎折扣回报‎基线——价值网络做出的预测‎带基线的策略梯度‎梯度上升‎价值网络‎损失函数‎损失函数的梯度‎梯度下降‎Actor-Critic‎策略网络‎用价值网络近似动作价值‎策略网络提升‎价值网络‎TD目标‎损失函数‎损失函数梯度‎梯度下降‎Advantage Actor-Critic (A2C)‎策略网络‎贝尔曼公式‎优势函数(Advantage function)‎近似策略梯度‎策略网络提升‎价值网络‎贝尔曼公式‎TD目标‎损失函数‎损失函数的梯度‎梯度下降‎TRPO‎策略目标‎Multi-agent‎完全合作关系‎multi-agent cooperative A2C(MAC-A2C)‎策略网络‎动作A的概率密度函数‎合作关系 MARL 的策略梯度定理‎随机梯度——策略梯度的无偏估计‎策略网络提升‎价值网络‎观测‎TD目标‎损失函数‎损失函数的梯度‎梯度下降‎MDP‎马尔科夫过程‎马尔科夫奖励过程‎回报‎价值函数‎马尔科夫决策过程‎策略‎状态价值函数‎动作价值函数‎贝尔曼期望方程‎贝尔曼最优方程‎价值网络只起到基线的作用‎价值网络直接参与策略提升‎智能体不能独立做决策,‎需要所有智能体的观测 \ No newline at end of file +]]>‎Reinforcement ‎Learning‎value-based‎policy-based‎一般方法‎目标函数‎策略梯度定理‎随机梯度——策略梯度的无偏估计‎策略网络提升‎带基线的策略梯度方法‎带基线的策略梯度定理——b是不依赖于A的任意‎函数‎随机梯度线‎REINFORCE‎折扣回报‎动作价值是折扣回报的期望‎用折扣回报的观测值蒙特卡洛近似动作价值‎策略网络提升‎带基线的REINFORCE‎策略网络‎折扣回报‎基线——价值网络做出的预测‎带基线的策略梯度‎梯度上升‎价值网络‎损失函数‎损失函数的梯度‎梯度下降‎Actor-Critic‎策略网络‎用价值网络近似动作价值‎策略网络提升‎价值网络‎TD目标‎损失函数‎损失函数梯度‎梯度下降‎Advantage Actor-Critic (A2C)‎策略网络‎贝尔曼公式‎优势函数(Advantage function)‎近似策略梯度‎策略网络提升‎价值网络‎贝尔曼公式‎TD目标‎损失函数‎损失函数的梯度‎梯度下降‎TRPO‎策略目标‎Multi-agent‎完全合作关系‎multi-agent cooperative A2C(MAC-A2C)‎策略网络‎动作A的概率密度函数‎合作关系 MARL 的策略梯度定理‎随机梯度——策略梯度的无偏估计‎策略网络提升‎价值网络‎观测‎TD目标‎损失函数‎损失函数的梯度‎梯度下降‎DP‎策略迭代‎策略评估‎策略提升‎价值迭代‎TD‎价值函数的蒙特卡洛‎价值函数的时序差分‎Sarsa‎在线策略‎多步Sarsa‎使用n步的奖励,然后使用之后状态的价值估计‎动作价值函数更新‎Q-Learning‎离线策略‎蒙特卡洛是无偏的,但有较大的方差;时序差分‎是有偏的,但方差小‎MDP‎马尔科夫过程‎马尔科夫奖励过程‎回报‎价值函数‎马尔科夫决策过程‎策略‎状态价值函数‎动作价值函数‎贝尔曼期望方程‎蒙特卡洛方法‎MDP状态价值‎一条序列只计算一次回报,也就是这条序列第一‎次出现该状态是计算后面的累积奖励,而后面再‎出现该状态时,该状态就被忽略了使‎两种不同的方法‎贝尔曼最优方程‎价值网络只起到基线的作用‎价值网络直接参与策略提升‎智能体不能独立做决策,‎需要所有智能体的观测‎结合二者的优势 \ No newline at end of file diff --git a/Reinforcement Learning.xmind b/Reinforcement Learning.xmind index 999f9e7..e079ca5 100644 Binary files a/Reinforcement Learning.xmind and b/Reinforcement Learning.xmind differ