强化学习

  强化学习注重智能体(agent)与环境之间的交互式学习:

  • 强化学习的数据集不是训练初始阶段就有的,而是来自智能体与环境交互才能获得;
  • 强化学习不追求单步决策的最优策略,而是追求与环境交互获得的长期累积奖励。强化学习需要从整体上衡量整个交互过程。智能体在做决策时,会更加偏向于历史交互中带来更多奖励的动作。同时正如发现这些动作一样,未曾选择的动作中可能蕴藏着更优的决策,这鼓励着智能体尝试未曾选择的动作。因此智能体需要平衡利用(exploitation)和探索(exploration)。

马尔可夫决策过程

 通常使用马尔可夫决策过程(Markov Decision Process,MDP)来描述强化学习问题。马尔可夫决策过程过程定义为一个六元组M=(S,A,P,r,ρ0,γ)M=(\mathcal{S},\mathcal{A},P,r,\rho_0,\gamma)M=(S,A,P,r,ρ0​,γ):

  • S\mathcal{S}S表示所有状态(state)的集合,也称为状态空间。状态空间的大小可以是有限的,也可以是无限的。
  • ρ0(s0)\rho_0(s_0)ρ0​(s0​)表示初始状态s0s_0s0​的分布。
  • A\mathcal{A}A表示所有动作(action)的集合,也称为动作空间。动作空间同样可以是有限的,也可以是无限的。
  • P∈R(∣S∣×∣A∣)×∣S∣P\in \mathbb{R}^{(|\mathcal{S}|\times|\mathcal{A}|)\times|\mathcal{S}|}P∈R(∣S∣×∣A∣)×∣S∣表示状态转移概率(state transition probability)。具体来说,P(s′∣s,a)P(s^{\prime}|s,a)P(s′∣s,a)表示在状态sss上执行动作aaa,状态转移到状态s′s^{\prime}s′的概率。显然,对于任意(s,a,s′)(s,a,s^{\prime})(s,a,s′)而言,都有0≤P(s′∣s,a)≤10\le P(s^{\prime}|s,a)\le 10≤P(s′∣s,a)≤1,并且∑s′P(s′∣s,a)=1\sum\limits_{s^{\prime}}P(s^{\prime}|s,a)=1s′∑​P(s′∣s,a)=1。
  • r∈R∣S∣×∣A∣×∣S∣r \in \mathbb{R}^{|\mathcal{S}|\times |\mathcal{A}| \times |\mathcal{\mathcal{S}}|}r∈R∣S∣×∣A∣×∣S∣表示状态转移过程的奖励函数(reward function)。r(st,at,st+1)r(s_t,a_t,s_{t+1})r(st​,at​,st+1​)简记作为rtr_trt​,表示在状态sts_tst​上执行动作ata_tat​后转移到状态st+1s_{t+1}st+1​得到的数值奖励。
  • γ\gammaγ表示状态转移过程中的折扣系数(discount coefficient),通常在区间(0,1)(0,1)(0,1)中。

 不同设定的马尔可夫决策过程,会影响到强化学习算法设计以及理论分析。马尔可夫决策过程有一个重要性质——马尔可夫性质P(st∣s0,a0,s1,a1,⋯,st−1,at−1)=P(st∣st−1,at−1)P(s_t|s_0,a_0,s_1,a_1,\cdots,s_{t-1},a_{t_-1})=P(s_t|s_{t-1},a_{t-1})P(st​∣s0​,a0​,s1​,a1​,⋯,st−1​,at−​1​)=P(st​∣st−1​,at−1​)表示下一个时间步的状态只受到当前状态和动作的影响。马尔可夫性质简化了交互过程中状态动作之间的相互影响。

 如上图所示是智能体与环境之间交互的示意图,首先从初始状态分布中产生一个初始状态s0s_0s0​。然后智能体采用策略π\piπ产生当前状态对应的动作a0a_0a0​,并在环境中执行动作a0a_0a0​。环境将根据智能体的行为产生对应的奖励r0r_0r0​和下一个状态s1s_1s1​。重复进行这个交互过程,智能体就可以得到一系列状态,动作和奖励,{s0,a0,r0,s1,a1,r1,⋯}\{s_0,a_0,r_0,s_1,a_1,r_1,\cdots\}{s0​,a0​,r0​,s1​,a1​,r1​,⋯},称为当前策略的一个轨迹(trajectory)。这个轨迹可以拆分成一个一个的(st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st​,at​,rt​,st+1​),将其称为状态转移样本。如果这个交互过程是周期的,那么智能体与环境交互一定的时间步之后,整个交互过程会重置。如果这个交互过程是无限期的,那么智能体与环境可以一直交互下去,直到触发终止条件。

强化学习的优化目标

 强化学习考虑智能体与环境交互产生的长期累积奖励。具体来说,对于每条轨迹,如果给未来的奖励加上折扣系数γ\gammaγ,可以计算一个累积奖励GtG_tGt​ Gt=∑i=tTγi−tri=rt+γ⋅rt+1+γ2⋅rt+2+⋯+γT−t⋅rTG_t = \sum\limits_{i=t}^T \gamma^{i-t} r_i=r_t+\gamma \cdot r_{t+1} + \gamma^2 \cdot r_{t+2}+ \cdots + \gamma^{T-t}\cdot r_{T}Gt​=i=t∑T​γi−tri​=rt​+γ⋅rt+1​+γ2⋅rt+2​+⋯+γT−t⋅rT​如果智能体和环境的交互是无限的,即T→∞T \rightarrow \inftyT→∞,此时累计奖励GtG_tGt​的计算公式为Gt=∑i=t∞γi−tri=rt+γ⋅rt+1+γ2⋅rt+2+γ3⋅rt+3+⋯G_t = \sum\limits_{i=t}^\infty \gamma^{i-t} r_i=r_t+\gamma \cdot r_{t+1} + \gamma^2 \cdot r_{t+2}+ \gamma^3 \cdot r_{t+3} +\cdots Gt​=i=t∑∞​γi−tri​=rt​+γ⋅rt+1​+γ2⋅rt+2​+γ3⋅rt+3​+⋯折扣系数通常在0到1之间,从而使得以上优化目标在无穷时间步的情况下具有数学意义的上界,便于研究分析。折扣系数越趋近于0,优化目标越注重短期收益;越趋近于1,优化目标越注重长期累积收益。如果有两个策略,一个策略在初始步中具有短暂非常高的奖励,但之后得分较低;另一个策略在整个过程中都保持着比较稳定的奖励。这两个策略长期累积奖励是一样的。平均累积奖励将无法区分这两种策略。折扣累积奖励在折扣系数趋于0时将更加偏好第一个策略。强化学习领域通常使用折扣累积奖励作为优化目标。

