Daily AI 20250318 (深度强化学习算法)

参考资料:神经网络与深度学习

深度强化学习

如上篇文章所述,在强化学习中,一般需建模:

策略 π ( a ∣ s ) \pi(a \mid s) π(as)
状态值函数 V π ( s ) = E τ ∼ p ( τ ) [ ∑ t = 0 T − 1 γ t r t + 1 ∣ τ s 0 = s ] V^\pi(s)=\mathbb{E}_{\tau \sim p(\tau)}\left[\sum_{t=0}^{T-1} \gamma^t r_{t+1} \mid \tau_{s_0}=s\right] Vπ(s)=Eτp(τ)[t=0T1γtrt+1τs0=s]
状态-动作值函数 Q π ( s , a ) = E s ′ ∼ p ( s ′ ∣ s , a ) [ r ( s , a , s ′ ) + γ V π ( s ′ ) ] Q^\pi(s, a)=\mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma V^\pi\left(s^{\prime}\right)\right] Qπ(s,a)=Esp(ss,a)[r(s,a,s)+γVπ(s)]

深度强化学习是将强化学习和深度学习结合在一起, 用强化学习来定义问题和优化目标,用深度学习来解决策略和值函数的建模问题,然后使用误差反向传播算法来优化目标函数。 {\color{red}\text{用强化学习来定义问题和优化目标,用深度学习来解决策略和值函数的建模问题,然后使用误差反向传播算法来优化目标函数。}} 用强化学习来定义问题和优化目标,用深度学习来解决策略和值函数的建模问题,然后使用误差反向传播算法来优化目标函数。

1.基于值函数的学习方法

