- 目录
- 回顾:目标函数与状态分布
- 策略梯度定理
- 策略梯度定理求解过程
 
 
上一节介绍了Policy-Based强化学习方法的优势,并介绍了影响目标函数梯度 ∇ J ( θ ) \nabla\mathcal J(\theta) ∇J(θ)的核心要素——状态分布。本节将使用状态分布对策略梯度定理进行表示。
回顾:目标函数与状态分布上一节介绍到:
-  通常将目标函数 J ( θ ) \mathcal J(\theta) J(θ)定义为 情节中初始状态回报的期望,即初始状态的状态价值函数: J ( θ ) = E π ( a ∣ s ; θ ) [ G 0 ∣ S = s 0 ] ≜ V π ( a ∣ s ; θ ) ( s 0 ) \mathcal J(\theta) = \mathbb E_{\pi(a \mid s;\theta)}[G_0 \mid S = s_0] \triangleq V_{\pi(a \mid s;\theta)}(s_0) J(θ)=Eπ(a∣s;θ)[G0∣S=s0]≜Vπ(a∣s;θ)(s0) 
-  情节中策略函数 π ( a ∣ s ; θ ) \pi(a \mid s;\theta) π(a∣s;θ)的变化会影响状态分布的变化,而状态分布的变化直接影响目标函数 J ( θ ) \mathcal J(\theta) J(θ)的变化。 关于状态 s s s出现的平均次数表示如下: η ( s ) = h ( s ) + ∑ s ˉ η ( s ˉ ) ∑ a π ( a ∣ s ˉ ) P ( s ∣ s ˉ , a ) = ∑ k = 0 T − 1 P r { s 0 → s , k , π } \begin{aligned} \eta(s) & = h(s) + \sum_{\bar s}\eta(\bar s)\sum_{a}\pi(a \mid \bar s)P(s \mid \bar s,a) \\ & = \sum_{k=0}^{T-1}P_r\{s_0 \to s,k,\pi\} \end{aligned} η(s)=h(s)+sˉ∑η(sˉ)a∑π(a∣sˉ)P(s∣sˉ,a)=k=0∑T−1Pr{s0→s,k,π} 其中, P r { s 0 → s , k , π } P_r\{s_0 \to s,k,\pi\} Pr{s0→s,k,π}表示初始状态 s 0 s_0 s0,在策略函数 π \pi π的条件下,经过 k k k次状态转移,最终达到状态 s s s的概率。即 存在 P r { s 0 → s , k , π } P_r\{s_0 \to s,k,\pi\} Pr{s0→s,k,π}的概率,初始状态 s 0 s_0 s0经过 k k k次状态转移后的状态必然是状态 s s s(必出现一次状态 s s s)。 因而,状态 s s s在情节中出现的平均次数 η ( s ) \eta(s) η(s)即 从初始时刻 t = 0 t = 0 t=0开始,到情节结束的前一个时刻 T − 1 T-1 T−1之间所有时刻“出现一次状态 s s s”的平均次数之和。 
-  状态 s s s的出现概率表示如下: μ ( s ) = η ( s ) ∑ s ′ η ( s ′ ) \mu(s) = \frac{\eta(s)}{\sum_{s'} \eta(s')} μ(s)=∑s′η(s′)η(s) 
策略梯度定理本质就是求解 目标函数的梯度 ∇ J ( θ ) \nabla \mathcal J(\theta) ∇J(θ), ∇ J ( θ ) \nabla \mathcal J(\theta) ∇J(θ)自身是一个向量,它包含两个要素:
- 梯度数值;
- 梯度方向;
相比于梯度数值,我们更关心的是梯度方向——梯度方向会 引导目标函数 
       
        
         
         
           J 
          
         
           ( 
          
         
           θ 
          
         
           ) 
          
         
        
          \mathcal J(\theta) 
         
        
      J(θ)向最优方向收敛,而梯度数值在迭代过程中会与学习率 
     
      
       
       
         α 
        
       
      
        \alpha 
       
      
    α相乘,它只参与决定 
     
      
       
       
         J 
        
       
         ( 
        
       
         θ 
        
       
         ) 
        
       
      
        \mathcal J(\theta) 
       
      
    J(θ)收敛的 步长(step)。 在后续推导过程中会用到该思想。