值函数和贝尔曼方程

 值函数(value funciton)用来描述当前状态对应的预期累积奖励。值函数分为两种,状态值函数(state value function)和状态动作值函数(state-action value functon), 区别在于前者将状态映射到未来期望累积奖励,即S→R\mathcal{S}\rightarrow \mathbb{R}S→R;后者将状态动作映射到未来期望累积奖励,即S×A→R\mathcal{S}\times \mathcal{A}\rightarrow \mathbb{R}S×A→R。
  给定马尔可夫决策过程MMM和策略π\piπ,状态价值函数定义如下,Vπ(s)=Est,at,st+1,⋯,∼π[Gt∣st=s]=Est,at,st+1,⋯,∼π[∑i=t∞γi−tri∣st=s]=Est,at,st+1,⋯,∼π[rt+γ∑i=t+1∞γi−(t+1)ri∣st=s]=Est,at,st+1,⋯,∼π[rt+γGt+1∣st=s]\begin{aligned}V_{\pi}(s)&=\mathbb{E}_{s_t,a_t,s_{t+1},\cdots,\sim \pi}\left[G_t|s_t=s\right]\\&=\mathbb{E}_{s_t,a_t,s_{t+1},\cdots,\sim \pi}\left[\left.\sum\limits_{i=t}^{\infty}\gamma^{i-t}r_i \right|s_t=s \right]\\ &=\mathbb{E}_{s_t,a_t,s_{t+1},\cdots,\sim \pi}\left[\left. r_t+\gamma \sum\limits_{i=t+1}^{\infty}\gamma^{i-(t+1)}r_i \right|s_t =s\right]\\&=\mathbb{E}_{s_t,a_t,s_{t+1},\cdots,\sim \pi}\left[r_t+\gamma G_{t+1}|s_t=s\right]\end{aligned}Vπ​(s)​=Est​,at​,st+1​,⋯,∼π​[Gt​∣st​=s]=Est​,at​,st+1​,⋯,∼π​[i=t∑∞​γi−tri​∣∣​st​=s]=Est​,at​,st+1​,⋯,∼π​[rt​+γi=t+1∑∞​γi−(t+1)ri​∣∣​st​=s]=Est​,at​,st+1​,⋯,∼π​[rt​+γGt+1​∣st​=s]​其中,st,at,st+1,⋯,∼πs_t,a_t,s_{t+1},\cdots,\sim \pist​,at​,st+1​,⋯,∼π表示轨迹来自策略π\piπ与环境的交互。上式表示从状态st=ss_t=sst​=s出发,智能体使用策略π\piπ与环境交互得到的期望累积奖励。
  类似地,可以定义状态动作价值函数Qπ(s,a)=Est,at,st+1,at+1,st+2,⋯,∼π[Gt∣st=s,at=a]=Est+1,at+1,st+2,⋯,∼π[Gt∣st=s,at=a]=Est+1,at+1,st+2,⋯,∼π[∑i=t∞γi−tri∣st=s,at=a]=Est+1,at+1,st+2,⋯,∼π[rt+γ∑i=t+1∞γi−(t+1)ri∣st=s,at=a]=Est+1,at+1,st+2,⋯,∼π[rt+γGt+1∣st=s,at=a]\begin{aligned}Q_{\pi}(s,a)&=\mathbb{E}_{s_t,a_t,s_{t+1},a_{t+1},s_{t+2},\cdots,\sim \pi}\left[G_t|s_t=s,a_t=a\right]\\&=\mathbb{E}_{s_{t+1},a_{t+1},s_{t+2},\cdots,\sim \pi}\left[G_t|s_t=s,a_t=a\right]\\&=\mathbb{E}_{s_{t+1},a_{t+1},s_{t+2},\cdots,\sim \pi}\left[\left.\sum\limits_{i=t}^{\infty}\gamma^{i-t}r_i\right|s_t=s,a_t=a\right]\\&=\mathbb{E}_{s_{t+1},a_{t+1},s_{t+2},\cdots,\sim \pi}\left[\left. r_t+\gamma \sum\limits_{i=t+1}^{\infty}\gamma^{i-(t+1)}r_i \right|s_t=s,a_t=a \right]\\&=\mathbb{E}_{s_{t+1},a_{t+1},s_{t+2},\cdots,\sim \pi}\left[r_t+\gamma G_{t+1}|s_t=s,a_t=a\right]\end{aligned}Qπ​(s,a)​=Est​,at​,st+1​,at+1​,st+2​,⋯,∼π​[Gt​∣st​=s,at​=a]=Est+1​,at+1​,st+2​,⋯,∼π​[Gt​∣st​=s,at​=a]=Est+1​,at+1​,st+2​,⋯,∼π​[i=t∑∞​γi−tri​∣∣​st​=s,at​=a]=Est+1​,at+1​,st+2​,⋯,∼π​[rt​+γi=t+1∑∞​γi−(t+1)ri​∣∣​st​=s,at​=a]=Est+1​,at+1​,st+2​,⋯,∼π​[rt​+γGt+1​∣st​=s,at​=a]​表示从状态sts_tst​出发,执行动作ata_tat​后,智能体使用策略π\piπ与交互得到的期望累积奖励。
 贝尔曼方程(Bellman equation)是一个动态规划方程。它是强化学习算法中的核心等式,构建了状态转移前后值函数之间的递归关系。对于任意概率性策略π\piπ而言,状态价值的贝尔曼期望方程为:Vπ(s)=Est,at,st+1,⋯,∼π[Gt∣st=s]=Est,at,st+1,⋯,∼π[rt+γGt+1∣st=s]=∑a∈Aπ(a∣s)∑s′∈Sp(s′∣s,a)Est+1,at+1,st+2,⋯,∼π[r(s,a,s′)+γGt+1∣st+1=s′]=∑a∈Aπ(a∣s)∑s′∈Sp(s′∣s,a)[r(s,a,s′)+γEst+1,at+1,st+2,⋯,∼π[Gt+1∣st+1=s′]]=∑a∈Aπ(a∣s)∑s′∈Sp(s′∣s,a)[r(s,a,s′)+γVπ(s′)]]\begin{aligned}V_{\pi}(s)&=\mathbb{E}_{s_t,a_t,s_{t+1},\cdots,\sim \pi}\left[G_t|s_t=s\right]\\&=\mathbb{E}_{s_t,a_t,s_{t+1},\cdots,\sim \pi}\left[r_t+\gamma G_{t+1}|s_t=s\right]\\&=\sum\limits_{a \in \mathcal{A}} \pi(a | s)\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\mathbb{E}_{s_{t+1},a_{t+1},s_{t+2},\cdots,\sim \pi}\left[r(s,a,s^{\prime})+\gamma G_{t+1}|s_{t+1}=s^{\prime}\right]\\&=\sum\limits_{a \in \mathcal{A}} \pi(a | s)\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\left[r(s,a,s^{\prime})+\gamma \mathbb{E}_{s_{t+1},a_{t+1},s_{t+2},\cdots,\sim \pi}[G_{t+1}|s_{t+1}=s^{\prime}\right]]\\&=\sum\limits_{a \in \mathcal{A}} \pi(a | s)\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\left[r(s,a,s^{\prime})+\gamma V_{\pi}(s^{\prime})\right]]\end{aligned}Vπ​(s)​=Est​,at​,st+1​,⋯,∼π​[Gt​∣st​=s]=Est​,at​,st+1​,⋯,∼π​[rt​+γGt+1​∣st​=s]=a∈A∑​π(a∣s)s′∈S∑​p(s′∣s,a)Est+1​,at+1​,st+2​,⋯,∼π​[r(s,a,s′)+γGt+1​∣st+1​=s′]=a∈A∑​π(a∣s)s′∈S∑​p(s′∣s,a)[r(s,a,s′)+γEst+1​,at+1​,st+2​,⋯,∼π​[Gt+1​∣st+1​=s′]]=a∈A∑​π(a∣s)s′∈S∑​p(s′∣s,a)[r(s,a,s′)+γVπ​(s′)]]​