值函数是对策略 π \pi π的评估。如果策略 π \pi π有限(即状态数和动作数都有限),理论上可以穷搜出最优策略 π ∗ \pi^* π:(当动作和状态空间过大时往往难以实现)
∀ s , π ∗ = arg ⁡ max ⁡ π V π ( s ) \forall s, \quad \pi^*=\underset{\pi}{\arg \max } V^\pi(s) s,π=πargmaxVπ(s)
故一种straightforward的方法是迭代优化策略 π ( a ∣ s ) \pi(a \mid s) π(as)。即设定新的策略 π ′ ( a ∣ s ) \pi^{\prime}(a \mid s) π(as)
π ′ ( a ∣ s ) = { 1  if  a = arg ⁡ max ⁡ a ^ Q π ( s , a ^ ) 0  otherwise  \pi^{\prime}(a \mid s)= \begin{cases}1 & \text { if } a=\arg \max _{\hat{a}} Q^\pi(s, \hat{a}) \\ 0 & \text { otherwise }\end{cases} π(as)={10 if a=argmaxa^Qπ(s,a^) otherwise 
亦即
π ′ ( s ) = arg ⁡ max ⁡ a Q π ( s , a ) \pi^{\prime}(s)=\underset{a}{\arg \max } Q^\pi(s, a) π(s)=aargmaxQπ(s,a)
如果执行 π ′ \pi^{\prime} π ,会有
∀ s , V π ′ ( s ) ≥ V π ( s ) \forall s, \quad V^{\pi^{\prime}}(s) \geq V^\pi(s) s,Vπ(s)Vπ(s)
即先随机初始化一个策略,计算该策略的值函数,并根据值函数来设置新的策略,然后一直反复迭代直到收敛。
基于值函数的策略学习方法中最关键的是如何计算策略 π \pi π 的值函数,一般有动态规划(基于贝尔曼方程)蒙特卡罗两种计算方式。

1.1.动态规划算法

状态值函数的贝尔曼方程形式为:
V π ( s ) = ( a ) E τ 0 : T ∼ p ( τ ) [ r 1 + γ ∑ t = 1 T − 1 γ t − 1 r t + 1 ∣ τ s 0 = s ] = ( b ) E a ∼ π ( a ∣ s ) E s ′ ∼ p ( s ′ ∣ s , a ) E τ 1 : T ∼ p ( τ ) [ r ( s , a , s ′ ) + γ ∑ t = 1 T − 1 γ t − 1 r t + 1 ∣ τ s 1 = s ′ ] = ( c ) E a ∼ π ( a ∣ s ) E s ′ ∼ p ( s ′ ∣ s , a ) [ r ( s , a , s ′ ) + γ E τ 1 : T ∼ p ( τ ) [ ∑ t = 1 T − 1 γ t − 1 r t + 1 ∣ τ s 1 = s ′ ] ] = ( d ) E a ∼ π ( a ∣ s ) E s ′ ∼ p ( s ′ ∣ s , a ) [ r ( s , a , s ′ ) + γ V π ( s ′ ) ] \begin{aligned} & V^\pi(s)\overset{(a)}{=}\mathbb{E}_{\tau_{0: T} \sim p(\tau)}\left[r_1+\gamma \sum_{t=1}^{T-1} \gamma^{t-1} r_{t+1} \mid \tau_{s_0}=s\right] \\ & \overset{(b)}{=} \mathbb{E}_{a \sim \pi(a \mid s)} \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)} \mathbb{E}_{\tau_{1: T} \sim p(\tau)}\left[r\left(s, a, s^{\prime}\right)+\gamma \sum_{t=1}^{T-1} \gamma^{t-1} r_{t+1} \mid \tau_{s_1}=s^{\prime}\right] \\ & \overset{(c)}{=} \mathbb{E}_{a \sim \pi(a \mid s)} \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma \mathbb{E}_{\tau_{1: T} \sim p(\tau)}\left[\sum_{t=1}^{T-1} \gamma^{t-1} r_{t+1} \mid \tau_{s_1}=s^{\prime}\right]\right] \\ & \overset{(d)}{=} \mathbb{E}_{a \sim \pi(a \mid s)} \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma V^\pi\left(s^{\prime}\right)\right] \end{aligned} Vπ(s)=(a)Eτ0:Tp(τ)[r1+γt=1T1γt1rt+1τs0=s]=(b)Eaπ(as)Esp(ss,a)Eτ1:Tp(τ)[r(s,a,s)+γt=1T1γt1rt+1τs1=s]=(c)Eaπ(as)Esp(ss,a)[r(s,a,s)+γEτ1:Tp(τ)[t=1T1γt1rt+1τs1=s]]=(d)Eaπ(as)Esp(ss,a)[r(s,a,s)+γVπ(s)]
从贝尔曼方程可知,如果知道马尔可夫决策过程的状态转移概率 p ( s ′ ∣ s , a ) p\left(s^{\prime} \mid s, a\right) p(ss,a)和奖励 r ( s , a , s ′ ) r\left(s, a, s^{\prime}\right) r(s,a,s) ,可以通过贝尔曼方程来迭代计算其值函数。这种模型已知的强化学习算法也称为基于模型的强化学习(Model-Based Reinforcement Learning)算法,这里的模型就是指马尔可夫决策过程。
在已知模型时,可以通过动态规划的方法来计算。常用的方法主要有策略迭代算法值迭代算法

