【RL】Temporal-Difference Learning(时序差分方法)

2024-02-20 08:04

本文主要是介绍【RL】Temporal-Difference Learning(时序差分方法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Lecture 7: Temporal-Difference Learning

TD learning of state values

TD learning通常指的是一大类 RL 算法

TD学习也指用于估计state value的特定算法。

TD learning of state values – Algorithm description

算法中需要的data/experience:

( s 0 , r 1 , s 1 , . . . , s t , r t + 1 , s t + 1 , ⋯ ) (s_0, r_1, s_1, ..., s_t, r_{t+1}, s_{t+1}, \cdots) (s0,r1,s1,...,st,rt+1,st+1,)或由给定的policy π \pi π生成的 { ( s t , r t + 1 ) , s t + 1 } \{ (s_t, r_{t+1}), s_{t+1} \} {(st,rt+1),st+1}

TD learning算法为:
v t + 1 ( s t ) = v t ( s t ) − α t ( s t ) [ v t ( s t ) − [ r t + 1 + γ v t ( s t + 1 ) ] ] , ( 1 ) v t + 1 ( s ) = v t ( s ) , ∀ s ≠ s t , ( 2 ) \begin{align*} &v_{t+1}(s_t)=v_t(s_t)-\alpha_t(s_t)\Big[v_t(s_t)-[r_{t+1}+\gamma v_t(s_{t+1})]\Big], \;\;\;\;\; (1) \\ &v_{t+1}(s)=v_t(s),\quad\forall s\neq s_t, \;\;\;\;\; (2) \end{align*} vt+1(st)=vt(st)αt(st)[vt(st)[rt+1+γvt(st+1)]],(1)vt+1(s)=vt(s),s=st,(2)
其中, t = 0 , 1 , 2 , ⋯ t = 0, 1, 2, \cdots t=0,1,2, v t ( s t ) v_t(s_t) vt(st)是针对 v π ( s t ) v_{\pi}(s_t) vπ(st)的估计的state value, α t ( s t ) \alpha_t(s_t) αt(st)是在时间 t t t s t s_t st的 learning rate(学习率)。

  • 在时间 t t t,仅更新已访问状态 s t s_t st 的值,而未访问状态 s ≠ s t s \ne s_t s=st 的值保持不变。

TD learning of state values – Algorithm properties

TD算法可以表示为:
v t + 1 ( s t ) ⏟ new estimate = v t ( s t ) ⏟ current estimate − α t ( s t ) [ v t ( s t ) − [ r t + 1 + γ v t ( s t + 1 ) ⏟ TD target  v ˉ t ] ⏞ TD error  δ t , ( 3 ) \underbrace{v_{t+1}(s_t)}_{\text{new estimate}}=\underbrace{v_t(s_t)}_{\text{current estimate}}-\alpha_t(s_t)[\overbrace{v_t(s_t)-[\underbrace{r_{t+1}+\gamma v_t(s_{t+1})}_{\text{TD target }\bar{v}_t}]}^{\text{TD error } \delta_t}, \;\;\;\;\;(3) new estimate vt+1(st)=current estimate vt(st)αt(st)[vt(st)[TD target vˉt rt+1+γvt(st+1)] TD error δt,(3)
其中:
v ‾ ≐ r t + 1 + γ v ( s t + 1 ) \overline{v} \doteq r_{t+1} + \gamma v(s_t + 1) vrt+1+γv(st+1)
被称为TD target;
δ t ≐ v ( s t ) − [ r t + 1 + γ v ( s t + 1 ) ] = v ( s t ) − v ˉ t \delta_t\doteq v(s_t)-[r_{t+1}+\gamma v(s_{t+1})]=v(s_t)-\bar{v}_t δtv(st)[rt+1+γv(st+1)]=v(st)vˉt
被称为 TD error;

很明显,新的估计 v t + 1 ( s t ) v_{t+1}(s_t) vt+1(st) 是当前估计 v t ( s t ) v_t(s_t) vt(st) 和 TD error的加权组合。

why is v ‾ t \overline{v}_t vt called the TD target?

这是因为算法使 v ( s t ) v(s_t) v(st)趋向于 v ‾ t \overline{v}_t vt

如下式:
v t + 1 ( s t ) = v t ( s t ) − α t ( s t ) [ v t ( s t ) − v ˉ t ] ⇒ v t + 1 ( s t ) − v ˉ t = v t ( s t ) − v ˉ t − α t ( s t ) [ v t ( s t ) − v ˉ t ] ⇒ v t + 1 ( s t ) − v ˉ t = [ 1 − α t ( s t ) ] [ v t ( s t ) − v ˉ t ] ⇒ ∣ v t + 1 ( s t ) − v ˉ t ∣ = ∣ 1 − α t ( s t ) ∣ ∣ v t ( s t ) − v ˉ t ∣ \begin{align*} &v_{t+1}(s_t)=v_t(s_t)-\alpha_t(s_t)[v_t(s_t)-\bar{v}_t] \\ \Rightarrow &v_{t+1}(s_t)-\bar{v}_t=v_t(s_t)-\bar{v}_t-\alpha_t(s_t)[v_t(s_t)-\bar{v}_t] \\ \Rightarrow &v_{t+1}(s_{t})-\bar{v}_{t}=[1-\alpha_{t}(s_{t})][v_{t}(s_{t})-\bar{v}_{t}] \\ \Rightarrow & |v_{t+1}(s_{t})-\bar{v}_{t}|=|1-\alpha_{t}(s_{t})||v_{t}(s_{t})-\bar{v}_{t}| \end{align*} vt+1(st)=vt(st)αt(st)[vt(st)vˉt]vt+1(st)vˉt=vt(st)vˉtαt(st)[vt(st)vˉt]vt+1(st)vˉt=[1αt(st)][vt(st)vˉt]vt+1(st)vˉt=∣1αt(st)∣∣vt(st)vˉt
因为 α t ( s t ) \alpha_t({s_t}) αt(st)是一个小的正数,故:
0 < 1 − α ( s t ) < 1 0 < 1-\alpha_(s_t) < 1 0<1α(st)<1
因此,
∣ v t + 1 ( s t ) − v ˉ t ∣ ≤ ∣ v ( s t ) − v ˉ t ∣ |v_{t + 1}(s_t) - \bar{v}_t| \le |v_(s_t) - \bar{v}_t| vt+1(st)vˉtv(st)vˉt
因此, v ( s t ) v(s_t) v(st)不断趋向于 v ˉ t \bar{v}_t vˉt

what is the interpretation of the TD error?
δ t = v ( s t ) − [ r t + 1 + γ v ( s t + 1 ) ] \delta_t=v(s_t)-[r_{t+1}+\gamma v(s_{t+1})] δt=v(st)[rt+1+γv(st+1)]
它是两个后续时间步长之间的差异。

其反映了 v t v_t vt v π v_{\pi} vπ之间的不足。 如下式:
δ π , t ≐ v π ( s t ) − [ r t + 1 + γ v π ( s t + 1 ) ] \delta_{\pi,t}\doteq v_\pi(s_t)-[r_{t+1}+\gamma v_\pi(s_{t+1})] δπ,tvπ(st)[rt+1+γvπ(st+1)]
注意:
E [ δ π , t ∣ S t = s t ] = v π ( s t ) − E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s t ] = 0. \mathbb{E}[\delta_{\pi,t}|S_t=s_t]=v_\pi(s_t)-\mathbb{E}\big[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s_t\big]=0. E[δπ,tSt=st]=vπ(st)E[Rt+1+γvπ(St+1)St=st]=0.

  • 如果 v t = v π v_t = v_{\pi} vt=vπ,那么 δ t \delta_t δt应该为0
  • 因此,若 δ t \delta_t δt非0,那么 v t v_t vt不等于 v π v_{\pi} vπ

TD error可以理解为“创新”,即从experience(经验)中获得新的信息 ( s t , r t + 1 , s t + 1 ) (s_t,r_{t+1},s_{t+1}) (st,rt+1,st+1)

等式(3)仅估计了给定policy的state value。

  • 其没有估计action value
  • 其没有搜索最优policy

TD learning of state values – The idea of the algorithm

What does this TD algorithm do mathematically?

它求解给定policy π \pi π 的Bellman方程。

第一,Bellman方程的新表达式。

policy π \pi π 的state value的定义为:
v π ( s ) = E [ R + γ G ∣ S = s ] , s ∈ S ( 4 ) v_{\pi}(s)=\mathbb{E}\big[R+\gamma G|S=s\big],\quad s\in\mathcal{S} \;\;\;\;\; (4) vπ(s)=E[R+γGS=s],sS(4)
其中, G G G使离散的return。因为:
E [ G ∣ S = s ] = ∑ a π ( a ∣ s ) ∑ s ′ p ( s ′ ∣ s , a ) v π ( s ′ ) = E [ v π ( S ′ ) ∣ S = s ] , \mathbb{E}[G|S=s]=\sum_a\pi(a|s)\sum_{s^{\prime}}p(s^{\prime}|s,a)v_\pi(s^{\prime})=\mathbb{E}[v_\pi(S^{\prime})|S=s], E[GS=s]=aπ(as)sp(ss,a)vπ(s)=E[vπ(S)S=s],
其中, S ′ S' S是下一个state,因此等式(4)可以写为:
v π ( s ) = E [ R + γ v π ( S ′ ) ∣ S = s ] , s ∈ S . ( 5 ) v_\pi(s)=\mathbb{E}\big[R+\gamma v_\pi(S')|S=s\big],\quad s\in\mathcal{S}. \;\;\;\;\; (5) vπ(s)=E[R+γvπ(S)S=s],sS.(5)
等式(5)是Bellman等式的另一种表达,其也被称为Bellman expectation equation。

第二,使用RM算法解决等式(5)

定义:
g ( v ( s ) ) = v ( s ) − E [ R + γ v π ( S ′ ) ∣ s ] , g(v(s))=v(s)-\mathbb{E}\big[R+\gamma v_{\pi}(S^{\prime})|s\big], g(v(s))=v(s)E[R+γvπ(S)s],
公式(5)可以写为:
g ( v ( s ) ) = 0 g(v(s)) = 0 g(v(s))=0
由于我们只能获得 R R R S ′ S' S 的样本 r r r s ′ s' s ,因此我们得到的噪声观测值是:
g ~ ( v ( s ) ) = v ( s ) − [ r + γ v π ( s ′ ) ] = ( v ( s ) − E [ R + γ v π ( S ′ ) ∣ s ] ) ⏟ g ( v ( s ) ) + ( E [ R + γ v π ( S ′ ) ∣ s ] − [ r + γ v π ( s ′ ) ] ) ⏟ η . \begin{aligned} \tilde{g}(v(s))& =v(s)-\begin{bmatrix}r+\gamma v_\pi(s')\end{bmatrix} \\ &=\underbrace{\left(v(s)-\mathbb{E}\big[R+\gamma v_\pi(S')|s\big]\right)}_{g(v(s))}+\underbrace{\left(\mathbb{E}\big[R+\gamma v_\pi(S')|s]-\big[r+\gamma v_\pi(s')\big]\right)}_{\eta}. \\ \end{aligned} g~(v(s))=v(s)[r+γvπ(s)]=g(v(s)) (v(s)E[R+γvπ(S)s])+η (E[R+γvπ(S)s][r+γvπ(s)]).
因此,为了计算 g ( v ( s ) ) g(v(s)) g(v(s)),RM算法为:
v k + 1 ( s ) = v k ( s ) − α k g ~ ( v k ( s ) ) = v k ( s ) − α k ( v k ( s ) − [ r k + γ v π ( s k ′ ) ] ) , k = 1 , 2 , 3 , ⋯ ( 6 ) \begin{align*} v_{k+1}(s) =&v_k(s)-\alpha_k\tilde{g}(v_k(s)) \\ =&v_k(s)-\alpha_k\Big(v_k(s)-\big[r_k+\gamma v_\pi(s_k^{\prime})\big]\Big), \end{align*} \;\;\; k=1, 2, 3, \cdots \;\;\;\;\; (6) vk+1(s)==vk(s)αkg~(vk(s))vk(s)αk(vk(s)[rk+γvπ(sk)]),k=1,2,3,(6)
其中, v k ( s ) v_k(s) vk(s) v π ( s ) v_{\pi}(s) vπ(s)在第 k k k步的估计; r k , s k ′ r_k, s'_k rk,sk是在第 k k k步中在 R , S ′ R, S' R,S中的样本。

公式(6)中的RM算法有两个假设需要特别注意:

  • 必须要有experience集合 { ( s , r , s ′ ) } , k = 1 , 2 , 3 , … \{ (s, r, s') \}, k=1, 2, 3, \dots {(s,r,s)},k=1,2,3,
  • 假设对于任意 s ′ s' s v π ( s ′ ) v_{\pi}(s') vπ(s)已知

为了在RM算法中移除这两个假设,可以将其修改为:

  • { ( s , r , s ′ ) } \{(s, r, s')\} {(s,r,s)} 更改为 ( s t , r t + 1 , s t + 1 ) {(s_t, r_{t+1}, s_{t+1})} (st,rt+1,st+1),以便算法可以利用episode中的连续样本。
  • v π ( s ′ ) v_{\pi}(s') vπ(s) 被它的估计值取代,因为事先不知道它。

Theorem (Convergence of TD Learning)

By the TD algorithm (1), v t ( s ) v_t(s) vt(s) converges with probability 1 to v π ( s ) v_{\pi}(s) vπ(s) for all s ∈ S s \in S sS as t → ∞ t \rightarrow \infty t if ∑ t α t ( s ) = ∞ \sum_t \alpha_t(s) = \infty tαt(s)= and ∑ t α t 2 ( s ) < ∞ \sum_t \alpha_t^2(s) < \infty tαt2(s)< for all s ∈ S s \in S sS.

  • 该定理表示,对于给定的policy π \pi π,可以通过 TD 算法找到state value
  • ∑ t α t ( s ) = ∞ \sum_t \alpha_t(s) = \infty tαt(s)= ∑ t α t 2 ( s ) < ∞ \sum_t \alpha_t^2(s) < \infty tαt2(s)<必须对所有 s ∈ S s \in S sS都满足。在时间步 t t t,如果 s = s t s = s_t s=st,这意味着 s s s 在时间 t t t 被访问,则 α t ( s ) > 0 \alpha_t(s) > 0 αt(s)>0; 否则,对于所有其他 s ≠ s t s \ne st s=st α t ( s ) = 0 \alpha_t(s) = 0 αt(s)=0。 这要求每个state必须被访问无限(或足够多)次。
  • 学习率 α \alpha α通常被选为一个小的常数。 此时, ∑ t α t 2 ( s ) < ∞ \sum_t \alpha_t^2(s) < \infty tαt2(s)<的条件不再成立。 当 α \alpha α一定时,仍然可以证明算法在期望意义上收敛。

算法比较

TD/Sarsa learningMC learning
Online: TD learning是online的。 它可以在收到reward后立即更新state/action value。offline: MC learning是offline的。 它必须等到一个episode完全收集完毕。
Continuing tasks:由于TD学习是online的,因此它可以处理episodic任务和连续任务。Episodic任务:由于MC学习是离线的,它只能处理具有终止状态的episodic任务。
Bootstrapping: TD bootstraps是因为值的更新依赖于该值的先前估计。 因此,它需要初始猜测。Non-bootstrapping: MC不是bootstrapping,因为它可以无需任何初始猜测即可估计state/action value。
低估计方差:TD 比 MC 低,因为随机变量较少。 例如,Sarsa 需要 R t + 1 、 S t + 1 、 A t + 1 R_{t+1}、S_{t+1}、A_{t+1} Rt+1St+1At+1高估计方差:为了估计 q π ( s t , a t ) q_{\pi}(s_t, a_t) qπ(st,at),需要 R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots Rt+1+γRt+2+γ2Rt+3+ 样本。假设每个episode的长度为 L L L。有$

TD learning of action values: Sarsa

Sarsa – Algorithm

上一节介绍的TD算法只能估计state value。
接下来将介绍Sarsa,一个可以直接估计state value的算法。

首先,我们的目标是估计给定policy π \pi π 的action value。假设有一些经验 { ( s t , a t , r t + 1 , s t + 1 , a t + 1 ) } t \{(s_t, a_t, r_{t+1}, s_{t+1}, a_{t+1})\}_t {(st,at,rt+1,st+1,at+1)}t。那么可以使用以下 Sarsa 算法来估计动作值:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − [ r t + 1 + γ q t ( s t + 1 , a t + 1 ) ] ] , q t + 1 ( s , a ) = q t ( s , a ) , ∀ ( s , a ) ≠ ( s t , a t ) , \begin{aligned}q_{t+1}(s_t,a_t)&=q_t(s_t,a_t)-\alpha_t(s_t,a_t)\Big[q_t(s_t,a_t)-[r_{t+1}+\gamma q_t(s_{t+1},a_{t+1})]\Big],\\q_{t+1}(s,a)&=q_t(s,a),\quad\forall(s,a)\neq(s_t,a_t),\end{aligned} qt+1(st,at)qt+1(s,a)=qt(st,at)αt(st,at)[qt(st,at)[rt+1+γqt(st+1,at+1)]],=qt(s,a),(s,a)=(st,at),
其中: t = 0 , 1 , 2 , ⋯ t = 0, 1, 2, \cdots t=0,1,2,

  • q t ( s t , a t ) q_t(s_t, a_t) qt(st,at) q π ( s t , a t ) q_{\pi}(s_t, a_t) qπ(st,at)的估计值
  • α t ( s t , a t ) \alpha_t(s_t, a_t) αt(st,at)是依赖于 s t , a t s_t, a_t st,at的学习率。

Why is this algorithm called Sarsa?

因为算法的每一步都涉及 ( s t , a t , r t + 1 , s t + 1 , a t + 1 ) (s_t, a_t, r_{t+1}, s_{t+1}, a_{t+1}) (st,at,rt+1,st+1,at+1)。 Sarsa 是state-action-reward-state-action的缩写。

What is the relationship between Sarsa and the previous TD learning algorithm?

可以通过将TD算法中的state value估计 v ( s ) v(s) v(s)替换为action value估计 q ( s , a ) q(s,a) q(s,a)来获得Sarsa。 因此,Sarsa 是 TD 算法的action-value版。

What does the Sarsa algorithm do mathematically?

Sarsa 的表达式表明其是求解以下方程的随机近似算法:
q π ( s , a ) = E [ R + γ q π ( S ′ , A ′ ) ∣ s , a ] , ∀ s , a . q_{\pi}(s,a)=\mathbb{E}\left[R+\gamma q_{\pi}(S^{\prime},A^{\prime})|s,a\right],\quad\forall s,a. qπ(s,a)=E[R+γqπ(S,A)s,a],s,a.
这是Bellman方程的另一种以action value表示的表达式。

Theorem (Convergence of Sarsa learning)

By the e Sarsa algorithm, q t ( s , a ) q_t(s, a) qt(s,a) converges with probability 1 to action value q π ( s , a ) q_{\pi}(s, a) qπ(s,a) as t → ∞ t \rightarrow \infty t for all ( s , a ) (s, a) (s,a) if ∑ t α t ( s ) = ∞ \sum_t \alpha_t(s) = \infty tαt(s)= and ∑ t α t 2 ( s ) < ∞ \sum_t \alpha_t^2(s) < \infty tαt2(s)< for all ( s , a ) (s, a) (s,a).

该定理表明,对于给定的policy π \pi π,Sarsa 可以找到action value。

Sarsa – Implementation

强化学习的最终目标是找到最优policy。
为此,可以将 Sarsa 与policy improvement步骤结合起来。组合算法也称为 Sarsa。

在这里插入图片描述

  • s t s_t st 的policy在 q ( s t , a t ) q(s_t, a_t) q(st,at)更新后立即更新。 这是基于广义policy迭代的思想。
  • 政策是 ε \varepsilon ε-greedy而不是贪心,以很好地平衡开采(exploitation)和探索(exploration)。
  • 核心思想很简单:就是用一种算法来求解给定policy的Bellman方程。

Sarsa – Examples

r target = 0 , r forbidden = r boundary = − 10 r_{\text{target}} = 0, r_{\text{forbidden}} = r_{\text{boundary}} = -10 rtarget=0,rforbidden=rboundary=10 r other = − 1 r_{\text{other}} = -1 rother=1,学习率 α = 0.1 \alpha = 0.1 α=0.1 ε = 0.1 \varepsilon = 0.1 ε=0.1

在这里插入图片描述

如上图左:并非所有state都有最优policy

如上图右:每episode总reward的指标将被频繁使用。

TD learning of action values: Expected Sarsa

Sarsa 的一个变体是 Expected Sarsa 算法:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − ( r t + 1 + γ E [ q t ( s t + 1 , A ) ] ) ] , q t + 1 ( s , a ) = q t ( s , a ) , ∀ ( s , a ) ≠ ( s t , a t ) , \begin{aligned} q_{t+1}(s_{t},a_{t})& =q_t(s_t,a_t)-\alpha_t(s_t,a_t)\Big[q_t(s_t,a_t)-(r_{t+1}+\gamma\mathbb{E}[q_t(s_{t+1},A)])\Big], \\ q_{t+1}(s,a)& =q_t(s,a),\quad\forall(s,a)\neq(s_t,a_t), \end{aligned} qt+1(st,at)qt+1(s,a)=qt(st,at)αt(st,at)[qt(st,at)(rt+1+γE[qt(st+1,A)])],=qt(s,a),(s,a)=(st,at),
其中,
E [ q t ( s t + 1 , A ) ] ) = ∑ a π t ( a ∣ s t + 1 ) q t ( s t + 1 , a ) ≐ v t ( s t + 1 ) \mathbb{E}[q_t(s_{t+1},A)])=\sum_a\pi_t(a|s_{t+1})q_t(s_{t+1},a)\doteq v_t(s_{t+1}) E[qt(st+1,A)])=aπt(ast+1)qt(st+1,a)vt(st+1)
是policy π t \pi_t πt q t ( s t + 1 , a ) q_t(s_{t+1}, a) qt(st+1,a) 的期望值。

与Sarsa比较:

  • TD target 从 Sarsa 中的 r t + 1 + γ q t ( s t + 1 , a t + 1 ) r_{t+1} + \gamma q_t(s_{t+1}, a_{t+1}) rt+1+γqt(st+1,at+1) 更改为 Expected Sarsa 中的 r t + 1 + γ E [ q t ( s t + 1 , A ) ] r_{t+1}+\gamma\mathbb{E}[q_t(s_{t+1},A)] rt+1+γE[qt(st+1,A)]
  • 需要更多的计算。 但从减少估计方差的意义上来说,它是有益的,因为它将 Sarsa 中的随机变量从 { s t , a t , r t + 1 , s t + 1 , a t + 1 } \{s_t,a_t,r_{t+1},s_{t+1},a_{t+1}\} {st,at,rt+1,st+1,at+1}减少到 { s t , a t , r t + 1 , s t + 1 } \{s_t,a_t,r_{t+1},s_{t+1}\} {st,at,rt+1,st+1}

What does the algorithm do mathematically?

Expected Sarsa 是一种随机近似算法,用于求解以下方程:
q π ( s , a ) = E [ R t + 1 + γ E A t + 1 ∼ π ( S t + 1 ) [ q π ( S t + 1 , A t + 1 ) ] ∣ S t = s , A t = a ] , ∀ s , a . q_{\pi}(s,a)=\mathbb{E}\Big[R_{t+1}+\gamma\mathbb{E}_{A_{t+1}\sim\pi(S_{t+1})}[q_{\pi}(S_{t+1},A_{t+1})]\Big|S_{t}=s,A_{t}=a\Big],\quad\forall s,a. qπ(s,a)=E[Rt+1+γEAt+1π(St+1)[qπ(St+1,At+1)] St=s,At=a],s,a.
上式是Bellman方程的另一种表达:
q π ( s , a ) = E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s , A t = a ] q_\pi(s,a)=\mathbb{E}\Big[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s,A_t=a\Big] qπ(s,a)=E[Rt+1+γvπ(St+1)St=s,At=a]