状态动作价值函数的贝尔曼期望方程为:
Qπ(s,a)=Est,at,st+1,at+1,st+2,⋯,∼π[Gt∣st=s,at=a]=Est+1,at+1,st+2,⋯,∼π[rt+γGt+1∣st=s,at=a]=∑s′∈Sp(s′∣s,a)Est+1,at+1,st+2,⋯,∼π[r(s,a,s′)+γGt+1∣st+1=s′]=∑s′∈Sp(s′∣s,a)[r(s,a,s′)+γEst+1,at+1,st+2,⋯,∼π[Gt+1∣st+1=s′]]=∑s′∈Sp(s′∣s,a)[r(s,a,s′)+γVπ(s′)]=∑s′∈Sp(s′∣s,a)[r(s,a,s′)+γ∑a′∈Aπ(a′∣s′)Qπ(s′,a′)]\begin{aligned}Q_{\pi}(s,a)&=\mathbb{E}_{s_t,a_t,s_{t+1},a_{t+1},s_{t+2},\cdots,\sim \pi}\left[G_t|s_t=s,a_t=a\right]\\&=\mathbb{E}_{s_{t+1},a_{t+1},s_{t+2},\cdots,\sim \pi}\left[r_t+\gamma G_{t+1}|s_t=s,a_t=a\right]\\&=\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\mathbb{E}_{s_{t+1},a_{t+1},s_{t+2},\cdots,\sim \pi}\left[r(s,a,s^{\prime})+\gamma G_{t+1}|s_{t+1}=s^{\prime}\right]\\&=\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\left[r(s,a,s^{\prime})+\gamma \mathbb{E}_{s_{t+1},a_{t+1},s_{t+2},\cdots,\sim \pi}[G_{t+1}|s_{t+1}=s^{\prime}\right]]\\&=\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\left[r(s,a,s^{\prime})+\gamma V_\pi(s^{\prime})\right]\\&=\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\left[r(s,a,s^{\prime})+\gamma \sum\limits_{a^{\prime}\in \mathcal{A}}\pi(a^{\prime}|s^{\prime})Q_{\pi}(s^{\prime},a^{\prime})\right]\end{aligned}Qπ​(s,a)​=Est​,at​,st+1​,at+1​,st+2​,⋯,∼π​[Gt​∣st​=s,at​=a]=Est+1​,at+1​,st+2​,⋯,∼π​[rt​+γGt+1​∣st​=s,at​=a]=s′∈S∑​p(s′∣s,a)Est+1​,at+1​,st+2​,⋯,∼π​[r(s,a,s′)+γGt+1​∣st+1​=s′]=s′∈S∑​p(s′∣s,a)[r(s,a,s′)+γEst+1​,at+1​,st+2​,⋯,∼π​[Gt+1​∣st+1​=s′]]=s′∈S∑​p(s′∣s,a)[r(s,a,s′)+γVπ​(s′)]=s′∈S∑​p(s′∣s,a)[r(s,a,s′)+γa′∈A∑​π(a′∣s′)Qπ​(s′,a′)]​
 由上公式推导可以发现状态价值函数和状态动作价值函数可以相互转换
Vπ(s)=∑a∈Aπ(a∣s)Qπ(s,a)Qπ(s,a)=r(s,a)+γ∑s′∈SP(s′∣s,a)V(s′)\begin{aligned}V_{\pi}(s)&=\sum\limits_{a\in \mathcal{A}}\pi(a|s)Q_{\pi}(s,a)\\Q_{\pi}(s,a)&=r(s,a)+\gamma\sum\limits_{s^{\prime}\in \mathcal{S}}P(s^{\prime}|s,a)V(s^{\prime})\end{aligned}Vπ​(s)Qπ​(s,a)​=a∈A∑​π(a∣s)Qπ​(s,a)=r(s,a)+γs′∈S∑​P(s′∣s,a)V(s′)​