1.1.1.策略迭代算法

 策略迭代算法   输入:  MDP ⁡  五元组:  S , A , P , r , γ ;  初始化:  ∀ s , ∀ a , π ( a ∣ s ) = 1 ∣ A ∣ ;   repeat   // 策略评估   repeat   根据贝尔曼方程计算 V π ( s ) = E a ∼ π ( a ∣ s ) E s ′ ∼ p ( s ′ ∣ s , a ) [ r ( s , a , s ′ ) + γ V π ( s ′ ) ] , ∀ s ;   until  ∀ s , V π ( s )  收敛;   // 策略改进   计算  Q ( s , a ) ;  ∀ s , π ( s ) = arg ⁡ max ⁡ a Q ( s , a ) ;  until  ∀ s , π ( s )  收敛;   输出: 策略  π \begin{aligned} &\text { 策略迭代算法 }\\ &\text { 输入: } \operatorname{MDP} \text { 五元组: } \mathcal{S}, \mathcal{A}, P, r, \gamma ;\\ &\text { 初始化: } \forall s, \forall a, \pi(a \mid s)=\frac{1}{|\mathcal{A}|} \text {; }\\ &\text { repeat }\\ &\text { // 策略评估 }\\ &\text { repeat }\\ &\text { 根据贝尔曼方程计算} V^\pi(s)=\mathbb{E}_{a \sim \pi(a \mid s)} \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma V^\pi\left(s^{\prime}\right)\right] , \forall s \text {; }\\ &\text { until } \forall s, V^\pi(s) \text { 收敛; }\\ &\text { // 策略改进 }\\ &\text { 计算 } Q(s, a) \text {; }\\ &\forall s, \pi(s)=\arg \max _a Q(s, a) ;\\ &\text { until } \forall s, \pi(s) \text { 收敛; }\\ &\text { 输出: 策略 } \pi \end{aligned}  策略迭代算法  输入MDP 五元组S,A,P,r,γ; 初始化s,a,π(as)=A1 repeat  // 策略评估  repeat  根据贝尔曼方程计算Vπ(s)=Eaπ(as)Esp(ss,a)[r(s,a,s)+γVπ(s)],s until s,Vπ(s) 收敛 // 策略改进  计算 Q(s,a)s,π(s)=argamaxQ(s,a); until s,π(s) 收敛 输出策略 π

1.1.2.值迭代算法

将策略评估和策略改进两个过程合并,直接计算出最优策略。最优策略 π ∗ \pi^{*} π对应的值函数对应地称为最优值函数,具体包括最优状态值函数 V ∗ ( s ) V^*(s) V(s) 和 最优状态-动作值函数 Q ∗ ( s , a ) Q^*(s,a) Q(s,a),根据其关系: V π ( s ) = E a ∼ π ( a ∣ s ) [ Q π ( s , a ) ] V^\pi(s)=\mathbb{E}_{a \sim \pi(a \mid s)}\left[Q^\pi(s, a)\right] Vπ(s)=Eaπ(as)[Qπ(s,a)],它们之间的关系为
V ∗ ( s ) = max ⁡ a Q ∗ ( s , a ) . \begin{equation} V^*(s)=\max _a Q^*(s, a) . \nonumber \end{equation} V(s)=amaxQ(s,a).
根据贝尔曼方程,可以通过迭代方式计算 V ∗ ( s ) V^*(s) V(s) Q ∗ ( s , a ) Q^*(s,a) Q(s,a)
V ∗ ( s ) = max ⁡ a E s ′ ∼ p ( s ′ ∣ s , a ) [ r ( s , a , s ′ ) + γ V ∗ ( s ′ ) ] Q ∗ ( s , a ) = E s ′ ∼ p ( s ′ ∣ s , a ) [ r ( s , a , s ′ ) + γ max ⁡ a ′ Q ∗ ( s ′ , a ′ ) ] V^*(s)=\max _a \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma V^*\left(s^{\prime}\right)\right] \\ Q^*(s, a)=\mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma \max _{a^{\prime}} Q^*\left(s^{\prime}, a^{\prime}\right)\right] V(s)=amaxEsp(ss,a)[r(s,a,s)+γV(s)]Q(s,a)=Esp(ss,a)[r(s,a,s)+γamaxQ(s,a)]
值迭代算法通过直接优化贝尔曼最优方程,迭代计算最优值函数:

1.2.蒙特卡罗方法