TD learning of action values: n-step Sarsa

n n n-step Sarsa:可以统一 Sarsa 和 Monte Carlo learning

action value的定义为:
q π ( s , a ) = E [ G t ∣ S t = s , A t = a ] . q_\pi(s,a)=\mathbb{E}[G_t|S_t=s,A_t=a]. qπ(s,a)=E[GtSt=s,At=a].
discount return G t G_t Gt 可以写成不同的形式:
Sarsa ⟵ G t ( 1 ) = R t + 1 + γ q π ( S t + 1 , A t + 1 ) , G t ( 2 ) = R t + 1 + γ R t + 2 + γ 2 q π ( S t + 2 , A t + 2 ) , ⋮ n -step Sarsa ⟵ G t ( n ) = R t + 1 + γ R t + 2 + ⋯ + γ n q π ( S t + n , A t + n ) , ⋮ MC ⟵ G t ( ∞ ) = R t + 1 + γ R t + 2 + γ 2 R t + 3 + … \begin{align*} \text{Sarsa} \longleftarrow G_t^{(1)}&=R_{t+1} + \gamma q_\pi(S_{t+1},A_{t+1}),\\ G_t^{(2)}&=R_{t+1}+\gamma R_{t+2}+\gamma^2q_\pi(S_{t+2},A_{t+2}),\\ &\vdots \\ n\text{-step Sarsa} \longleftarrow G_t^{(n)}&=R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^nq_\pi(S_{t+n},A_{t+n}),\\ &\vdots\\ \text{MC} \longleftarrow G_t^{(\infty)}&=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\ldots \end{align*} SarsaGt(1)Gt(2)n-step SarsaGt(n)MCGt()=Rt+1+γqπ(St+1,At+1),=Rt+1+γRt+2+γ2qπ(St+2,At+2),=Rt+1+γRt+2++γnqπ(St+n,At+n),=Rt+1+γRt+2+γ2Rt+3+
需要注意的是, G t = G t ( 1 ) = G t ( 2 ) = G t ( n ) = G t ( ∞ ) \begin{aligned}G_t=G_t^{(1)}=G_t^{(2)}=G_t^{(n)}=G_t^{(\infty)}\end{aligned} Gt=Gt(1)=Gt(2)=Gt(n)=Gt(),其中上标仅表示 G t G_t Gt的不同分解结构。

