Page 139 - 《软件学报》2021年第10期
P. 139

席亮  等:邻域形态空间多源免疫检测器生成与检测                                                        3111


                        混沌映射方式搜索效率低、收敛速度慢的问题;混沌映射的均匀覆盖特性,可缓解遗传变异的“马太效
                        应”;随机方式的速度优势,可从总体上加快算法的结束时间;3 种方式不断地自适应调整,最终较为全
                                                              [9]
                        面地覆盖问题解空间,并使算法收敛于全局最优 .
                 2.3   邻域检测器检测算法
                    本文算法基于 NNSA,参数设定、规范化处理与生成算法相同,如图 6 所示.其关键是检测的亲和力计算匹
                                                                               [9]
                 配,采用邻域的检测器与实值的待检测样本间的计算,基于公式(2)~公式(4)进行 .
                                                          开始

                                                        1. 初始化参数
                                                       2. 标准化测试集
                                                                        Y
                                                       3. 是否测试完成
                                                               N
                                                     4. 测试样本与检测器
                                                       进行亲和力计算


                                                      5. 亲和力>匹配阈值
                                                Y                      N
                                               异常样本                正常样本

                                             6. 调整检测器的
                                                weight 值


                                                 7. 基于weight值调整不同检测器
                                                   构造方式的轮盘赌权值值
                                                          结束

                                         Fig.6    Flow chart of MSNNSA detection algorithm
                                              图 6   MSNNSA 检测算法基本流程

                    具体而言,检测算法的伪代码实现如下.
                    输入:亲和力匹配阈值;
                        待检测样本集合 Detect;
                        成熟检测器集合 D;
                    输出:轮盘赌选择概率 p r [3];
                        检测结果.
                    1.   Begin   /*设定算法亲和力匹配阈值等参数,如图 6 中步骤 1*/
                    2.   Normalize(Detect)   /*按照公式(5)对测试数据集进行标准化处理,如图 6 中步骤 2*/
                    3.   for (i=0;i<Detect.size;i++){   /*依次检测每个待检测样本,如图 6 中步骤 3*/
                    4.     t=Affinity(D,Detect i );   /*通过公式(2)~公式(4)进行待检测样本与成熟检测器之间的亲和力计算,如
                         图 6 中步骤 4*/
                    5.      if (t<){Detect i normal;}   /*亲和力小于,则该检测样本正常,如图 6 中步骤 5*/
                    6.      else {Detect i abnormal;D i .weight++;}   /*亲和力大于,则该检测样本异常,增加相应检测器 weight
                         属性值,如图 6 中步骤 6*/
   134   135   136   137   138   139   140   141   142   143   144