Page 152 - 《软件学报》2026年第7期
P. 152

周俊伟 等: PCLog: 近端策略优化与行为克隆自适应日志异常检测                                              2837


                 其中,  δ t  表示时序差分  (temporal difference, TD) 误差:

                                                   δ t = r t +γV π (s t+1 )−V π (s t )                (6)
                                                  Q π (s t ,a t ), 从而有效降低了计算复杂度. 价值函数网络    (Critic) 的优化目
                    该方法避免了显式估计动作价值函数
                 标是最小化预测值与目标值之间的均方误差:

                                                            [           ]
                                                             (         ) 2
                                                                    target
                                                min V ϕ  L(V ϕ ) = E t V ϕ (s t )−V t                 (7)
                 其中, 目标值的定义如下:

                                                      target  GAE
                                                           t
                                                    V t  = A  +V ϕ old (s t )                         (8)
                    为了在联合训练策略网络和价值网络的同时增强探索能力, PPO                   算法引入了熵正则项, 其完整优化目标函数为:

                                                     [                        ]
                                            PPO        CLIP
                                           L  (θ,ϕ) = E t J  (π θ )−c 1 L(V ϕ )+c 2 H(π θ (·|s t ))   (9)
                 其中,  H(π θ (·|s t )) 表示策略的熵,   c 1  和  c 2  为调节系数, 通常设置为  c 1 = 1.0, c 2 = 0.01.
                    PCLog  模型采用经典的双网络架构设计, 包含策略网络与价值网络两个模块. 这两个网络采用完全相同的线
                 性层结构, 但各自维护独立的参数体系. 具体而言: 策略网络通过                   Softmax 函数输出动作空间的概率分布, 其功能
                 是指导智能体基于当前日志状态特征             s t  选择最优事件动作  . 价值网络则输出标量估值  , 用于量化评估当前状
                                                               a t
                                                                                     V t
                 态的长期收益潜力.
                                                             θ  ϕ 进行初始化建模. 系统将正常日志中的语义向量和
                    训练过程中, 策略函数       π θ  和价值函数  V ϕ  分别由参数   和
                 事件序列分别作为状态和动作输入, 其中每个序列以固定零向量                     v start  作为初始状态, 并以固定事件   e end  作为终止动
                 作. 日志状态被依次输入策略函数后, 系统根据输出的动作概率分布进行随机采样, 若所选动作与序列中下一事件
                 匹配则给予    1  的奖励, 否则奖励为     0. 完成动作选择后系统将状态转移至下一日志状态, 直至序列结束. 每个长度
                 为   L 的日志序列对应   L+1 步的轨迹数据, 每一步生成形如          (s t , s t+1 ,r t ,a t ) 的训练样本, 其中   s t  和  s t+1  分别表示当前状
                 态和下一状态的语义向量,         r t  为即时奖励值,   a t  表示策略选择的动作. 每个序列产生的        L+1 个单步训练样本最终
                 被存储在经验回放缓冲区中.
                    当经验回放缓冲区的数据量达到预设批次大小时, 模型训练随即启动. 首先从缓冲区随机采样一个迷你批次
                 数据, 用于计算当前策略与初始策略的概率比; 接着采用广义优势估计                      (GAE) 方法逐步骤计算优势函数和累计折
                                                                 VF
                 扣回报; 随后分别计算裁剪目标函数           L CLIP  (θ) 和价值函数损失  L (ϕ), 并基于这两个损失函数通过梯度下降法更新
                 策略网络与价值网络的参数. 经过多次迭代后, 将更新后的策略参数赋值给旧策略. 上述过程循环执行直至满足终
                 止条件, 具体算法流程参见算法         1.

                 算法  1. PCLog 算法.

                                                                    K
                 输入: 初始策略参数      θ 0 , 价值函数参数  , 裁剪阈值    ε, 总迭代次数  , 日志向量序列  , 事件序列  , 学习率          α, 训
                                                                                  L s
                                                                                            L e
                                              ϕ 0
                 练轮数   E;
                 输出: 优化后的策略参数       θ.
                 1.   初始化策略网络   π θ 0   和价值函数  V ϕ 0
                 2.   for  k = 1 to   do
                            K
                                        L s 、                     ˆ A t  和折扣回报
                 3.    使用当前策略   π θ k   和序列   L e  收集轨迹   τ 计算优势估计           R t
                 4.    for  e = 1 to  E do
                 5.     从   {τ} 中采样小批量  {(s t ,a t ,r t , s t+1 )}
                 6.     计算重要性采样比率:

                                                            π θ (a t |s t )
                                                       r t (θ) =
                                                              (a t |s t )
                                                            π θ 0
                 7.     计算裁剪替代目标函数:
   147   148   149   150   151   152   153   154   155   156   157