Sarsa目的是解决:
q π ( s , a ) = E [ G t ( 1 ) ∣ s , a ] = E [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ s , a ] . q_{\pi}(s,a)=\mathbb{E}[G_{t}^{(1)}|s,a]=\mathbb{E}[R_{t+1}+\gamma q_{\pi}(S_{t+1},A_{t+1})|s,a]. qπ(s,a)=E[Gt(1)s,a]=E[Rt+1+γqπ(St+1,At+1)s,a].
MC目的是解决:
q π ( s , a ) = E [ G t ( ∞ ) ∣ s , a ] = E [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + … ∣ s , a ] . q_\pi(s,a)=\mathbb{E}[G_t^{(\infty)}|s,a]=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\ldots|s,a]. qπ(s,a)=E[Gt()s,a]=E[Rt+1+γRt+2+γ2Rt+3+s,a].
n n n-step Sarsa 的中间算法目的是解决:
q π ( s , a ) = E [ G t ( n ) ∣ s , a ] = E [ R t + 1 + γ R t + 2 + ⋯ + γ n q π ( S t + n , A t + n ) ∣ s , a ] . \begin{aligned}q_\pi(s,a)=\mathbb{E}[G_t^{(n)}|s,a]=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^nq_\pi(S_{t+n},A_{t+n})|s,a].\end{aligned} qπ(s,a)=E[Gt(n)s,a]=E[Rt+1+γRt+2++γnqπ(St+n,At+n)s,a].
n n n-step Sarsa 算法目的是解决:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − [ r t + 1 + γ r t + 2 + ⋯ + γ n q t ( s t + n , a t + n ) ] ] . q_{t+1}(s_t,a_t)=q_t(s_t,a_t) -\alpha_t(s_t,a_t)\Big[q_t(s_t,a_t)-[r_{t+1}+\gamma r_{t+2}+\cdots+\gamma^nq_t(s_{t+n},a_{t+n})]\Big]. qt+1(st,at)=qt(st,at)αt(st,at)[qt(st,at)[rt+1+γrt+2++γnqt(st+n,at+n)]].
n n n-step Sarsa 更通用,因为当 n = 1 n = 1 n=1 时它变成(one-step)Sarsa 算法,当 n = ∞ n = \infty n= 时它变成 MC learning算法。