π(a∣s)\pi(a|s)π(a∣s)和p(s′∣s,a)p(s^{\prime}|s,a)p(s′∣s,a)的探讨

 当前状态sss,执行动作aaa,和下一状态s′s^{\prime}s′,以及相关的概率分布π(a∣s)\pi(a|s)π(a∣s)和p(s′∣s,a)p(s^{\prime}|s,a)p(s′∣s,a)的关系示意图如下所示。策略π(a∣s)\pi(a|s)π(a∣s)是状态价值函数VVV和状态动作价值函数QQQ里非常重要的一个概率分布,它表示的是给定状态sss,动作aaa的概率分布。当π\piπ是确定性策略的时候,即给定状态sss后,输出的动作aaa就是明确的,则有π(a∣s)=1\pi(a|s)=1π(a∣s)=1或π(s)=a\pi(s)=aπ(s)=a。当π\piπ是一个随机性策略的时候,即给定状态sss后,输出的动作aaa是一个概率分布,则有a∼π(⋅∣s)a \sim \pi(\cdot|s)a∼π(⋅∣s)。

 转移概率p(s′∣s,a)p(s^{\prime}|s,a)p(s′∣s,a)是状态动作价值函数QQQ中一个非常重要的概率分布,它表示的是给定当前状态sss和动作aaa,下一个状态s′s^{\prime}s′的概率分布。这里需要值得注意的是,动作空间A\mathcal{A}A的划分的不同会对转移概率p(s′∣s,a)p(s^{\prime}|s,a)p(s′∣s,a)有很直接的影响。中国象棋棋盘里“仕”只能在四宫格里进行对角走动,假定当前状态sss表示的是“仕”在四宫格的中心位置,执行动作空间A1={\mathcal{A_1}=\{A1​={仕五进六,仕五进四,仕五退六,仕五退四}\}}里个一个动作aaa,进入到一下个状态s′s^{\prime}s′,此时则有转移概率p(si′∣s1,ai)=1(i∈{1,2,3,4})p(s_i^{\prime}|s_1,a_i)=1(i\in\{1,2,3,4\})p(si′​∣s1​,ai​)=1(i∈{1,2,3,4}),即给定当前状态sss和动作aaa,那么下一个状态s′s^{\prime}s′就确定了。

如下图所示,当把动作空间划分为A2={\mathcal{A_2}=\{A2​={进仕,退仕}\}},相对动作空间A1\mathcal{A_1}A1​的划分颗粒度更大,其中“进仕”这个动作又可以划分为仕五进六,仕五进四这两个动作;“退仕”这个动作又可以划分为仕五进六,仕五进四这两个动作。此时给定当前状态sss和动作aaa,那么下一个状态s′s^{\prime}s′具有概率性,即0≤p(si′∣s1,ak)≤1(k∈{1,2},i∈{1,2,3,4})0 \le p(s_i^{\prime}|s_1,a_k)\le1(k\in \{1,2\}, i\in\{1,2,3,4\})0≤p(si′​∣s1​,ak​)≤1(k∈{1,2},i∈{1,2,3,4})。

相关定理证明

定理1:给定一个策略π\piπ,状态价值函数Vπ(s)V_\pi(s)Vπ​(s)的贝尔曼算子M\mathcal{M}M为M[Vπ(s)]=∑a∈Aπ(a∣s)∑s′∈Sp(s′∣s,a)[r(s,a,s′)+γVπ(s′)],∀s∈S\mathcal{M}[V_\pi(s)]=\sum\limits_{a \in \mathcal{A}} \pi(a | s)\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\left[r(s,a,s^{\prime})+\gamma V_{\pi}(s^{\prime})\right],\quad \forall s \in \mathcal{S}M[Vπ​(s)]=a∈A∑​π(a∣s)s′∈S∑​p(s′∣s,a)[r(s,a,s′)+γVπ​(s′)],∀s∈S可知状态价值函数Vπ(s)V_\pi(s)Vπ​(s)的贝尔曼算子M\mathcal{M}M是收敛的。

