Page 305 - 《软件学报》2025年第10期
P. 305

4702                                                      软件学报  2025  年第  36  卷第  10  期


                    在训练时, 使用极大似然估计, 求模型的参数. 在计算损失时, 使用                  KL  散度或者   MSE  方法等, 计算分布    p  和
                 分布  q  之间的差异. 假设分布     p  和  q  都服从高斯分布, 且方差定为常数. 那么只需要优化二者均值之间的差, 去噪
                 网络参数更新可表示为:

                                                          [         ]
                                                                   2
                                       L d (ϕ) = E ξ∼N(0,I),x∼N(0,I),s∼D ||ξ −ξ ϕ (x t ,t)||
                                                         [     √      √          ]
                                                                 ¯
                                            = E ξ∼N(0,I),x 0 ∼p(x),s∼D ||ξ −ξ ϕ ( α t x 0 +  1− ¯α t ξ), s,t)|| 2  (26)
                 通过梯度下降方式最小化损失函数.
                    扩散模型从一个潜在变量中, 生成一个新的样本, 其分布与先验数据分布相同. 面对稀疏奖励不能立刻给出反
                 馈, 从而导致局部最优问题. 扩散模型通过学习噪声, 结合数据点邻域的信息, 更准确地描述了数据分布, 提高数据
                 的质量. 扩大扩散范围和增大扩散模型时间步, 能更加准确的学习去噪过程, 从而提高了策略网络的精准性和稳定
                 性. 扩散模型的具体采样过程如算法           1  所示.

                 算法  1. 扩散模型的采样过程.

                 输入: 状态   s;
                         a 0 .
                 输出: 动作
                                                         n t
                 1. 初始化: 去噪网络   ξ ϕ , 时间步  , 超参数  {β t ∈ (0,1)} , 静态数据集   D
                                         n t
                                                         t=1
                 2. 前向过程  (添加噪声):
                 3.  a 0 ∼ q(a), q(a) ∼ D
                 4.  α t = 1−β t
                 5. for  t = 1,2,...,n t  do
                                    √
                 6.    a t ∼ q(a t | a 0 ) = N(a t ; α t a 0 ,(1− ¯α t )I)
                                      ¯
                 7. end for
                 8. 逆向过程  (去噪):
                 9. for  t = n t ,n t −1,...,1 do
                 10.    ξ t ∼ ξ ϕ (a t ,t, s)
                           √        √
                 11.   µ t = 1/ α t ·(a t −β t / 1− ¯α t ξ t )
                         √
                 12.   σ t =  1− ¯α t−1 /1− ¯α t ·β t
                 13.   a t−1 = µ t +e 0.5σ 2  ξ t
                 14. end for
                    在扩散模型中, 输入状态信息. 算法          1  第  1  行, 初始化去噪的网络参数, 同时需要初始化扩散的时间序列长度、
                 全局经验池以及高斯分布的方差. 算法            1  第  2–7  行, 给动作添加随机高斯噪声. 从与数据集同分布的数据中采样初
                 始动作, 根据第    6  行的公式, 累积添加    T  次噪声. 算法  1  第  8–14  行, 将加噪后的动作输入去噪网络      ξ ϕ  中, 输出当前
                 t  时刻预测的噪声. 通过预测的噪声, 计算出预测数据分布的方差和均值. 然后根据均值和方差, 得出去噪后的动
                 作, 也就是  t −1 时刻的动作. 重复   T  次, 最后输出动作  .
                                                          a 0
                  3.3   DMEM  算法
                    在  DMEM  算法中, 评估的策略利用了状态值函数和动作值函数. 其中,                 Q(s,a) 价值函数代表回报的均值, 更新
                 方式如公式    (6), 其中涉及的元素, 动作和状态都是采样于静态数据集. 因此无需考虑数据集外的                        OOD  动作, 避免
                 对此的值函数高估问题. 利用         SARSA  方法更新评估网络, 而不是直接选择最大动作               Q 值, 给予策略更多泛化的
                 能力.
                    而状态值函数, 在     IQL  算法的  V  值更新方式的基础上, 针对高维度问题, 进行了如下修改. 从第                3.1  节推导过
                 程中, 得到  π(a | s) 是   V(s) 影响贴近  Q(s,a) 的一个重要因素. 对此, 添加一个有关策略选择动作的惩戒项. 同时这个
   300   301   302   303   304   305   306   307   308   309   310