n n n-step Sarsa需要 ( s t , a t , r t + 1 , s t + 1 , a t + 1 , … , r t + n , s t + n , a t + n ) . (s_t,a_t,r_{t+1},s_{t+1},a_{t+1},\ldots,r_{t+n},s_{t+n},a_{t+n}). (st,at,rt+1,st+1,at+1,,rt+n,st+n,at+n).

由于 ( r t + n , s t + n , a t + n ) (r_{t+n}, s_{t+n}, a_{t+n}) (rt+n,st+n,at+n)在时间 t t t 尚未收集,因此无法在步骤 t t t 实现 n n n-step Sarsa。 然而,可以等到时间 t + n t + n t+n 来更新 ( s t , a t ) (s_t, a_t) (st,at) 的 q 值:
q t + n ( s t , a t ) = q t + n − 1 ( s t , a t ) − α t + n − 1 ( s t , a t ) [ q t + n − 1 ( s t , a t ) − [ r t + 1 + γ r t + 2 + ⋯ + γ n q t + n − 1 ( s t + n , a t + n ) ] ] \begin{align*} q_{t+n}(s_t,a_t)=&q_{t+n-1}(s_t,a_t)\\&-\alpha_{t+n-1}(s_t,a_t)\Big[q_{t+n-1}(s_t,a_t)-[r_{t+1}+\gamma r_{t+2}+\cdots+\gamma^nq_{t+n-1}(s_{t+n},a_{t+n})]\Big] \end{align*} qt+n(st,at)=qt+n1(st,at)αt+n1(st,at)[qt+n1(st,at)[rt+1+γrt+2++γnqt+n1(st+n,at+n)]]
由于 n n n-step Sarsa 将 Sarsa 和 MC learning作为两种极端情况,因此其性能是 Sarsa 和 MC learning的混合:

  • 如果 n n n很大,它的性能接近MC learning,因此方差很大但偏差很小。
  • 如果 n n n较小,则其性能接近Sarsa,因此由于初始猜测和相对较低的方差而具有相对较大的偏差。