证明:在策略π\piπ下,给定任意两个在状态sss下的状态价值函数Vπ1(s)V_\pi^1(s)Vπ1​(s)和Vπ2(s)V_\pi^2(s)Vπ2​(s),则有∣M[Vπ1(s)]−M[Vπ2(s)]∣=∣∑α∈Aπ(a∣s)∑s′∈Sp(s′∣s,a)[γ(Vπ1(s′)−Vπ2(s′))]∣≤γ∑α∈Aπ(a∣s)∑s′∈Sp(s′∣s,a)∣Vπ1(s′)−Vπ2(s′)∣≤γ∑α∈Aπ(a∣s)∑s′∈Sp(s′∣s,a)(max⁡s′′∈S∣Vπ1(s′′)−Vπ2(s′′)∣)=γmax⁡s′′∈S∣Vπ1(s′′)−Vπ2(s′′)∣=γ∥Vπ1−Vπ2∥∞\begin{aligned}\left|\mathcal{M}[V_\pi^1 (s)]-\mathcal{M}[V_\pi^2 (s)]\right|&=\left|\sum\limits_{\alpha\in \mathcal{A}}\pi(a|s)\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\left[\gamma(V^1_\pi(s^{\prime})-V^2_\pi(s^{\prime}))\right]\right|\\&\le\gamma \sum\limits_{\alpha\in \mathcal{A}}\pi(a|s)\sum\limits_{s^{\prime}\in S}p(s^{\prime}|s,a)|V_\pi^{1}(s^{\prime})-V_\pi^2(s^{\prime})|\\&\le\gamma \sum\limits_{\alpha \in \mathcal{A}}\pi(a|s)\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\left(\max\limits_{s^{\prime\prime}\in \mathcal{S}}\left|V_\pi^1(s^{\prime\prime})-V_\pi^2(s^{\prime\prime})\right|\right)\\&=\gamma \max\limits_{s^{\prime\prime}\in \mathcal{S}}|V_\pi^1(s^{\prime\prime})-V_\pi^2(s^{\prime\prime})|\\&=\gamma\|V^1_{\pi}-V^2_{\pi}\|_{\infty}\end{aligned}∣∣​M[Vπ1​(s)]−M[Vπ2​(s)]∣∣​​=∣∣​α∈A∑​π(a∣s)s′∈S∑​p(s′∣s,a)[γ(Vπ1​(s′)−Vπ2​(s′))]∣∣​≤γα∈A∑​π(a∣s)s′∈S∑​p(s′∣s,a)∣Vπ1​(s′)−Vπ2​(s′)∣≤γα∈A∑​π(a∣s)s′∈S∑​p(s′∣s,a)(s′′∈Smax​∣∣​Vπ1​(s′′)−Vπ2​(s′′)∣∣​)=γs′′∈Smax​∣Vπ1​(s′′)−Vπ2​(s′′)∣=γ∥Vπ1​−Vπ2​∥∞​​由上公式可以推知,给定一个状态空间S\mathcal{S}S,则有∥M[Vπ1]−M[Vπ2]∥∞≤γ∥Vπ1−Vπ2∥∞\left\|\mathcal{M}[V_\pi^1]-\mathcal{M}[V_\pi^2 ]\right\|_\infty\le\gamma \left\|V^1_\pi - V^2_\pi\right\|_\infty∥∥​M[Vπ1​]−M[Vπ2​]∥∥​∞​≤γ∥∥​Vπ1​−Vπ2​∥∥​∞​当γ<1\gamma<1γ<1的时,状态价值函数的贝尔曼算子M\mathcal{M}M是一个收缩映射,进而则有∥Mn+1[Vπ]−Mn[Vπ]∥∞≤γ∥Mn[Vπ]−Mn−1[Vπ]∥∞≤γ2∥Mn−1[Vπ]−Mn−2[Vπ]∥∞≤γ3∥Mn−2[Vπ]−Mn−3[Vπ]∥∞⋮≤γn−1∥M2[Vπ]−M[Vπ]∥∞≤γn∥M[Vπ]−Vπ∥∞\begin{aligned}\left\|\mathcal{M}^{n+1}[V_\pi]-\mathcal{M}^n[V_\pi]\right\|_\infty &\le \gamma \left\|\mathcal{M}^{n}[V_\pi]-\mathcal{M}^{n-1}[V_\pi]\right\|_\infty\\ &\le \gamma^2 \left\|\mathcal{M}^{n-1}[V_\pi]-\mathcal{M}^{n-2}[V_\pi]\right\|_\infty \\ &\le \gamma^3\left\|\mathcal{M}^{n-2}[V_\pi]-\mathcal{M}^{n-3}[V_\pi]\right\|_\infty \\&\quad \quad \quad \quad \quad \vdots\\ &\le \gamma^{n-1} \left\|\mathcal{M}^{2}[V_\pi]-\mathcal{M}[V_\pi]\right\|_\infty \\ &\le \gamma^n\left\|\mathcal{M}[V_\pi]-V_\pi\right\|_\infty\end{aligned}∥∥​Mn+1[Vπ​]−Mn[Vπ​]∥∥​∞​​≤γ∥∥​Mn[Vπ​]−Mn−1[Vπ​]∥∥​∞​≤γ2∥∥​Mn−1[Vπ​]−Mn−2[Vπ​]∥∥​∞​≤γ3∥∥​Mn−2[Vπ​]−Mn−3[Vπ​]∥∥​∞​⋮≤γn−1∥∥​M2[Vπ​]−M[Vπ​]∥∥​∞​≤γn∥M[Vπ​]−Vπ​∥∞​​当nnn趋近于无穷时,Mn+1[Vπ]\mathcal{M}^{n+1}[V_\pi]Mn+1[Vπ​]和Mn[Vπ]\mathcal{M}^{n}[V_\pi]Mn[Vπ​]的差值会趋近于0,所以序列{Vπ,M[Vπ],M2[Vπ],⋯}\{V_\pi, \mathcal{M}[V_\pi],\mathcal{M}^2[V_\pi],\cdots\}{Vπ​,M[Vπ​],M2[Vπ​],⋯}是收敛的,并且会收敛到一个不动点上。

定理2:给定任意两个确定的策略π\piπ和π∗\pi^*π∗,对任意状态s∈Ss \in \mathcal{S}s∈S,如果有Qπ(s,π∗(s))≥Vπ(s)Q_\pi(s,\pi^{*}(s))\ge V_\pi(s)Qπ​(s,π∗(s))≥Vπ​(s)其中π∗(s)∈A\pi^{*}(s)\in \mathcal{A}π∗(s)∈A,那么则有Vπ∗(s)≥Vπ(s),s∈SV_{\pi^{*}}(s)\ge V_{\pi}(s),\quad s\in\mathcal{S}Vπ∗​(s)≥Vπ​(s),s∈S此时则称策略π∗\pi^{*}π∗会优于策略π\piπ。