根据目标函数的描述,将 
     
      
       
       
         ∇ 
        
       
         J 
        
       
         ( 
        
       
         θ 
        
       
         ) 
        
       
      
        \nabla \mathcal J(\theta) 
       
      
    ∇J(θ)表示如下: 为了使推导过程更具有‘普遍性’ -> 将s_0用s表达;  
      
       
        
        
          ∇ 
         
        
          J 
         
        
          ( 
         
        
          θ 
         
        
          ) 
         
        
          = 
         
        
          ∇ 
         
         
         
           V 
          
         
           π 
          
         
        
          ( 
         
        
          s 
         
        
          ) 
         
        
       
         \nabla \mathcal J(\theta) = \nabla V_\pi(s) 
        
       
     ∇J(θ)=∇Vπ(s) 将 
     
      
       
        
        
          V 
         
        
          π 
         
        
       
         ( 
        
       
         s 
        
       
         ) 
        
       
      
        V_\pi(s) 
       
      
    Vπ(s)使用贝尔曼期望方程进行展开:  
      
       
        
        
          ∇ 
         
         
         
           V 
          
         
           π 
          
         
        
          ( 
         
        
          s 
         
        
          ) 
         
        
          = 
         
        
          ∇ 
         
         
         
           ∑ 
          
          
          
            a 
           
          
            ∈ 
           
          
            A 
           
          
            ( 
           
          
            s 
           
          
            ) 
           
          
         
        
          π 
         
        
          ( 
         
        
          a 
         
        
          ∣ 
         
        
          s 
         
        
          ) 
         
         
         
           q 
          
         
           π 
          
         
        
          ( 
         
        
          s 
         
        
          , 
         
        
          a 
         
        
          ) 
         
        
       
         \nabla V_\pi(s) = \nabla \sum_{a \in \mathcal A(s)}\pi(a \mid s)q_\pi(s,a) 
        
       
     ∇Vπ(s)=∇a∈A(s)∑π(a∣s)qπ(s,a) 将连加符号 
     
      
       
        
        
          ∑ 
         
         
         
           a 
          
         
           ∈ 
          
         
           A 
          
         
           ( 
          
         
           s 
          
         
           ) 
          
         
        
       
      
        \sum_{a \in \mathcal A(s)} 
       
      
    ∑a∈A(s)与梯度符号交换位置——即对连加操作中的每一项求解梯度,并对 
     
      
       
       
         π 
        
       
         ( 
        
       
         a 
        
       
         ∣ 
        
       
         s 
        
       
         ) 
        
        
        
          q 
         
        
          π 
         
        
       
         ( 
        
       
         s 
        
       
         , 
        
       
         a 
        
       
         ) 
        
       
      
        \pi(a \mid s)q_\pi(s,a) 
       
      
    π(a∣s)qπ(s,a)求解梯度; 可以看成‘乘法求导’。  
      
       
        
         
         
           ∑ 
          
          
          
            a 
           
          
            ∈ 
           
          
            A 
           
          
            ( 
           
          
            s 
           
          
            ) 
           
          
         
        
          ∇ 
         
        
          π 
         
        
          ( 
         
        
          a 
         
        
          ∣ 
         
        
          s 
         
        
          ) 
         
         
         
           q 
          
         
           π 
          
         
        
          ( 
         
        
          s 
         
        
          , 
         
        
          a 
         
        
          ) 
         
        
          + 
         
         
         
           ∑ 
          
          
          
            a 
           
          
            ∈ 
           
          
            A 
           
          
            ( 
           
          
            s 
           
          
            ) 
           
          
         
        
          π 
         
        
          ( 
         
        
          a 
         
        
          ∣ 
         
        
          s 
         
        
          ) 
         
        
          ∇ 
         
         
         
           q 
          
         
           π 
          
         
        
          ( 
         
        
          s 
         
        
          , 
         
        
          a 
         
        
          ) 
         
        
       
         \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) + \sum_{a \in \mathcal A(s)}\pi(a \mid s)\nabla q_\pi(s,a) 
        
       
     a∈A(s)∑∇π(a∣s)qπ(s,a)+a∈A(s)∑π(a∣s)∇qπ(s,a)
