Page 120 - 《软件学报》2025年第12期
P. 120

吴月明 等: VulFewShot: 利用对比学习改进少样本漏洞分类                                              5501


                 组合在前   3  组实验中的平均表现选择了最佳的组合, 并将该超参数组合应用到了后续实验中. 表                          1  展示了本文在
                 CNN  模型中所使用的参数.
                    表  2  则展示了本文在包括      BiGRU、BiLSTM   和  Atten-BiLSTM  等在内的  RNN  模型中所使用的参数. 使用
                 Adam  优化算法以及    0.000 02  的学习率训练所有的     4  种传统深度学习模型      [64] . 在模型训练好后, 不再修改这些模
                 型的参数, 并使用这些模型进行漏洞分类任务.

                             表 1 CNN  使用的参数                   表 2 BiGRU, BiLSTM  和  Atten-BiLSTM  使用的参数

                        参数名                   配置                     参数名                   配置
                       损失函数               交叉熵损失函数                   损失函数               交叉熵损失函数
                      滤波器尺寸                  (2, 3, 4)              激活函数                   tanh
                      滤波器数量                   256                     层数                    2
                       激活函数                  ReLU                   优化策略                  Adam
                      池化层策略                 最大池化                    批量大小                    32
                       优化策略                  Adam                    学习率                  0.000 02
                       批量大小                    32
                        学习率                  0.000 02

                  3.3   结 果
                    为了评估传统深度学习模型在少样本漏洞类型上的分类性能, 本文研究了以下两个问题.
                    • RQ1: 传统深度学习模型在      MVD  和  MVD-part 数据集上的整体性能如何?
                    • RQ2: 4 种传统模型在   MVD  和  MVD-part 数据集上的大、中、小规模漏洞类型上的表现如何?
                  3.3.1    RQ1
                    4  种传统深度学习模型在       MVD  和  MVD-part 数据集上的实验结果总结如表         3  所示.

                                表 3 传统深度学习模型在         MVD  和  MVD-part 数据集上各性能指标表现

                  数据集       模型     M_FPR M_FNR M_F1 W_FPR W_FNR W_F1 Mean_L Mean_M Mean_S STD_L STD_M STD_S
                            CNN     0.015  3.020 97.582 0.113  0.494 99.493 99.182  98.982  94.797  1.466  2.330 16.824
                           BiGRU    0.018  4.046 96.694 0.090  0.638 99.348 99.006  99.463  92.904  1.476  2.138 17.153
                   MVD
                           BiLSTM   0.020  4.775 95.957 0.115  0.662 99.317 99.026  98.528  90.721  1.520  2.233 19.086
                         Atten-BiLSTM 0.014  2.824 97.621 0.066  0.503 99.487 99.169  98.797  95.092  1.338  2.137 16.281
                            CNN     0.054  2.959 96.818 0.104  2.058 97.910 97.920  98.594  94.145  2.291  4.161 17.402
                           BiGRU    0.119  6.751 92.579 0.191  4.557 95.410 96.090  94.412  87.616  3.619  7.120 23.217
                 MVD-part
                           BiLSTM   0.141  8.555 91.493 0.242  5.390 94.572 95.380  93.739  85.797  4.622  7.903 23.602
                         Atten-BiLSTM 0.117  5.786 93.960 0.201  4.460 95.537 95.925  96.329  89.936  4.186  6.656 17.895

                    数据显示, CNN    的综合性能最好, 其次是       Atten-BiLSTM, 再次是  BiGRU, BiLSTM  表现最差. 为了更好地展示
                 模型在  MVD  和  MVD-part 上的性能, 我们以   M_F1 作为主要评价标准, 并在图       3 中绘制了箱型图以便更直观地表示.

                                                         MVD    MVD-part
                                             98

                                             96
                                            M_F1 (%)  94

                                             92
                                             90

                                                  CNN   BiGRU  BiLSTM Atten-BiLSTM
                                                             模型
                                     图 3 传统深度学习模型在        MVD  和  MVD-part 上的总体性能
   115   116   117   118   119   120   121   122   123   124   125