n-step Sarsa 也用于policy evaluation。 它可以与policy improvement步骤相结合来搜索最优policy。

TD learning of optimal action values: Q-learning

Sarsa 可以估计给定policy的action value。 它必须与policy improvement步骤相结合才能找到最佳policy。

Q-learning 可以直接估计最优action value,从而估计最优policy。

Q-learning – Algorithm

Q-learning算法为:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − [ r t + 1 + γ max ⁡ a ∈ A q t ( s t + 1 , a ) ] ] , q t + 1 ( s , a ) = q t ( s , a ) , ∀ ( s , a ) ≠ ( s t , a t ) , \begin{aligned} q_{t+1}(s_{t},a_{t})& =q_t(s_t,a_t)-\alpha_t(s_t,a_t)\left[q_t(s_t,a_t)-[r_{t+1}+\gamma\max_{a\in\mathcal{A}}q_t(s_{t+1},a)]\right], \\ q_{t+1}(s,a)& =q_t(s,a),\quad\forall(s,a)\neq(s_t,a_t), \end{aligned} qt+1(st,at)qt+1(s,a)=qt(st,at)αt(st,at)[qt(st,at)[rt+1+γaAmaxqt(st+1,a)]],=qt(s,a),(s,a)=(st,at),
Q-learning 与 Sarsa 非常相似。 它们仅在 TD target方面有所不同:

  • Q-learning 中的 TD target是: r t + 1 + γ max ⁡ a ∈ A q t ( s t + 1 , a ) r_{t+1}+\gamma\max_{a\in\mathcal{A}}q_t(s_{t+1},a) rt+1+γmaxaAqt(st+1,a)
  • Sarsa 中的 TD target是: r t + 1 + γ q t ( s t + 1 , a t + 1 ) r_{t+1}+\gamma q_t(s_{t+1},a_{t+1}) rt+1+γqt(st+1,at+1)