此时观察第二项 ∑ a ∈ A ( s ) π ( a ∣ s ) ∇ q π ( s , a ) \sum_{a \in \mathcal A(s)}\pi(a \mid s)\nabla q_\pi(s,a) ∑a∈A(s)π(a∣s)∇qπ(s,a)。 q π ( s , a ) q_\pi(s,a) qπ(s,a)可以继续展开,即状态 s s s条件下选择并执行动作 a a a,经过状态转移得到下一时刻状态 s ′ s' s′。 ∇ q π ( s , a ) = ∇ ∑ s ′ , r P ( s ′ , r ∣ s , a ) [ r + γ V π ( s ′ ) ] = ∇ ∑ s ′ , r P ( s ′ , r ∣ s , a ) ⋅ r + ∇ ∑ s ′ , r γ P ( s ′ , r ∣ s , a ) V π ( s ′ ) \begin{aligned} \nabla q_\pi(s,a) & = \nabla \sum_{s',r}P(s',r \mid s,a)[r + \gamma V_\pi(s')] \\ & = \nabla \sum_{s',r}P(s',r \mid s,a) \cdot r + \nabla \sum_{s',r} \gamma P(s',r \mid s,a) V_\pi(s') \end{aligned} ∇qπ(s,a)=∇s′,r∑P(s′,r∣s,a)[r+γVπ(s′)]=∇s′,r∑P(s′,r∣s,a)⋅r+∇s′,r∑γP(s′,r∣s,a)Vπ(s′) 我们要对 θ \theta θ求解梯度,只有策略函数 π ( a ∣ s ; θ ) \pi(a \mid s;\theta) π(a∣s;θ)和包含策略函数的 V π , q π V_\pi,q_\pi Vπ,qπ中含有 θ \theta θ。因此:动态特性函数 P ( s ′ , r ∣ s , a ) P(s',r \mid s,a) P(s′,r∣s,a),衰减系数 γ \gamma γ均视作常数。 对 ∇ q π ( s , a ) \nabla q_\pi(s,a) ∇qπ(s,a)整理结果如下: ∇ q π ( s , a ) = γ ∑ s ′ , r P ( s ′ , r ∣ s , a ) ∇ V π ( s ′ ) \nabla q_\pi(s,a) = \gamma \sum_{s',r}P(s',r \mid s,a) \nabla V_\pi(s') ∇qπ(s,a)=γs′,r∑P(s′,r∣s,a)∇Vπ(s′) 该结果可以继续简化——对 r r r求解边缘概率分布:此时有: ∑ r P ( r ∣ s , a ) = 1 \sum_{r} P(r \mid s,a) = 1 r∑P(r∣s,a)=1 因此 ∇ q π ( s , a ) \nabla q_\pi(s,a) ∇qπ(s,a)可以继续化简如下: ∇ q π ( s , a ) = γ ∑ r P ( r ∣ s , a ) × ∑ s ′ P ( s ′ ∣ s , a ) ∇ V π ( s ′ ) = γ × 1 × ∑ s ′ P ( s ′ ∣ s , a ) ∇ V π ( s ′ ) = γ ∑ s ′ P ( s ′ ∣ s , a ) ∇ V π ( s ′ ) \begin{aligned} \nabla q_\pi(s,a) & = \gamma \sum_{r}P(r \mid s,a) \times \sum_{s'} P(s' \mid s,a) \nabla V_\pi(s') \\ & = \gamma \times 1 \times \sum_{s'} P(s' \mid s,a) \nabla V_\pi(s') \\ & = \gamma \sum_{s'} P(s' \mid s,a) \nabla V_\pi(s') \end{aligned} ∇qπ(s,a)=γr∑P(r∣s,a)×s′∑P(s′∣s,a)∇Vπ(s′)=γ×1×s′∑P(s′∣s,a)∇Vπ(s′)=γs′∑P(s′∣s,a)∇Vπ(s′) ∇ q π ( s , a ) \nabla q_\pi(s,a) ∇qπ(s,a)至此无法继续向下化简,对 ∇ V π ( s ) \nabla V_\pi(s) ∇Vπ(s)进行整理: ∇ V π ( s ) = ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) + ∑ a ∈ A ( s ) π ( a ∣ s ) ∇ q π ( s , a ) = ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) + ∑ a ∈ A ( s ) π ( a ∣ s ) × γ ∑ s ′ P ( s ′ ∣ s , a ) ∇ V π ( s ′ ) \begin{aligned} \nabla V_\pi(s) & = \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) + \sum_{a \in \mathcal A(s)}\pi(a \mid s)\nabla q_\pi(s,a) \\ & = \sum_{a \in \mathcal A(s)}\nabla \pi(a \mid s)q_\pi(s,a) + \sum_{a \in \mathcal A(s)} \pi(a \mid s) \times \gamma \sum_{s'} P(s' \mid s,a) \nabla V_\pi(s') \end{aligned} ∇Vπ(s)=a∈A(s)∑∇π(a∣s)qπ(s,a)+a∈A(s)∑π(a∣s)∇qπ(s,a)=a∈A(s)∑∇π(a∣s)qπ(s,a)+a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)∇Vπ(s′)
我们发现,上述式子是 关于 
       
        
         
         
           ∇ 
          
          
          
            V 
           
          
            π 
           
          
         
           ( 
          
         
           s 
          
         
           ) 
          
         
        
          \nabla V_\pi(s) 
         
        
      ∇Vπ(s)和 
       
        
         
         
           ∇ 
          
          
          
            V 
           
          
            π 
           
          
         
           ( 
          
          
          
            s 
           
          
            ′ 
           
          
         
           ) 
          
         
        
          \nabla V_\pi(s') 
         
        
      ∇Vπ(s′)的迭代式子,即 找到了 
       
        
         
         
           ∇ 
          
          
          
            V 
           
          
            π 
           
          
         
           ( 
          
         
           s 
          
         
           ) 
          
         
        
          \nabla V_\pi(s) 
         
        
      ∇Vπ(s)与 
       
        
         
         
           ∇ 
          
          
          
            V 
           
          
            π 
           
          
         
           ( 
          
          
          
            s 
           
          
            ′ 
           
          
         
           ) 
          
         
        
          \nabla V_\pi(s') 
         
        
      ∇Vπ(s′)的关联关系,为了确定这组关联关系,我们继续对 
     
      
       
       
         ∇ 
        
        
        
          V 
         
        
          π 
         
        
       
         ( 
        
        
        
          s 
         
        
          ′ 
         
        
       
         ) 
        
       
      
        \nabla V_\pi(s') 
       
      
    ∇Vπ(s′)向下展开: 设置场景:状态 
     
      
       
        
        
          s 
         
        
          ′ 
         
        
       
      
        s' 
       
      
    s′条件下,通过策略函数 
     
      
       
       
         π 
        
       
         ( 
        
        
        
          a 
         
        
          ′ 
         
        
       
         ∣ 
        
        
        
          s 
         
        
          ′ 
         
        
       
         ; 
        
       
         θ 
        
       
         ) 
        
       
      
        \pi(a' \mid s';\theta) 
       
      
    π(a′∣s′;θ)选择动作 
     
      
       
        
        
          a 
         
        
          ′ 
         
        
       
      
        a' 
       
      
    a′,经过 状态转移 得到 
     
      
       
        
        
          s 
         
        
          ′ 
         
        
       
      
        s' 
       
      
    s′的下一时刻状态 
     
      
       
        
        
          s 
         
         
         
           ′ 
          
         
           ′ 
          
         
        
       
      
        s'' 
       
      
    s′′。 s'状态价值函数求解梯度同s  
      
       
        
        
          ∇ 
         
         
         
           V 
          
         
           π 
          
         
        
          ( 
         
         
         
           s 
          
         
           ′ 
          
         
        
          ) 
         
        
          = 
         
         
         
           ∑ 
          
          
           
           
             a 
            
           
             ′ 
            
           
          
            ∈ 
           
          
            A 
           
          
            ( 
           
           
           
             s 
            
           
             ′ 
            
           
          
            ) 
           
          
         
        
          ∇ 
         
        
          π 
         
        
          ( 
         
         
         
           a 
          
         
           ′ 
          
         
        
          ∣ 
         
         
         
           s 
          
         
           ′ 
          
         
        
          ) 
         
         
         
           q 
          
         
           π 
          
         
        
          ( 
         
         
         
           s 
          
         
           ′ 
          
         
        
          , 
         
         
         
           a 
          
         
           ′ 
          
         
        
          ) 
         
        
          + 
         
         
         
           ∑ 
          
          
           
           
             a 
            
           
             ′ 
            
           
          
            ∈ 
           
          
            A 
           
          
            ( 
           
           
           
             s 
            
           
             ′ 
            
           
          
            ) 
           
          
         
        
          π 
         
        
          ( 
         
         
         
           a 
          
         
           ′ 
          
         
        
          ∣ 
         
         
         
           s 
          
         
           ′ 
          
         
        
          ) 
         
        
          × 
         
        
          γ 
         
         
         
           ∑ 
          
          
          
            s 
           
           
           
             ′ 
            
           
             ′ 
            
           
          
         
        
          P 
         
        
          ( 
         
         
         
           s 
          
          
          
            ′ 
           
          
            ′ 
           
          
         
        
          ∣ 
         
         
         
           s 
          
         
           ′ 
          
         
        
          , 
         
         
         
           a 
          
         
           ′ 
          
         
        
          ) 
         
        
          ∇ 
         
         
         
           V 
          
         
           π 
          
         
        
          ( 
         
         
         
           s 
          
          
          
            ′ 
           
          
            ′ 
           
          
         
        
          ) 
         
        
       
         \nabla V_\pi(s') = \sum_{a' \in \mathcal A(s')} \nabla \pi(a' \mid s')q_\pi(s',a') + \sum_{a' \in \mathcal A(s')}\pi(a' \mid s') \times \gamma \sum_{s''}P(s'' \mid s',a') \nabla V_\pi(s'') 
        
       
     ∇Vπ(s′)=a′∈A(s′)∑∇π(a′∣s′)qπ(s′,a′)+a′∈A(s′)∑π(a′∣s′)×γs′′∑P(s′′∣s′,a′)∇Vπ(s′′) 将 
     
      
       
       
         ∇ 
        
        
        
          V 
         
        
          π 
         
        
       
         ( 
        
        
        
          s 
         
        
          ′ 
         
        
       
         ) 
        
       
      
        \nabla V_\pi(s') 
       
      
    ∇Vπ(s′)带回 
     
      
       
       
         ∇ 
        
        
        
          V 
         
        
          π 
         
        
       
         ( 
        
       
         s 
        
       
         ) 
        
       
      
        \nabla V_\pi(s) 
       
      
    ∇Vπ(s),则有:  
      
       
        
        
          ∇ 
         
         
         
           V 
          
         
           π 
          
         
        
          ( 
         
        
          s 
         
        
          ) 
         
        
          = 
         
         
         
           ∑ 
          
          
          
            a 
           
          
            ∈ 
           
          
            A 
           
          
            ( 
           
          
            s 
           
          
            ) 
           
          
         
        
          ∇ 
         
        
          π 
         
        
          ( 
         
        
          a 
         
        
          ∣ 
         
        
          s 
         
        
          ) 
         
         
         
           q 
          
         
           π 
          
         
        
          ( 
         
        
          s 
         
        
          , 
         
        
          a 
         
        
          ) 
         
        
          + 
         
         
         
           ∑ 
          
          
          
            a 
           
          
            ∈ 
           
          
            A 
           
          
            ( 
           
          
            s 
           
          
            ) 
           
          
         
        
          π 
         
        
          ( 
         
        
          a 
         
        
          ∣ 
         
        
          s 
         
        
          ) 
         
        
          × 
         
        
          γ 
         
         
         
           ∑ 
          
          
          
            s 
           
          
            ′ 
           
          
         
        
          P 
         
        
          ( 
         
         
         
           s 
          
         
           ′ 
          
         
        
          ∣ 
         
        
          s 
         
        
          , 
         
        
          a 
         
        
          ) 
         
         
         
           { 
          
          
          
            ∑ 
           
           
            
            
              a 
             
            
              ′ 
             
            
           
             ∈ 
            
           
             A 
            
           
             ( 
            
            
            
              s 
             
            
              ′ 
             
            
           
             ) 
            
           
          
         
           ∇ 
          
         
           π 
          
         
           ( 
          
          
          
            a 
           
          
            ′ 
           
          
         
           ∣ 
          
          
          
            s 
           
          
            ′ 
           
          
         
           ) 
          
          
          
            q 
           
          
            π 
           
          
         
           ( 
          
          
          
            s 
           
          
            ′ 
           
          
         
           , 
          
          
          
            a 
           
          
            ′ 
           
          
         
           ) 
          
         
           + 
          
          
          
            ∑ 
           
           
            
            
              a 
             
            
              ′ 
             
            
           
             ∈ 
            
           
             A 
            
           
             ( 
            
            
            
              s 
             
            
              ′ 
             
            
           
             ) 
            
           
          
         
           π 
          
         
           ( 
          
          
          
            a 
           
          
            ′ 
           
          
         
           ∣ 
          
          
          
            s 
           
          
            ′ 
           
          
         
           ) 
          
         
           × 
          
         
           γ 
          
          
          
            ∑ 
           
           
           
             s 
            
            
            
              ′ 
             
            
              ′ 
             
            
           
          
         
           P 
          
         
           ( 
          
          
          
            s 
           
           
           
             ′ 
            
           
             ′ 
            
           
          
         
           ∣ 
          
          
          
            s 
           
          
            ′ 
           
          
         
           , 
          
          
          
            a 
           
          
            ′ 
           
          
         
           ) 
          
         
           ∇ 
          
          
          
            V 
           
          
            π 
           
          
         
           ( 
          
          
          
            s 
           
           
           
             ′ 
            
           
             ′ 
            
           
          
         
           ) 
          
         
           } 
          
         
        
       
         \nabla V_\pi(s) = \sum_{a \in \mathcal A(s)}\nabla \pi(a \mid s)q_\pi(s,a) + \sum_{a \in \mathcal A(s)} \pi(a \mid s) \times \gamma \sum_{s'} P(s' \mid s,a) \left\{ \sum_{a' \in \mathcal A(s')} \nabla \pi(a' \mid s')q_\pi(s',a') + \sum_{a' \in \mathcal A(s')} \pi(a' \mid s') \times \gamma \sum_{s''}P(s'' \mid s',a') \nabla V_\pi(s'') \right\} 
        
       
     ∇Vπ(s)=a∈A(s)∑∇π(a∣s)qπ(s,a)+a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)⎩ 
               
                
              ⎨ 
               
                
              ⎧a′∈A(s′)∑∇π(a′∣s′)qπ(s′,a′)+a′∈A(s′)∑π(a′∣s′)×γs′′∑P(s′′∣s′,a′)∇Vπ(s′′)⎭ 
               
                
              ⎬ 
               
                
              ⎫
现在已经将状态 
     
      
       
       
         s 
        
       
      
        s 
       
      
    s状态转移了两次: 
     
      
       
       
         s 
        
       
         → 
        
        
        
          s 
         
        
          ′ 
         
        
       
         → 
        
        
        
          s 
         
         
         
           ′ 
          
         
           ′ 
          
         
        
       
      
        s \to s' \to s'' 
       
      
    s→s′→s′′,根据上面的展开结果,尝试寻找求解 
      
       
        
        
          ∇ 
         
         
         
           V 
          
         
           π 
          
         
        
          ( 
         
        
          s 
         
        
          ) 
         
        
       
         \nabla V_\pi(s) 
        
       
     ∇Vπ(s)的规律: 将上述公式完全展开,并归纳成若干项的加和 形式: 大家可以自行尝试展开,最终得到下面结果的加和形式即可
- 第一项: ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) a∈A(s)∑∇π(a∣s)qπ(s,a)
- 第二项: ∑ a ∈ A ( s ) π ( a ∣ s ) × γ ∑ s ′ P ( s ′ ∣ s , a ) ∑ a ′ ∈ A ( s ′ ) ∇ π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) \sum_{a \in \mathcal A(s)} \pi(a \mid s) \times \gamma \sum_{s'} P(s' \mid s,a)\sum_{a' \in \mathcal A(s')} \nabla \pi(a' \mid s')q_\pi(s',a') a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)a′∈A(s′)∑∇π(a′∣s′)qπ(s′,a′)
- 第三项: ∑ a ∈ A ( s ) π ( a ∣ s ) × γ ∑ s ′ P ( s ′ ∣ s , a ) ∑ a ′ ∈ A ( s ′ ) π ( a ′ ∣ s ′ ) × γ ∑ s ′ ′ P ( s ′ ′ ∣ s ′ , a ′ ) ∇ V π ( s ′ ′ ) \sum_{a \in \mathcal A(s)}\pi(a \mid s) \times \gamma \sum_{s'} P(s' \mid s,a) \sum_{a' \in \mathcal A(s')} \pi(a' \mid s') \times \gamma \sum_{s''}P(s'' \mid s',a') \nabla V_\pi(s'') a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)a′∈A(s′)∑π(a′∣s′)×γs′′∑P(s′′∣s′,a′)∇Vπ(s′′)
首先,先观察第二项: ∑ a ∈ A ( s ) π ( a ∣ s ) × γ ∑ s ′ P ( s ′ ∣ s , a ) ∑ a ′ ∈ A ( s ′ ) ∇ π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) \sum_{a \in \mathcal A(s)} \pi(a \mid s) \times \gamma \sum_{s'} P(s' \mid s,a)\sum_{a' \in \mathcal A(s')} \nabla \pi(a' \mid s')q_\pi(s',a') a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)a′∈A(s′)∑∇π(a′∣s′)qπ(s′,a′) 观察前半部分: ∑ a ∈ A ( s ) π ( a ∣ s ) × γ ∑ s ′ P ( s ′ ∣ s , a ) \sum_{a \in \mathcal A(s)} \pi(a \mid s) \times \gamma \sum_{s'} P(s' \mid s,a) ∑a∈A(s)π(a∣s)×γ∑s′P(s′∣s,a),前半部分主要描述的是 状态 s s s转移至 s ′ s' s′的转移概率。现在可能观察的不够明朗,我们将前半部分进行如下变换:
-  将 ∑ s ′ \sum_{s'} ∑s′提到前面: ∑ a ∈ A ( s ) ∑ s ′ γ × π ( a ∣ s ) P ( s ′ ∣ s , a ) \sum_{a \in \mathcal A(s)}\sum_{s'} \gamma \times \pi(a \mid s) P(s' \mid s,a) a∈A(s)∑s′∑γ×π(a∣s)P(s′∣s,a) 
-  其中, π ( a ∣ s ) \pi(a \mid s) π(a∣s)可看作 s s s状态下动作 a a a发生的条件概率; P ( s ′ ∣ s , a ) P(s' \mid s,a) P(s′∣s,a)可看作 s s s状态下执行动作 a a a进行状态转移,转移状态为 s ′ s' s′的条件概率。 根据动态规划求解强化学习任务——策略评估[解析解]提到的条件概率密度积分: ∑ a ∈ A p ( c ∣ a , B ) p ( a ∣ B ) = ∑ a ∈ A p ( c , a ∣ B ) = p ( c ∣ B ) \sum_{a \in \mathcal A}p(c \mid a,\mathcal B)p(a \mid \mathcal B) = \sum_{a \in \mathcal A}p(c,a \mid \mathcal B) = p(c \mid \mathcal B) a∈A∑p(c∣a,B)p(a∣B)=a∈A∑p(c,a∣B)=p(c∣B) 将条件概率 π ( a ∣ s ) \pi(a \mid s) π(a∣s)和条件概率 P ( s ′ ∣ s , a ) P(s' \mid s,a) P(s′∣s,a) 乘积结果的概率符号设为 P \mathcal P P, 可以将上述式子化简成: ∑ a ∈ A ( s ) ∑ s ′ γ × π ( a ∣ s ) P ( s ′ ∣ s , a ) = ∑ s ′ γ × P ( s ′ ∣ s ) \begin{aligned} \sum_{a \in \mathcal A(s)}\sum_{s'} \gamma \times \pi(a \mid s) P(s' \mid s,a) = \sum_{s'}\gamma \times\mathcal P(s' \mid s) \end{aligned} a∈A(s)∑s′∑γ×π(a∣s)P(s′∣s,a)=s′∑γ×P(s′∣s) 
-  根据上式,可以将 P ( s ′ ∣ s ) \mathcal P(s' \mid s) P(s′∣s)看作成 状态 s s s通过1次状态转移得到新状态 s ′ s' s′的概率。这和我们对状态分布中 P r { s 0 → s , k , π } P_r\{s_0 \to s,k,\pi\} Pr{s0→s,k,π}的定义十分相似,我们可以改成: P ( s ′ ∣ s ) = P r { s → s ′ , 1 , π } \mathcal P(s' \mid s) = P_r\{s \to s',1,\pi\} P(s′∣s)=Pr{s→s′,1,π} 
因此,前半部分可以转化成: ∑ a ∈ A ( s ) π ( a ∣ s ) × γ ∑ s ′ P ( s ′ ∣ s , a ) = ∑ s ′ γ × P r { s → s ′ , 1 , π } \sum_{a \in \mathcal A(s)} \pi(a \mid s) \times \gamma \sum_{s'} P(s' \mid s,a) = \sum_{s'} \gamma \times P_r\{s \to s',1,\pi\} a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)=s′∑γ×Pr{s→s′,1,π}
至此,改进后第二项表达如下: ∑ s ′ γ × P r { s → s ′ , 1 , π } ∑ a ′ ∈ A ( s ′ ) ∇ π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) \sum_{s'} \gamma \times P_r\{s \to s',1,\pi\}\sum_{a' \in \mathcal A(s')} \nabla \pi(a' \mid s')q_\pi(s',a') s′∑γ×Pr{s→s′,1,π}a′∈A(s′)∑∇π(a′∣s′)qπ(s′,a′)
继续观察这个改进后的第二项,虽然现在不清楚它表示的具体意义是什么——但是该式子中包含2个变量和1个常数量:
- 变量 → s , s ′ \to s,s' →s,s′;( a ′ a' a′只能看成一个中间过程量,因为它最终是要被 ∑ a ′ ∈ A ( s ′ ) \sum_{a' \in \mathcal A(s')} ∑a′∈A(s′)积分掉的量)
- 常数量 → \to → 转移次数:1
我们可以将其理解为:状态 s s s经过 1次状态转移 得到状态 s ′ s' s′的量的描述。 可以将其做成一个 通向式,其表述含义为:状态 s s s经过 k k k次状态转移得到状态 x x x的量的描述。并且 x ∈ x \in x∈转移后的状态集合 S \mathcal S S。对应式子表示如下: ∑ x ∈ S γ × P r { s → x , k , π } ∑ a ∈ A ( x ) ∇ π ( a ∣ x ) q π ( x , a ) \sum_{x \in \mathcal S} \gamma \times P_r\{s \to x,k,\pi\} \sum_{a \in \mathcal A(x)} \nabla \pi(a \mid x)q_\pi(x,a) x∈S∑γ×Pr{s→x,k,π}a∈A(x)∑∇π(a∣x)qπ(x,a)
重点:此时第二项的通式已经得到了,观察第一项是否满足该通式? 必然是满足的。 观察第一项式子: ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) a∈A(s)∑∇π(a∣s)qπ(s,a) 我们可以将其理解成:状态 s s s经过 0次状态转移 得到状态 s s s自身的量的描述。 表述如下:
- 状态 s s s状态转移0次 → \to → 即没有进行状态转移,其结果是状态 s s s自身的概率 必然是1;
- 由于没有状态转移,转移后的状态集合 S \mathcal S S的选择只有 s s s一个。即: ∑ x ∈ S P r { s → x , k , π } = P r { s → s , 0 , π } ∣ x = s = 1 \sum_{x \in \mathcal S}P_r\{s \to x,k,\pi\} = P_r\{s \to s,0,\pi\}\mid_{x=s} = 1 x∈S∑Pr{s→x,k,π}=Pr{s→s,0,π}∣x=s=1
- 由于没有状态转移,自然没有奖励结果衰减,因此,衰减系数 γ = 1 \gamma = 1 γ=1;
因此,第一项经过整理表示如下: ∑ x ∈ S γ × P r { s → x , k , π } ∑ a ∈ A ( x ) ∇ π ( a ∣ x ) q π ( x , a ) = 1 × P r { s → s , 0 , π } ∣ x = s ∑ a ∈ A ( x ) ∇ π ( a ∣ x ) q π ( x , a ) = 1 × 1 × ∑ a ∈ A ( x ) ∇ π ( a ∣ x ) q π ( x , a ) = ∑ a ∈ A ( x ) ∇ π ( a ∣ x ) q π ( x , a ) \begin{split} & \sum_{x \in \mathcal S} \gamma \times P_r\{s \to x,k,\pi\} \sum_{a \in \mathcal A(x)} \nabla \pi(a \mid x)q_\pi(x,a) \\ & = 1 \times P_r\{s \to s,0,\pi\} \mid_{x =s}\sum_{a \in \mathcal A(x)} \nabla \pi(a \mid x)q_\pi(x,a) \\ & = 1 \times 1 \times \sum_{a \in \mathcal A(x)} \nabla \pi(a \mid x)q_\pi(x,a) \\ & = \sum_{a \in \mathcal A(x)} \nabla \pi(a \mid x)q_\pi(x,a) \end{split} x∈S∑γ×Pr{s→x,k,π}a∈A(x)∑∇π(a∣x)qπ(x,a)=1×Pr{s→s,0,π}∣x=sa∈A(x)∑∇π(a∣x)qπ(x,a)=1×1×a∈A(x)∑∇π(a∣x)qπ(x,a)=a∈A(x)∑∇π(a∣x)qπ(x,a)
至此,第一项和第二项全部满足上述通式。第三项通过观察,发现它仍然是一个迭代式,因为第三项中包含 ∇ V π ( s ′ ′ ) \nabla V_\pi(s'') ∇Vπ(s′′),该项仍然可以继续展开,并一直展开下去。 示例:如果展开 N N N次,前 N − 1 N-1 N−1项均能表述为上述通式结果。
至此, 
     
      
       
       
         ∇ 
        
        
        
          V 
         
        
          π 
         
        
       
         ( 
        
       
         s 
        
       
         ) 
        
       
      
        \nabla V_\pi(s) 
       
      
    ∇Vπ(s)表示如下: 注意:这里的‘无穷’符号并非表示迭代公式能够无限展开,即到情节结束时,后续展开项的结果均为0;  
      
       
        
        
          ∇ 
         
         
         
           V 
          
         
           π 
          
         
        
          ( 
         
        
          s 
         
        
          ) 
         
        
          = 
         
         
         
           ∑ 
          
          
          
            x 
           
          
            ∈ 
           
          
            S 
           
          
         
         
         
           ∑ 
          
          
          
            k 
           
          
            = 
           
          
            0 
           
          
         
           ∞ 
          
         
         
         
           γ 
          
         
           k 
          
         
        
          × 
         
         
         
           P 
          
         
           r 
          
         
        
          { 
         
        
          s 
         
        
          → 
         
        
          x 
         
        
          , 
         
        
          k 
         
        
          , 
         
        
          π 
         
        
          } 
         
         
         
           ∑ 
          
          
          
            a 
           
          
            ∈ 
           
          
            A 
           
          
            ( 
           
          
            x 
           
          
            ) 
           
          
         
        
          ∇ 
         
        
          π 
         
        
          ( 
         
        
          a 
         
        
          ∣ 
         
        
          x 
         
        
          ) 
         
         
         
           q 
          
         
           π 
          
         
        
          ( 
         
        
          x 
         
        
          , 
         
        
          a 
         
        
          ) 
         
        
       
         \nabla V_\pi(s) = \sum_{x \in \mathcal S} \sum_{k=0}^\infty \gamma^k \times P_r\{s \to x,k,\pi\} \sum_{a \in \mathcal A(x)} \nabla \pi(a \mid x)q_\pi(x,a) 
        
       
     ∇Vπ(s)=x∈S∑k=0∑∞γk×Pr{s→x,k,π}a∈A(x)∑∇π(a∣x)qπ(x,a)