证明:已知给定任意两个确定的策略π\piπ和π∗\pi^*π∗,且对任意状态s∈Ss \in \mathcal{S}s∈S,有Qπ(s,π∗(s))≥Vπ(s)Q_\pi(s,\pi^{*}(s))\ge V_\pi(s)Qπ​(s,π∗(s))≥Vπ​(s)进而可推知Qπ(s,π∗(s))=Est,at∼π∗,st+1∼π[rt+γVπ(st+1)∣st=s,at=π∗(s)]=Est,at∼π∗,st+1∼π[rt+γVπ(st+1)∣st=s]≤Est,at∼π∗,st+1∼π[rt+γQπ(st+1,π∗(st+1))∣st=s,at=π∗(s)]=Est,at∼π∗,st+1∼π[rt+γEst+1,at+1∼π∗,st+2∼π[rt+2+γVπ(st+2)]∣st+1,at+1=π∗(st+1)∣st=s]=Est,at,st+1,at+1∼π∗,st+2∼π[rt+γrt+1+γ2Vπ(st+2)∣st=s]≤Est,at,st+1,at+1,st+2∼π∗,st+3∼π[rt+γrt+1+γ2rt+2+γ3Vπ(st+3)∣st=s]⋮≤Est,at,st+1,at+1,st+2,⋯∼π∗[rt+γrt+1+γ2rt+2+γ3rt+3+⋯∣st=s]=Vπ∗(s)\begin{aligned}Q_\pi(s,\pi^{*}(s))&=\mathbb{E}_{s_t,a_t \sim \pi ^{*},s_{t+1}\sim \pi}[r_t +\gamma V_\pi(s_{t+1})|s_t=s,a_t=\pi^{*}(s)]\\&=\mathbb{E}_{s_t,a_t \sim \pi ^{*},s_{t+1}\sim \pi}[r_t +\gamma V_\pi(s_{t+1})|s_t=s]\\&\le \mathbb{E}_{s_t,a_t \sim \pi ^{*},s_{t+1}\sim \pi}[r_t +\gamma Q_\pi(s_{t+1},\pi^{*}(s_{t+1}))|s_t=s,a_t=\pi^{*}(s)]\\&=\mathbb{E}_{s_t,a_t \sim \pi ^{*},s_{t+1}\sim \pi}[r_t +\gamma \mathbb{E}_{s_{t+1},a_{t+1}\sim \pi^{*},s_{t+2}\sim \pi}[r_{t+2}+\gamma V_{\pi}(s_{t+2})]|s_{t+1},a_{t+1}=\pi^{*}(s_{t+1})|s_t=s]\\&=\mathbb{E}_{s_t,a_t,s_{t+1},a_{t+1}\sim \pi^{*},s_{t+2}\sim \pi}[r_{t}+\gamma r_{t+1}+\gamma^2 V_\pi(s_{t+2})|s_t=s]\\&\le\mathbb{E}_{s_t,a_t,s_{t+1},a_{t+1},s_{t+2}\sim \pi^{*},s_{t+3}\sim \pi}[r_{t}+\gamma r_{t+1}+\gamma^2 r_{t+2} + \gamma^3 V_\pi(s_{t+3})|s_t=s]\\&\quad \quad \quad \quad \vdots\\&\le \mathbb{E}_{s_t,a_t,s_{t+1},a_{t+1},s_{t+2},\cdots\sim \pi^{*}}[r_{t}+\gamma r_{t+1}+\gamma^2 r_{t+2} + \gamma^3 r_{t+3}+\cdots|s_t=s]\\&=V_{\pi^{*}}(s)\end{aligned}Qπ​(s,π∗(s))​=Est​,at​∼π∗,st+1​∼π​[rt​+γVπ​(st+1​)∣st​=s,at​=π∗(s)]=Est​,at​∼π∗,st+1​∼π​[rt​+γVπ​(st+1​)∣st​=s]≤Est​,at​∼π∗,st+1​∼π​[rt​+γQπ​(st+1​,π∗(st+1​))∣st​=s,at​=π∗(s)]=Est​,at​∼π∗,st+1​∼π​[rt​+γEst+1​,at+1​∼π∗,st+2​∼π​[rt+2​+γVπ​(st+2​)]∣st+1​,at+1​=π∗(st+1​)∣st​=s]=Est​,at​,st+1​,at+1​∼π∗,st+2​∼π​[rt​+γrt+1​+γ2Vπ​(st+2​)∣st​=s]≤Est​,at​,st+1​,at+1​,st+2​∼π∗,st+3​∼π​[rt​+γrt+1​+γ2rt+2​+γ3Vπ​(st+3​)∣st​=s]⋮≤Est​,at​,st+1​,at+1​,st+2​,⋯∼π∗​[rt​+γrt+1​+γ2rt+2​+γ3rt+3​+⋯∣st​=s]=Vπ∗​(s)​进而则有Vπ∗(s)≥Qπ(s,π∗(s))≥Vπ(s),s∈SV_{\pi^{*}}(s)\ge Q_\pi(s,\pi^{*}(s))\ge V_{\pi}(s),\quad s\in\mathcal{S}Vπ∗​(s)≥Qπ​(s,π∗(s))≥Vπ​(s),s∈S
 由定理2可知,给定一个策略π\piπ,已知当前状态sss,根据状态动作函数Qπ(s,a)Q_\pi(s,a)Qπ​(s,a)找到一个最优动作所得到的新的策略π∗\pi^{*}π∗会优于或等于原始策略π\piπ。如果对所有的状态s∈Ss\in \mathcal{S}s∈S都这么操作,则可以得到新的策略π∗\pi^{*}π∗。当策略改进方法收敛到最优策略时,则有Vπ∗(s)=Vπ(s)V_{\pi^{*}}(s)=V_\pi(s)Vπ∗​(s)=Vπ​(s),此时则有
Vπ∗(s)=∑a∈Aπ∗(a∣s)Qπ∗(s,a)=∑a∈Aπ∗(a∣s)max⁡a∈AQπ(s,a)=max⁡a∈AQπ(s,a)=max⁡a∈A∑s′∈Sp(s′∣s,a)[r(s,a,s′)+γVπ(s′)]=max⁡a∈A∑s′∈Sp(s′∣s,a)[r(s,a,s′)+γVπ∗(s′)]\begin{aligned}V_{\pi^{*}}(s)&=\sum\limits_{a\in\mathcal{A}}\pi^{*}(a|s)Q_{\pi^{*}}(s,a)\\&=\sum\limits_{a\in\mathcal{A}}\pi^{*}(a|s)\max\limits_{a \in \mathcal{A}}Q_\pi(s,a)=\max\limits_{a\in\mathcal{A}}Q_{\pi}(s,a)\\&=\max\limits_{a\in \mathcal{A}}\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)[r(s,a,s^{\prime})+\gamma V_{\pi}(s^{\prime})]\\&=\max\limits_{a\in \mathcal{A}}\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)[r(s,a,s^{\prime})+\gamma V_{\pi^{*}}(s^{\prime})]\end{aligned}Vπ∗​(s)​=a∈A∑​π∗(a∣s)Qπ∗​(s,a)=a∈A∑​π∗(a∣s)a∈Amax​Qπ​(s,a)=a∈Amax​Qπ​(s,a)=a∈Amax​s′∈S∑​p(s′∣s,a)[r(s,a,s′)+γVπ​(s′)]=a∈Amax​s′∈S∑​p(s′∣s,a)[r(s,a,s′)+γVπ∗​(s′)]​最后一个等式就是贝尔曼最优方程。

定理3:状态价值函数V(s)V(s)V(s)的贝尔曼最优算子M∗\mathcal{M_{*}}M∗​为M∗[V(s)]=max⁡a∈A∑s′∈Sp(s′∣s,a)[r(s,a,s′)+γV(s′)],∀s∈S\mathcal{M}_{*}[V(s)]=\max\limits_{a\in \mathcal{A}}\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\left[r(s,a,s^{\prime})+\gamma V(s^{\prime})\right],\quad \forall s \in \mathcal{S}M∗​[V(s)]=a∈Amax​s′∈S∑​p(s′∣s,a)[r(s,a,s′)+γV(s′)],∀s∈S则可知状态价值函数V(s)V(s)V(s)的贝尔曼最优算子M∗\mathcal{M}_{*}M∗​是收敛的。