What does Q-learning do mathematically?

其目的是解决:
q ( s , a ) = E [ R t + 1 + γ max ⁡ a q ( S t + 1 , a ) ∣ S t = s , A t = a ] , ∀ s , a . \left.q(s,a)=\mathbb{E}\left[R_{t+1}+\gamma\max_aq(S_{t+1},a)\right|S_t=s,A_t=a\right],\quad\forall s,a. q(s,a)=E[Rt+1+γamaxq(St+1,a) St=s,At=a],s,a.
这是用action values表示的Bellman最优方程。

Off-policy vs on-policy

在进一步研究Q-learning之前,需要首先介绍两个重要的概念:on-policy learning和off-policy learning。
TD learning任务中存在两种policy:

  • behavior policy用于生成经验样本
  • target policy不断更新以达到最优policy

On-policy vs off-policy:

  • 当behavior policy与target policy相同时,这种学习称为on-policy learning。
  • 当不同时,称为off-policy learning。

Advantages of off-policy learning:

它可以根据任何其他policy生成的经验样本来搜索最优policy。

作为一个重要的特例,behavior policy可以选择具有探索性。 例如,如果想估计所有state-action对的action value,可以使用探索性policy来生成多次访问每个state-action对的episode。

How to judge if a TD algorithm is on-policy or off-policy?

首先,检查算法在数学上的作用。

其次,检查实现算法需要哪些东西。

Sarsa is on-policy.

首先,Sarsa 的目标是求解给定policy π \pi π 的Bellman方程:
q π ( s , a ) = E [ R + γ q π ( S ′ , A ′ ) ∣ s , a ] , ∀ s , a . q_\pi(s,a)=\mathbb{E}\left[R+\gamma q_\pi(S^{\prime},A^{\prime})|s,a\right],\quad\forall s,a. qπ(s,a)=E[R+γqπ(S,A)s,a],s,a.
其中, R ∼ p ( R ∣ s , a ) , S ′ ∼ p ( S ′ ∣ s , a ) , A ′ ∼ π ( A ′ ∣ S ′ ) . R\sim p(R|s,a),S^{\prime}\sim p(S^{\prime}|s,a),{A^{\prime}\sim\pi(A^{\prime}|S^{\prime})}. Rp(Rs,a),Sp(Ss,a),Aπ(AS).