事实上,多数场景中,马尔可夫决策过程的状态转移概率 p ( s ′ ∣ s , a ) p(s' \mid s,a) p(ss,a)和奖励函数 r ( s , a , s ′ ) r(s,a,s') r(s,a,s)是未知的。在这种情况下,我们一般需要智能体和环境进行交互,并收集一些样本,然后再根据这些样本来求解马尔可夫决策过程最优策略。这种模型未知,基于采样的数据样本的学习算法被称为模型无关的强化学习算法

Q 函数 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 是初始状态为 s s s ,并执行动作 a a a 后所能得到的期望总回报:
Q π ( s , a ) = E τ ∼ p ( τ ) [ G ( τ s 0 = s , a 0 = a ) ] , Q^\pi(s, a)=\mathbb{E}_{\tau \sim p(\tau)}\left[G\left(\tau_{s_0=s, a_0=a}\right)\right], Qπ(s,a)=Eτp(τ)[G(τs0=s,a0=a)],
其中 τ s 0 = s , a 0 = a \tau_{s_0=s, a_0=a} τs0=s,a0=a 表示轨迹 τ \tau τ 的起始状态和动作为 s , a s, a s,a 。如果模型未知, Q 函数可以通过采样来进行计算,这就是蒙特卡罗方法。

1.3.时序差分学习方法

