Page 35 - 《软件学报》2025年第5期
P. 35

董黎明 等: 结合主动学习和半监督学习的软件可追踪性恢复框架                                                  1935


                                                           [    )       ]
                                                 T 1                                                  (5)
                                                e = ProbList top( p ×D unlabeled,1
                 其中,    p 为少类样本选择比例,     D unlabeled,1  为将伪标签预测为“真”链接的无标签样本集合, ProbList 为对     Probability-
                 Score 从大到小排序的概率值列表. 确定每类样本的选择比例                top(p) 和置信度阈值后, 少类样本每轮迭代选出的伪
                        S unlabeled,1  如公式  (6) 所示:
                 标签集合

                                                              T 1
                                            if ProbabilityScore(i) ⩾ e , then i ∈ S unlabeled,1       (6)
                    ● CReST  样本选择策略
                    CReST  策略主张采用不平衡的样本采样比例, 来设置伪标签的筛选规则. 即通过计算有标签样本集合的不平
                 衡性, 制定每类样本伪标签选择比例           µ , 确保半监督环节选择机制更偏向少类样本. 在可追踪性场景下, CReST                   样
                 本选择策略具体计算公式如公式           (7) 和公式  (8) 所示:

                                           (                   ) α
                         (               )  N(少类“真”链接 in D labeled )                   α
                        µ 0 多类伪标签采样比例 =                          = (1/ImbalanceRatio(D labeled )) , where α ⩾ 0  (7)
                                            N(多类“假”链接 in D labeled )

                                                    (                   ) α
                                  (              )   N(少类“真”链接 in D labeled )
                                µ 1 少类伪标签采样比例 =                           = 100%,where α ⩾ 0          (8)
                                                     N(少类“真”链接 in D labeled )
                    ● SimiS  样本选择策略
                    SimiS  策略主张使用更加简单激进的方法, 仅仅用尽可能多的少数类伪标签扩展已标注集合以构造平衡的训
                 练集, 而不再增加最多数类的伪标签样本. SimiS           样本选择策略的具体计算公式如公式             (9) 和公式  (10) 所示:

                                          (                                        )
                                           N(多类“假”链接 in D labeled )− N(多类“假”链接 in D labeled )
                                      S 0 = β                                                         (9)
                                                           N (D labeled )

                                         ( (                 )   (                 ))
                                    S 1 = β  N 多类“假”链接 in D labeled − N 少类“假”链接 in D labeled         (10)
                                                           N (D labeled )
                 其中,   β 是控制不平衡性的超参数. 理想情况下, 设置           β = N (D labeled ) 可以使得初始有标签集合完全在各类别上分布
                 完全均衡.
                    ● CBST-Adjust 样本选择策略
                    实际上, 上述几种从选择伪标签样本思想都致力于平衡新训练集中的样本比例. 核心区别在于通过不同的策
                 略为每个类添加的伪标签的数量. CBST           通过分类别设置阈值, 确保少类也能够被选中, 但由于无标签样本也是极
                 其不平衡的, 多类伪标签的绝对数量依然较多, 因此会进一步加重训练集的不平衡性. CReST                           通过设置不平衡采
                 样比例控制多类伪标签, 虽然这在很大程度上增加了少类的数据数量                      (少类伪标签的采样比例为         100%), 但不可避
                 免地引入了质量较低的少类的伪标签, 同时也为多类增加了许多样本. SimiS                      通过设置更加简单激进的平衡超参
                 数  β , 直接舍去多类伪标签, 且通过选择少类伪标签, 达到尽可能均衡训练集类别分布的目的, 但在该策略中, 一种
                 常见的情况是所需的少类伪标签的数量甚至可能超过未标记集合中少类的总量, 因此很难为                               SimiS  策略的平衡超

                 参数  β 设置合理的取值.
                    通过分析上述      3  种半监督类平衡样本选择策略的优缺点, 本文提出了改进后的                   CBST-Adjust 样本选择策略.
                 如图  8  所示, 该策略按照置信度从高到低排序伪标签样本, 选择每个类别中                   top(p) 的伪标签, 确保选择高质量的少
                 类伪标签, 再参考     CReST  策略中的不平衡采样比例        µ , 进一步限制多类伪标签的数量, 重点改进半监督环节所选
                 择无标签样本中的多类和少类伪标签数量过于悬殊的问题.
                    固定的阈值以及过高的阈值都可能会丢弃很多不确定的伪标签                       (尤其在迭代后期), 导致伪标签“利用率低”.
                 考虑到后续迭代会存在很多低阈值样本, 同时为了确保每轮迭代都能够选择到一定比例的无标签样本, 尤其是少
                 类样本. 本文参考一系列动态阈值的工作             [55,56] , 也引入了随迭代  iterationNum 增大而降低阈值的机制. 通过参数      p/
                 increaseRate 组合动态改变阈值, 其中    p  为初始迭代样本选择比例,        increaseRate 为每轮迭代样本选择比例增长比
                 例. 具体的阈值计算公式如公式         (11) 所示:

                                             p iNum = p initial +increaseRate×iterationNum           (11)
   30   31   32   33   34   35   36   37   38   39   40