现在,将公式中所有的 s s s替换回初始状态 s 0 s_0 s0,将公式中所有的 x x x替换回 s → s \to s→ 最终还是要求解初始状态价值函数的梯度——定义就是这么定义的。
∇ V π ( s 0 ) = ∑ s ∈ S ∑ k = 0 ∞ γ k × P r { s 0 → s , k , π } ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) \nabla V_\pi(s_0) = \sum_{s \in \mathcal S} \sum_{k=0}^\infty \gamma^k \times P_r\{s_0 \to s,k,\pi\} \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) ∇Vπ(s0)=s∈S∑k=0∑∞γk×Pr{s0→s,k,π}a∈A(s)∑∇π(a∣s)qπ(s,a)
将状态分布 η ( s ) = ∑ k = 0 T − 1 P r { s 0 → s , k , π } \eta(s) = \sum_{k=0}^{T-1}P_r\{s_0 \to s,k,\pi\} η(s)=∑k=0T−1Pr{s0→s,k,π}带回上式: ∇ V π ( s 0 ) = ∑ s ∈ S ∑ k = 0 ∞ γ k × P r { s 0 → s , k , π } ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) = ∑ s ∈ S γ k × η ( s ) ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) \begin{aligned} \nabla V_\pi(s_0) & = \sum_{s \in \mathcal S} \sum_{k=0}^\infty \gamma^k \times P_r\{s_0 \to s,k,\pi\} \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) \\ & = \sum_{s \in \mathcal S} \gamma^k \times \eta(s) \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) \end{aligned} ∇Vπ(s0)=s∈S∑k=0∑∞γk×Pr{s0→s,k,π}a∈A(s)∑∇π(a∣s)qπ(s,a)=s∈S∑γk×η(s)a∈A(s)∑∇π(a∣s)qπ(s,a) 将 s s s的出现概率 μ ( s ) \mu(s) μ(s)引入到公式中: → \to → 乘以一个 ∑ s ′ η ( s ′ ) × 1 ∑ s ′ η ( s ′ ) \sum_{s'} \eta(s') \times \frac{1}{\sum_{s'} \eta(s')} ∑s′η(s′)×∑s′η(s′)1: ∇ J ( θ ) = ∇ V π ( s 0 ) = ∑ s ′ η ( s ′ ) ∑ s ∈ S γ k × η ( s ) ∑ s ′ η ( s ′ ) ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) = ∑ s ′ η ( s ′ ) ∑ s ∈ S γ k × μ ( s ) ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) \begin{aligned} \nabla \mathcal J(\theta) & = \nabla V_\pi(s_0) \\ & = \sum_{s'} \eta(s') \sum_{s \in \mathcal S} \gamma^k \times \frac{\eta(s)}{\sum_{s'} \eta(s')} \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a)\\ & = \sum_{s'} \eta(s') \sum_{s \in \mathcal S} \gamma^k \times \mu(s)\sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) \end{aligned} ∇J(θ)=∇Vπ(s0)=s′∑η(s′)s∈S∑γk×∑s′η(s′)η(s)a∈A(s)∑∇π(a∣s)qπ(s,a)=s′∑η(s′)s∈S∑γk×μ(s)a∈A(s)∑∇π(a∣s)qπ(s,a)
 
     
      
       
        
        
          ∑ 
         
         
         
           s 
          
         
           ′ 
          
         
        
       
         η 
        
       
         ( 
        
        
        
          s 
         
        
          ′ 
         
        
       
         ) 
        
       
      
        \sum_{s'} \eta(s') 
       
      
    ∑s′η(s′)是归一化因子,是常数,它只是影响梯度的具体数值,根据本节开头介绍,我们更加关注梯度方向,因此:  
     
      
       
       
         γ 
        
       
      
        \gamma 
       
      
    γ在这里被 
     
      
       
       
         ∝ 
        
       
      
        \propto 
       
      
    ∝(正比于符号)包含在内;  
      
       
        
        
          ∇ 
         
        
          J 
         
        
          ( 
         
        
          θ 
         
        
          ) 
         
        
          ∝ 
         
         
         
           ∑ 
          
          
          
            s 
           
          
            ∈ 
           
          
            S 
           
          
         
        
          μ 
         
        
          ( 
         
        
          s 
         
        
          ) 
         
         
         
           ∑ 
          
          
          
            a 
           
          
            ∈ 
           
          
            A 
           
          
            ( 
           
          
            s 
           
          
            ) 
           
          
         
        
          ∇ 
         
        
          π 
         
        
          ( 
         
        
          a 
         
        
          ∣ 
         
        
          s 
         
        
          ) 
         
         
         
           q 
          
         
           π 
          
         
        
          ( 
         
        
          s 
         
        
          , 
         
        
          a 
         
        
          ) 
         
        
       
         \nabla \mathcal J(\theta) \propto \sum_{s \in \mathcal S} \mu(s)\sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) 
        
       
     ∇J(θ)∝s∈S∑μ(s)a∈A(s)∑∇π(a∣s)qπ(s,a)
至此,完成了求解目标函数梯度 ∇ J ( θ ) \nabla \mathcal J(\theta) ∇J(θ)的全部推倒过程。下一节将介绍蒙特卡洛策略梯度方法(REINFORCE)。
相关参考: 【强化学习】策略梯度方法-策略梯度定理 深度强化学习原理、算法pytorch实战 —— 刘全,黄志刚编著

 
                 
    