证明:状态价值函数V(s)V(s)V(s)的贝尔曼最优算子M∗\mathcal{M_{*}}M∗​为M∗[V(s)]=max⁡a∈A∑s′∈Sp(s′∣s,a)[r(s,a,s′)+γV(s′)]],∀s∈S\mathcal{M}_{*}[V(s)]=\max\limits_{a\in \mathcal{A}}\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a)\left[r(s,a,s^{\prime})+\gamma V(s^{\prime})\right]],\quad \forall s \in \mathcal{S}M∗​[V(s)]=a∈Amax​s′∈S∑​p(s′∣s,a)[r(s,a,s′)+γV(s′)]],∀s∈S则有∣M∗[V1(s)]−M∗[V2(s)]∣=∣max⁡a1∈A∑s′∈Sp(s′∣s,a1)[r(s,a1,s′)+γV1(s′)]−max⁡a2∈A∑s′∈Sp(s′∣s,a2)[r(s,a2,s′)+γV2(s′)]∣≤∣max⁡a1∈A(∑s′∈Sp(s′∣s,a1)[r(s,a1,s′)+γV1(s′)]−∑s′∈Sp(s′∣s,a1)[r(s,a1,s′)+γV2(s′)])∣=γ∣max⁡a∈A(∑s′∈Sp(s′∣s,a)[V1(s′)−V2(s′)])∣≤γmax⁡a∈A∣∑s′∈Sp(s′∣s,a)[V1(s′)−V2(s′)]∣≤γmax⁡a∈A[∑s′∈Sp(s′∣s,a)∣V1(s′)−V2(s′)∣]≤γmax⁡a∈A[∑s′∈Sp(s′∣s,a)∥V1(s)−V2(s)∥∞]=γmax⁡a∈A∥V1(s)−V2(s)∥∞=γ∥V1(s)−V2(s)∥∞\begin{aligned}\left|\mathcal{M}_{*}[V^1(s)]-\mathcal{M}_{*}[V^2(s)]\right|&=\left|\max\limits_{a_1\in \mathcal{A}}\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a_1)\left[r(s,a_1,s^{\prime})+\gamma V^1(s^{\prime})\right]-\max\limits_{a_2\in \mathcal{A}}\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a_2)\left[r(s,a_2,s^{\prime})+\gamma V^2(s^{\prime})\right]\right|\\& \le \left|\max\limits_{a_1\in \mathcal{A}}\left(\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a_1)\left[r(s,a_1,s^{\prime})+\gamma V^1(s^{\prime})\right]-\sum\limits_{s^{\prime}\in \mathcal{S}}p(s^{\prime}|s,a_1)\left[r(s,a_1,s^{\prime})+\gamma V^2(s^{\prime})\right]\right)\right|\\&=\gamma\left|\max\limits_{a \in \mathcal{A}}\left(\sum\limits_{s^{\prime}\in\mathcal{S}}p(s^{\prime}|s,a)[V^1(s^{\prime})-V^2(s^{\prime})]\right)\right|\\&\le \gamma\max\limits_{a \in \mathcal{A}}\left|\sum\limits_{s^{\prime}\in\mathcal{S}}p(s^{\prime}|s,a)[V^1(s^{\prime})-V^2(s^{\prime})]\right|\\&\le \gamma\max\limits_{a \in \mathcal{A}}\left[\sum\limits_{s^{\prime}\in\mathcal{S}}p(s^{\prime}|s,a)|V^1(s^{\prime})-V^2(s^{\prime})|\right]\\&\le \gamma\max\limits_{a \in \mathcal{A}}\left[\sum\limits_{s^{\prime}\in\mathcal{S}}p(s^{\prime}|s,a)\|V^1(s)-V^2(s)\|_{\infty}\right]\\&=\gamma \max\limits_{a \in \mathcal{A}}\|V^{1}(s)-V^{2}(s)\|_{\infty}=\gamma \|V^{1}(s)-V^{2}(s)\|_{\infty}\end{aligned}∣∣​M∗​[V1(s)]−M∗​[V2(s)]∣∣​​=∣∣​a1​∈Amax​s′∈S∑​p(s′∣s,a1​)[r(s,a1​,s′)+γV1(s′)]−a2​∈Amax​s′∈S∑​p(s′∣s,a2​)[r(s,a2​,s′)+γV2(s′)]∣∣​≤∣∣​a1​∈Amax​(s′∈S∑​p(s′∣s,a1​)[r(s,a1​,s′)+γV1(s′)]−s′∈S∑​p(s′∣s,a1​)[r(s,a1​,s′)+γV2(s′)])∣∣​=γ∣∣​a∈Amax​(s′∈S∑​p(s′∣s,a)[V1(s′)−V2(s′)])∣∣​≤γa∈Amax​∣∣​s′∈S∑​p(s′∣s,a)[V1(s′)−V2(s′)]∣∣​≤γa∈Amax​[s′∈S∑​p(s′∣s,a)∣V1(s′)−V2(s′)∣]≤γa∈Amax​[s′∈S∑​p(s′∣s,a)∥V1(s)−V2(s)∥∞​]=γa∈Amax​∥V1(s)−V2(s)∥∞​=γ∥V1(s)−V2(s)∥∞​​当γ<1\gamma<1γ<1的时,状态价值函数的贝尔曼最优算子M∗\mathcal{M}_{*}M∗​是一个收缩映射,进而则有∥M∗n+1[V]−M∗n[V]∥∞≤γ∥M∗n[V]−M∗n−1[V]∥∞≤γ2∥M∗n−1[V]−M∗n−2[V]∥∞≤γ3∥M∗n−2[V]−M∗n−3[V]∥∞⋮≤γn−1∥M∗2[V]−M∗[V]∥∞≤γn∥M∗[V]−V∥∞\begin{aligned}\left\|\mathcal{M}^{n+1}_*[V]-\mathcal{M}^n_*[V]\right\|_\infty &\le \gamma \left\|\mathcal{M}^{n}_*[V]-\mathcal{M}^{n-1}_*[V]\right\|_\infty\\ &\le \gamma^2 \left\|\mathcal{M}^{n-1}_*[V]-\mathcal{M}^{n-2}_*[V]\right\|_\infty \\ &\le \gamma^3\left\|\mathcal{M}^{n-2}_*[V]-\mathcal{M}^{n-3}_*[V]\right\|_\infty \\&\quad \quad \quad \quad \quad \vdots\\ &\le \gamma^{n-1} \left\|\mathcal{M}^{2}_*[V]-\mathcal{M}^*[V]\right\|_\infty \\ &\le \gamma^n\left\|\mathcal{M}_*[V]-V\right\|_\infty\end{aligned}∥∥​M∗n+1​[V]−M∗n​[V]∥∥​∞​​≤γ∥∥​M∗n​[V]−M∗n−1​[V]∥∥​∞​≤γ2∥∥​M∗n−1​[V]−M∗n−2​[V]∥∥​∞​≤γ3∥∥​M∗n−2​[V]−M∗n−3​[V]∥∥​∞​⋮≤γn−1∥∥​M∗2​[V]−M∗[V]∥∥​∞​≤γn∥M∗​[V]−V∥∞​​当nnn趋近于无穷时,M∗n+1[V]\mathcal{M}^{n+1}_*[V]M∗n+1​[V]和M∗n[V]\mathcal{M}^{n}_*[V]M∗n​[V]的差值会趋近于0,所以序列{V,M∗[V],M∗2[V],⋯}\{V, \mathcal{M}_*[V],\mathcal{M}^2_*[V],\cdots\}{V,M∗​[V],M∗2​[V],⋯}是收敛的,并且会收敛到一个不动点上。