其次,算法是:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − [ r t + 1 + γ q t ( s t + 1 , a t + 1 ) ] ] , q_{t+1}(s_t,a_t)=q_t(s_t,a_t)-\alpha_t(s_t,a_t)\Big[q_t(s_t,a_t)-[r_{t+1}+\gamma q_t(s_{t+1},a_{t+1})]\Big], qt+1(st,at)=qt(st,at)αt(st,at)[qt(st,at)[rt+1+γqt(st+1,at+1)]],
需要 ( s t , a t , r t + 1 , s t + 1 , a t + 1 ) (s_t,a_t,r_{t+1},s_{t+1},a_{t+1}) (st,at,rt+1,st+1,at+1)

如果给出 ( s t , a t ) (s_t, a_t) (st,at),则 r t + 1 r_{t+1} rt+1 s t + 1 s_{t+1} st+1 不依赖于任何policy。 a t + 1 a_{t+1} at+1 是根据 π t ( s t + 1 ) π_t(s_{t+1}) πt(st+1)生成的。

π t \pi_t πt 既是behavior policy又是target policy。

Monte Carlo learning is on-policy.

首先,MC方法目的是计算:
q π ( s , a ) = E [ R t + 1 + γ R t + 2 + … ∣ S t = s , A t = a ] , ∀ s , a . q_{\pi}(s,a)=\mathbb{E}\left[R_{t+1}+\gamma R_{t+2}+\ldots|S_{t}=s,A_{t}=a\right],\quad\forall s,a. qπ(s,a)=E[Rt+1+γRt+2+St=s,At=a],s,a.
其中样本是根据给定policy π \pi π 生成的。

其次,MC方法的实现是:
q ( s , a ) ≈ r t + 1 + γ r t + 2 + … q(s,a)\approx r_{t+1}+\gamma r_{t+2}+\ldots q(s,a)rt+1+γrt+2+
action value用于生成样本,样本进一步用于估计policy的action value。 基于action value,可以改进policy。

Q-learning is off-policy.

首先,Q-learning旨在求解Bellman最优方程:
q ( s , a ) = E [ R t + 1 + γ max ⁡ a q ( S t + 1 , a ) ∣ S t = s , A t = a ] , ∀ s , a . q(s,a)=\mathbb{E}\left[R_{t+1}+\gamma\max_aq(S_{t+1},a)\Big|S_t=s,A_t=a\right],\quad\forall s,a. q(s,a)=E[Rt+1+γamaxq(St+1,a) St=s,At=a],s,a.
其次,算法为:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − [ r t + 1 + γ max ⁡ a ∈ A q t ( s t + 1 , a ) ] ] q_{t+1}(s_t,a_t)=q_t(s_t,a_t)-\alpha_t(s_t,a_t)\left[q_t(s_t,a_t)-[r_{t+1}+\gamma\max_{a\in\mathcal{A}}q_t(s_{t+1},a)]\right] qt+1(st,at)=qt(st,at)αt(st,at)[qt(st,at)[rt+1+γaAmaxqt(st+1,a)]]
需要 ( s t , a t , r t + 1 , s t + 1 ) . (s_t,a_t,r_{t+1},s_{t+1}). (st,at,rt+1,st+1).

根据 s t s_t st 生成 a t a_t at 的behavior policy可以是任何内容。 target policy将收敛于最优policy。

由于 Q-learning是off-policy的,因此它可以既可以以off-policy形式实现也可以以on-policy形式实现。

在这里插入图片描述

在这里插入图片描述

Q-learning – Examples

r boundary = r forbidden = − 1 r_{\text{boundary}} = r_{\text{forbidden}} = -1 rboundary=rforbidden=1 r target = 1 r_{\text{target}} = 1 rtarget=1。discount rate γ = 0.9 \gamma=0.9 γ=0.9。学习率 α = 0.1 \alpha=0.1 α=0.1

在这里插入图片描述

下图是behavior policy和其生成的样本( 1 0 5 10^5 105步):

在这里插入图片描述

off-policy Q-learning 学习到的policy:

在这里插入图片描述

探索的重要性: 1 0 5 10^5 105个episode
如果policy探索性不够,样本就不够好。如下图:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

A unified point of view

本讲介绍的所有算法都可以用一个统一的表达式来表示:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − q ˉ t ] , q_{t+1}(s_t,a_t)=q_t(s_t,a_t)-\alpha_t(s_t,a_t)[q_t(s_t,a_t)-\bar{q}_t], qt+1(st,at)=qt(st,at)αt(st,at)[qt(st,at)qˉt],
其中, q ˉ t \bar{q}_t qˉt是TD target。

不同的TD算法有不同的 q ˉ t \bar{q}_t qˉt

AlgorithmExpression of q ˉ t \bar{q}_t qˉt
Sarsa q ˉ t = r t + 1 + γ q t ( s t + 1 , a t + 1 ) \bar{q}_t=r_{t+1}+\gamma q_t(s_{t+1},a_{t+1}) qˉt=rt+1+γqt(st+1,at+1)
n n n-step Sarsa q ˉ t = r t + 1 + γ r t + 2 + ⋯ + γ n q t ( s t + n , a t + n ) \bar{q}_t=r_{t+1}+\gamma r_{t+2}+\cdots+\gamma^nq_t(s_{t+n},a_{t+n}) qˉt=rt+1+γrt+2++γnqt(st+n,at+n)
Expected Sarsa q ˉ t = r t + 1 + γ ∑ a π t ( a ∣ s t + 1 ) q t ( s t + 1 , a ) \bar{q}_t=r_{t+1}+\gamma\sum_a\pi_t(a | s_{t+1})q_t(s_{t+1}, a) qˉt=rt+1+γaπt(ast+1)qt(st+1,a)
Q-learning q ˉ t = r t + 1 + γ max ⁡ a q t ( s t + 1 , a ) \bar{q}_t=r_{t+1}+\gamma\max_aq_t(s_{t+1},a) qˉt=rt+1+γmaxaqt(st+1,a)
Monte Carlo q ˉ t = r t + 1 + γ r t + 2 + … \bar{q}_t=r_{t+1}+\gamma r_{t+2}+\ldots qˉt=rt+1+γrt+2+