时序差分学习方法是模拟一段轨迹,每行动一步(或者几步),就利用贝尔曼方程来评估行动前状态的价值,不需探寻完整的轨迹。
Q ^ N π ( s , a ) = 1 N ∑ n = 1 N G ( τ s 0 = s , a 0 = a ( n ) ) = 1 N ( G ( τ s 0 = s , a 0 = a ( N ) ) + ∑ n = 1 N − 1 G ( τ s 0 = s , a 0 = a ( n ) ) ) = 1 N ( G ( τ s 0 = s , a 0 = a ( N ) ) + ( N − 1 ) Q ^ N − 1 π ( s , a ) ) = Q ^ N − 1 π ( s , a ) + 1 N ( G ( τ s 0 = s , a 0 = a ( N ) ) − Q ^ N − 1 π ( s , a ) ) , \begin{aligned} \hat{Q}_N^\pi(s, a) & =\frac{1}{N} \sum_{n=1}^N G\left(\tau_{s_0=s, a_0=a}^{(n)}\right) \\ & =\frac{1}{N}\left(G\left(\tau_{s_0=s, a_0=a}^{(N)}\right)+\sum_{n=1}^{N-1} G\left(\tau_{s_0=s, a_0=a}^{(n)}\right)\right) \\ & =\frac{1}{N}\left(G\left(\tau_{s_0=s, a_0=a}^{(N)}\right)+(N-1) \hat{Q}_{N-1}^\pi(s, a)\right) \\ & =\hat{Q}_{N-1}^\pi(s, a)+\frac{1}{N}\left(G\left(\tau_{s_0=s, a_0=a}^{(N)}\right)-\hat{Q}_{N-1}^\pi(s, a)\right), \end{aligned} Q^Nπ(s,a)=N1n=1NG(τs0=s,a0=a(n))=N1(G(τs0=s,a0=a(N))+n=1N1G(τs0=s,a0=a(n)))=N1(G(τs0=s,a0=a(N))+(N1)Q^N1π(s,a))=Q^N1π(s,a)+N1(G(τs0=s,a0=a(N))Q^N1π(s,a)),
从上式能够看出,值函数 Q ^ π ( s , a ) \hat{Q}^\pi(s, a) Q^π(s,a) 在第 N N N 试验后的平均等于第 N − 1 N-1 N1 试验后的平均加上一个增量.更一般性地,将权重系数 1 N \frac{1}{N} N1 改为一个比较小的正数 α \alpha α .即每次用一个新的轨迹 τ s 0 = s , a 0 = a \tau_{s_0=s, a_0=a} τs0=s,a0=a 更新 Q ^ π ( s , a ) \hat{Q}^\pi(s, a) Q^π(s,a)
Q ^ π ( s , a ) ← Q ^ π ( s , a ) + α ( G ( τ s 0 = s , a 0 = a ) − Q ^ π ( s , a ) ) = ( 1 − α ) Q ^ π ( s , a ) + α G ( τ s 0 = s , a 0 = a ) , {\color{red} \hat{Q}^\pi(s, a) \leftarrow \hat{Q}^\pi(s, a)+\alpha\left(G\left(\tau_{s_0=s, a_0=a}\right)-\hat{Q}^\pi(s, a)\right) = (1-\alpha)\hat{Q}^\pi(s, a) + \alpha G\left(\tau_{s_0=s, a_0=a}\right) }, Q^π(s,a)Q^π(s,a)+α(G(τs0=s,a0=a)Q^π(s,a))=(1α)Q^π(s,a)+αG(τs0=s,a0=a),
其中增量 δ ≜ G ( τ s 0 = s , a 0 = a ) − Q ^ π ( s , a ) \delta \triangleq G\left(\tau_{s_0=s, a_0=a}\right)-\hat{Q}^\pi(s, a) δG(τs0=s,a0=a)Q^π(s,a) 为蒙特卡罗误差,即当前轨迹的真实回报 G ( τ s 0 = s , a 0 = a ) G\left(\tau_{s_0=s, a_0=a}\right) G(τs0=s,a0=a) 与期望回报 Q ^ π ( s , a ) \hat{Q}^\pi(s, a) Q^π(s,a) 间的差距。
对于完整蒙特卡罗回报而言,是指从初始状态-动作 ( s 0 , a 0 ) (s_0,a_0) (s0,a0),沿轨迹 τ \tau τ采样取得的回报,即:
G ( τ s 0 = s , a 0 = a ) = r 0 + γ r 1 + γ 2 r 2 + ⋯ + γ T − 1 r T − 1 G\left(\tau_{s_0=s, a_0=a}\right)=r_0+\gamma r_1+\gamma^2 r_2+\cdots+\gamma^{T-1} r_{T-1} G(τs0=s,a0=a)=r0+γr1+γ2r2++γT1rT1
因为状态-动作值函数满足: Q π ( s , a ) = E s ′ ∼ p ( s ′ ∣ s , a ) [ r ( s , a , s ′ ) + γ E a ′ ∼ π ( a ′ ∣ s ′ ) [ Q π ( s ′ , a ′ ) ] ] Q^\pi(s, a)=\mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma \mathbb{E}_{a^{\prime} \sim \pi\left(a^{\prime} \mid s^{\prime}\right)}\left[Q^\pi\left(s^{\prime}, a^{\prime}\right)\right]\right] Qπ(s,a)=Esp(ss,a)[r(s,a,s)+γEaπ(as)[Qπ(s,a)]],故可以利用贝尔曼方程进行近似,避免完整轨迹的计算:
G ( τ s 0 = s , a 0 = a , s 1 = s ′ , a 1 = a ′ ) = r ( s , a , s ′ ) + γ G ( τ s 0 = s ′ , a 0 = a ′ ) G\left(\tau_{s_0=s, a_0=a, s_1=s^{\prime}, a_1=a^{\prime}}\right)=r\left(s, a, s^{\prime}\right)+\gamma G\left(\tau_{s_0=s^{\prime}, a_0=a^{\prime}}\right) G(τs0=s,a0=a,s1=s,a1=a)=r(s,a,s)+γG(τs0=s,a0=a)
但完整计算 G ( τ s 0 = s ′ , a 0 = a ′ ) G\left(\tau_{s_0=s^{\prime}, a_0=a^{\prime}}\right) G(τs0=s,a0=a) 仍然昂贵,因此进一步使用当前的 Q 估计 Q ^ π ( s ′ , a ′ ) \hat{Q}^\pi\left(s^{\prime}, a^{\prime}\right) Q^π(s,a) 来替代:
G ( τ s 0 = s , a 0 = a , s 1 = s ′ , a 1 = a ′ ) ≈ r ( s , a , s ′ ) + γ Q ^ π ( s ′ , a ′ ) G\left(\tau_{s_0=s, a_0=a, s_1=s^{\prime}, a_1=a^{\prime}}\right) \approx r\left(s, a, s^{\prime}\right)+\gamma \hat{Q}^\pi\left(s^{\prime}, a^{\prime}\right) G(τs0=s,a0=a,s1=s,a1=a)r(s,a,s)+γQ^π(s,a)
上式表明。不再依赖完整轨迹,而是仅利用一步的奖励 r ( s , a , s ′ ) r\left(s, a, s^{\prime}\right) r(s,a,s) 以及下一步状态-动作的估计 Q 值 Q ^ π ( s ′ , a ′ ) \hat{Q}^\pi\left(s^{\prime}, a^{\prime}\right) Q^π(s,a) 近似计算 G G G 。并带入上述红色式子得到:
Q ^ π ( s , a ) ← Q ^ π ( s , a ) + α ( r ( s , a , s ′ ) + γ Q ^ π ( s ′ , a ′ ) − Q ^ π ( s , a ) ) \hat{Q}^\pi(s, a) \leftarrow \hat{Q}^\pi(s, a)+\alpha\left(r\left(s, a, s^{\prime}\right)+\gamma \hat{Q}^\pi\left(s^{\prime}, a^{\prime}\right)-\hat{Q}^\pi(s, a)\right) Q^π(s,a)Q^π(s,a)+α(r(s,a,s)+γQ^π(s,a)Q^π(s,a))
因此,更新 Q ^ π ( s , a ) \hat{Q}^\pi(s, a) Q^π(s,a) 只需要知道当前状态 s s s 和动作 a a a ,奖励 r ( s , a , s ′ ) r\left(s, a, s^{\prime}\right) r(s,a,s) ,下一步的状态 s ′ s^{\prime} s 和动作 a ′ a^{\prime} a .这种策略学习方法称为SARSA 算法,其采样和优化的策略都是 π ϵ \pi^\epsilon πϵ ,因此是一种同策略算法。为了提高计算效率,我们不需要对环境中所有的 s , a s, a s,a 组合进行穷举,并计算值函数.只需要将当前的探索 ( s , a , r , s ′ , a ′ ) \left(s, a, r, s^{\prime}, a^{\prime}\right) (s,a,r,s,a) s ′ , a ′ s^{\prime}, a^{\prime} s,a 作为下一次估计的起始状态和动作。

1.3.1. Q Q Q-学习

Q Q Q-学习是一种异策略的时序差分学习算法(采样策略是 π ϵ ( s ) \pi^\epsilon(s) πϵ(s) ,而优化目标是策略 π \pi π)。(采样策略与改进策略相同,都是 π ϵ ( s ) \pi^\epsilon(s) πϵ(s)被称为同策略算法)
Q Q Q-学习中,Q函数的估计方法为:
Q ( s , a ) ← Q ( s , a ) + α ( r + γ max ⁡ a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ) , Q(s, a) \leftarrow Q(s, a)+\alpha\left(r+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime}\right)-Q(s, a)\right), Q(s,a)Q(s,a)+α(r+γamaxQ(s,a)Q(s,a)),
相当于让 Q ( s , a ) Q(s, a) Q(s,a) 直接去估计最优状态值函数 Q ∗ ( s , a ) Q^*(s, a) Q(s,a) ,与 SARSA 算法不同, Q 学习算法不通过 π ϵ \pi^\epsilon πϵ 来选下一步的动作 a ′ a^{\prime} a ,而是直接选最优的 Q 函数,因此更新后的 Q 函数是关于策略 π \pi π 的,而不是策略 π ϵ \pi^\epsilon πϵ 的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

idkmn_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值