强化学习之贝尔曼方程相关推荐

  1. 强化学习: 贝尔曼方程与马尔可夫决策过程

    强化学习: 贝尔曼方程与马尔可夫决策过程 一.简介 贝尔曼方程和马尔可夫决策过程是强化学习非常重要的两个概念,大部分强化学习算法都是围绕这两个概念进行操作.尤其是贝尔曼方程,对以后理解蒙特卡洛搜索.时 ...

  2. 强化学习之贝尔曼方程中文解释

    确定情况下一个状态下 此动作 到必然会到达下一个状态是确定的 一个状态下单个动作的贝尔曼方程为 当前状态能执行的动作个数分之一* (当前状态下)该动作的到达下一个状态的概率 * (从开始到当前状态当前 ...

  3. 强化学习9——贝尔曼方程

    一.基本概念 贝尔曼方程(Bellman Equation)也被称作动态规划方程(Dynamic Programming Equation),由理查·贝尔曼(Richard Bellman)发现. 贝 ...

  4. 综述—多智能体系统深度强化学习:挑战、解决方案和应用的回顾

    多智能体系统深度强化学习:挑战.解决方案和应用的回顾 摘要 介绍 背景:强化学习 前提 贝尔曼方程 RL方法 深度强化学习:单智能体 深度Q网络 DQN变体 深度强化学习:多智能体 挑战与解决方案 M ...

  5. 一文读懂AlphaGo背后的强化学习:它的背景知识与贝尔曼方程的原理

    作者 | Joshua Greaves 译者 | 刘畅,林椿眄 本文是强化学习名作--"Reinforcement Learning: an Introduction"一书中最为重 ...

  6. 什么是强化学习?(贝尔曼方程)

    文章目录 什么是强化学习?(贝尔曼方程) 3.贝尔曼方程(Bellman equation) 3.1贝尔曼期望方程(Bellman expectation equation) 3.2 贝尔曼最优方程( ...

  7. 贝尔曼方程怎么解_强化学习系列(下):贝尔曼方程

    在本文中,我们将学习贝尔曼方程和价值函数. 回报和返还(return) 正如前面所讨论的,强化学习agent如何最大化累积未来的回报.用于描述累积未来回报的词是返还,通常用R表示.我们还使用一个下标t ...

  8. (详细)强化学习--贝尔曼方程

    原文链接:https://zhuanlan.zhihu.com/p/86525700 我有一个疑问,就是在推导过程中,状态s不是变量,st 是t阶段的状态相当于是一个常数,那么为什么st=s,常数在等 ...

  9. 51cto强化学习(1)马尔可夫与贝尔曼方程学习笔记

    马尔可夫决策的要求: 1,能够检测到理想状态:比如我们想让强化学习算法来实现走迷宫,最后这个迷宫一定是可以走出的,倘若迷宫没有出口便不可以套用马尔可夫. 2,可以多次尝试:依然使用走迷宫的例子,我们可 ...

最新文章

  1. [JavaWebService-axis]-环境搭建
  2. 【AI初识境】深度学习模型评估,从图像分类到生成模型
  3. java 发送qq消息_php发送qq消息
  4. Qt Creator创建基于Qt Widget的应用程序
  5. 互联网的发展背离了其初衷吗?
  6. Java selenium 获取表格数据_Java+Selenium 如何参数化验证Table表格数据
  7. 资源放送丨《 Oracle RAC高并发系统的故障案例解析 - 2020云和恩墨大讲堂》PPT视频...
  8. 有没有想过,你眼中的SQL进阶,别人看来连入门都不是?
  9. 极域电子教室软件怎么脱离控制_新疆灵感科技技术汇总~LED控制卡常见软、硬件问题...
  10. 莫烦---Tensorflow学习
  11. 5G适合py还是java,5G比4G到底有啥好处?看完就彻底明白了
  12. 在线生成地理数据格式geojson
  13. 关于WEB服务器硬件配置,你了解多少
  14. 如何改写(paraphrase)英文句子?
  15. 基于互联网的项目管理——Microsoft Project Central 及其应用
  16. 中国知网论文查重算法和修改攻略
  17. 【论文翻译】The Quantum Internet: Networking Challenges in Distributed Quantum Computing
  18. 微信小程序聊天室 前后端源码附效果图和数据库结构图
  19. 爬虫学习:实现对彼岸图4k图片的下载
  20. 什么是RFID及其特点

热门文章

  1. CSV文件格式——方便好用个头最小的数据传递方式
  2. Simulink模型如何做单元测试
  3. introduce page
  4. A 'Brief' History of Neural Nets and Deep Learning, Part 4
  5. 如何锻炼深入思考能力
  6. windows C/C++ 内核对象、事件对象、信号量
  7. phpstorm官方下载地址
  8. Laravel + Elasticsearch 实现中文搜索
  9. matlab2018a出现error8怎么办
  10. pdf太大怎么压缩大小?