MC 方法也可以通过设置 α t ( s t , a t ) = 1 \alpha_t(s_t, a_t) = 1 αt(st,at)=1 从而 q t + 1 ( s t , a t ) = q ˉ t q_{t+1}(s_t, a_t) = \bar{q}_t qt+1(st,at)=qˉt 来表达在这个统一表达式中。

所有算法都可以看作求解Bellman方程或Bellman最优方程的随机近似算法:

AlgorithmEquation aimed to solve
Sarsa BE:  q π ( s , a ) = E [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) S t = s , A t = a ] \text{BE: }q_\pi(s,a)=\mathbb{E}\left[R_{t+1}+\gamma q_\pi(S_{t+1},A_{t+1})S_t=s,A_t=a\right] BE: qπ(s,a)=E[Rt+1+γqπ(St+1,At+1)St=s,At=a]
n n n-step Sarsa BE:  q π ( s , a ) = E [ R t + 1 + γ R t + 2 + ⋯ + γ n q π ( s t + n , a t + n ) S t = s , A t = a ] \text{BE: }q_\pi(s,a)=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^nq_\pi(s_{t+n},a_{t+n})S_t=s,A_t=a] BE: qπ(s,a)=E[Rt+1+γRt+2++γnqπ(st+n,at+n)St=s,At=a]
Expected Sarsa BE:  q π ( s , a ) = E [ R t + 1 + γ E A t + 1 [ q π ( S t + 1 , A t + 1 ) ] ∣ S t = s , A t = a ] \text{BE: }q_\pi(s,a)=\mathbb{E} \big[R_{t+1}+\gamma \mathbb{E}_{A_{t+1}}\big[q_\pi(S_{t+1},A_{t+1})\big] | S_t=s, A_t=a \big] BE: qπ(s,a)=E[Rt+1+γEAt+1[qπ(St+1,At+1)]St=s,At=a]
Q-learning BE:  q ( s , a ) = E [ R t + 1 + max ⁡ a q ( S t + 1 , a ) ∣ S t = s , A t = a ] \text{BE: }q(s,a)=\mathbb{E}\left[R_{t+1}+\max_aq(S_{t+1},a) | S_t = s, A_t = a \right] BE: q(s,a)=E[Rt+1+maxaq(St+1,a)St=s,At=a]
Monte Carlo BE:  q π ( s , a ) = E [ R t + 1 + γ R t + 2 + … ∣ S t = s , A t = a ] \text{BE: }q_\pi(s,a)=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\ldots | S_t = s, A_t = a] BE: qπ(s,a)=E[Rt+1+γRt+2+St=s,At=a]

Summary

  • Introduced various TD learning algorithms
  • Their expressions, math interpretations, implementation, relationship, examples
  • Unified point of view




以上内容为B站西湖大学智能无人系统 强化学习的数学原理 公开课笔记。

这篇关于【RL】Temporal-Difference Learning(时序差分方法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/727529

相关文章

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

电脑不小心删除的文件怎么恢复?4个必备恢复方法!

“刚刚在对电脑里的某些垃圾文件进行清理时,我一不小心误删了比较重要的数据。这些误删的数据还有机会恢复吗?希望大家帮帮我,非常感谢!” 在这个数字化飞速发展的时代,电脑早已成为我们日常生活和工作中不可或缺的一部分。然而,就像生活中的小插曲一样,有时我们可能会在不经意间犯下一些小错误,比如不小心删除了重要的文件。 当那份文件消失在眼前,仿佛被时间吞噬,我们不禁会心生焦虑。但别担心,就像每个问题

22.手绘Spring DI运行时序图

1.依赖注入发生的时间 当Spring loC容器完成了 Bean定义资源的定位、载入和解析注册以后,loC容器中已经管理类Bean 定义的相关数据,但是此时loC容器还没有对所管理的Bean进行依赖注入,依赖注入在以下两种情况 发生: 、用户第一次调用getBean()方法时,loC容器触发依赖注入。 、当用户在配置文件中将<bean>元素配置了 lazy-init二false属性,即让

21.手绘Spring IOC运行时序图

1.再谈IOC与 DI IOC(lnversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创 建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让 容器知道需要创建的对象与对象的关系。这个描述最具体表现就是我们所看到的配置文件。 DI(Dependency Injection)依赖注入:就是指对象是被动接受依赖类

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

邮件群发推送的方法技巧?有哪些注意事项?

邮件群发推送的策略如何实现?邮件推送怎么评估效果? 电子邮件营销是现代企业进行推广和沟通的重要工具。有效的邮件群发推送不仅能提高客户参与度,还能促进销售增长。AokSend将探讨一些关键的邮件群发推送方法和技巧,以帮助企业优化其邮件营销策略。 邮件群发推送:目标受众 了解他们的需求、兴趣和行为习惯有助于你设计出更具吸引力和相关性的邮件内容。通过收集和分析数据,创建详细的客户画像,可以更精

上采样(upsample)的方法

上采样(upsample)的方法   在神经网络中,扩大特征图的方法,即upsample/上采样的方法   1)unpooling:恢复max的位置,其余部分补零   2)deconvolution(反卷积):先对input补零,再conv   3)插值方法,双线性插值等;   4)扩张卷积,dilated conv;

青龙面板部署通用教程,含服务器、路由器、X86等部署方法

1. 拉取镜像/更新镜像 docker pull whyour/qinglong:latest 2. 删除镜像 docker rmi whyour/qinglong:latest 3. 启动容器 普通服务器 docker run -dit \-v $PWD/ql/config:/ql/config \-v $PWD/ql/log:/ql/log \-v $PWD/ql/db: