图共 4个 表共 5
    • 图  1  基于两阶段寻优SDA的流量异常检测模型

      Figure 1. 

    • 图  2  基于PSO的SDA结构两阶段寻优算法流程

      Figure 2. 

    • 图  3  二分类场景下SDA结构寻优过程

      Figure 3. 

    • 图  4  多分类场景下SDA结构寻优过程

      Figure 4. 

    •  输入:流量异常检测数据集,NP,${t_{\max }}$, $w$, ${c_1}$, ${c_2}$, ${l_{\max }}$, ${l_{\min }}$, ${v_{l,\max }}$, ${v_{l,\min }}$, ${n_{\max }}$, ${n_{\min }}$, ${v_{n,\max }}$, ${v_{n,\min }}$
       输出:具有${l_{{\rm{gbest}}}}$个隐藏层且每层节点数为${n_{{\rm{gbest}}}}$的SDA
       for $i = 1\;{\rm{to}}\;{{\rm{NP}}}$ do
        采用式(5)—式(8)对粒子群进行初始化,并分别将${l_{i,{\rm{pbest}}}}$和${n_{i,{\rm{pbest}}}}$初始化为${l_i}(0)$和${n_i}(0)$;
        基于实验数据,采用式(9)计算粒子i的适应度值;
       将最小适应度值对应的ln设置为${l_{{\rm{gbest}}}}$和${n_{{\rm{gbest}}}}$初始化值;
       for $t = {1_{}}{\rm{t}}{{\rm{o}}_{}}\begin{array}{*{20}{c}} {{t_{\max }}} \end{array}$ do
        for $i = {1_{}}{\rm{t}}{{\rm{o}}_{}}\begin{array}{*{20}{c}} {{\rm{NP}}} \end{array}$ do
         采用式(1)—式(4)更新粒子i的${l_i}(t)$速度和数值,以及${n_i}(t)$的速度和数值;
         if ${v_{{l_i}}}(t)$, ${l_i}(t)$,${v_{{n_i}}}(t)$ or ${n_i}(t)$超过其搜索范围
          对${v_{{l_i}}}(t)$, ${l_i}(t)$,${v_{{n_i}}}(t)$ or ${n_i}(t)$再次进行随机初始化;
         生成具有${l_i}(t)$个隐藏层且每层节点数为${n_i}(t)$的SDA;
         基于实验数据,采用式(9)计算粒子i的适应度值;
         if(${\rm{fit} } ({l_i}(t),{n_i}(t)) < {\rm{fit} } ({l_{i,{\rm pbest}} },{n_{i,{\rm{pbest} } } })$)//若粒子i的适应度值小于局部最优值对应的适应度值,则对局部最优值进行更新
          分别将${l_i}(t)$和${n_i}(t)$赋值给${l_{i,{\rm{pbest}}}}$和${n_{i,{\rm{pbest}}}}$;
         if(${\rm{fit}} ({l_i}(t),{n_i}(t)) < {\rm{fit}} ({l_{{\rm{gbest}}}},{n_{{\rm{gbest}}}})$)//若粒子i的适应度值小于全局最优值对应的适应度值,则对全局最优值进行更新
          分别将${l_i}(t)$和${n_i}(t)$赋值给${l_{{\rm{gbest}}}}$和${n_{{\rm{gbest}}}}$;
       迭代结束后,生成具有${l_{{\rm{gbest}}}}$个隐藏层且每层节点数为${n_{{\rm{gbest}}}}$的SDA;
       return 具有${l_{{\rm{gbest}}}}$个隐藏层且每层节点数为${n_{{\rm{gbest}}}}$的SDA。

      表 1  隐藏层层数寻优算法

    •  输入:流量异常检测数据集,NP, ${t_{\max }}$, $w$, ${c_1}$, ${c_2}$, ${v_{\max }}$, ${v_{\min }}$, ${l_{{\rm{gbest}}}}$, ${n_{{\rm{gbest}}}}$
       输出:最优SDA结构
       for $i = {1 }\ {\rm{t} }{ {\rm{o} }_{} }\ { {\rm{NP} } } $ do
        for $h = {1_{} }\ {\rm{t} }{ {\rm{o} }_{} }\ {l_{ {\rm{gbest} } } }$ do
         初始化粒子位置$n_i^{(h)}(0) = {n_{{\rm{gbest}}}}$,采用式(12)初始化粒子速度,并将局部最优向量${{{n}}_{i,{\rm{pbest}}}}$中的$n_{i,{\rm{pbest}}}^{(h)}$初始化为${n_{{\rm{gbest}}}}$;
       设置全局最优向量${ {{n} }_{ {\rm{gbest} } } } = \min \{ { {{n} }_{ {\rm{1,pbest} } } },{ {{n} }_{ {\rm{2,pbest} } } }, ··· ,{ {{n} }_{ {\rm{NP,pbest} } } }\} = {[{n_{ {\rm{gbest} } } }_{}{n_{ {\rm{gbest} } } } ··· {n_{ {\rm{gbest} } } }]^{\rm T}}$;
       for $t = {1_{}}{\rm{t}}{{\rm{o}}_{}}\begin{array}{*{20}{c}} {{t_{\max }}} \end{array}$ do
        for $i = {1_{}}{\rm{t}}{{\rm{o}}_{}}\begin{array}{*{20}{c}} {{\rm{NP}}} \end{array}$ do
         for $h = {1_{}}{\rm{t}}{{\rm{o}}_{}}{l_{{\rm{gbest}}}}$ do
          采用式(10)和式(11)更新粒子i位置向量${{{n}}_i}(t)$中元素$n_i^{(h)}(t)$的速度和数值;
          if $v_i^{(h)}(t)$ or $n_i^{(h)}(t)$超过其搜索范围
           对$v_i^{(h)}(t)$ or $n_i^{(h)}(t)$再次进行随机初始化;
         根据更新后的${{{n}}_i}(t)$,将SDA每个隐藏层的节点数分别更新为$n_i^{(1)}(t),n_i^{(2)}(t), ··· ,n_i^{({l_{{\rm{gbest}}}})}(t)$;
         基于实验数据,采用式(13)计算粒子i的适应度值;
         if(${\rm{fit}} ({{{n}}_i}(t)) < {\rm{fit}} ({{{n}}_{i,{\rm{pbest}}}})$)//若粒子i的适应度值小于局部最优向量对应的适应度值,则对局部最优向量进行更新
          ${{{n}}_{i,{\rm{pbest}}}} \leftarrow {{{n}}_i}(t)$;
        ${{{n}}_{{\rm{gbest}}}} \leftarrow \min \{ {{{n}}_{{\rm{1,pbest}}}},{{{n}}_{{\rm{2,pbest}}}}, ··· ,{{{n}}_{{\rm{NP,pbest}}}}\} $;//采用局部最优向量中的最小值更新全局最优向量
       迭代结束后,根据最终${{{n}}_{{\rm{gbest}}}}$分别将SDA的隐藏层每层节点数更新为$n_{{\rm{gbest}}}^{(1)},n_{{\rm{gbest}}}^{(2)}, ··· ,n_{{\rm{gbest}}}^{({l_{{\rm{pbest}}}})}$;
       return 最优SDA结构。

      表 2  隐藏层每层节点数寻优算法

    • 模型类型基于SAE的异常
      检测模型
      基于传统SDA的
      异常检测模型
      基于一阶段寻优SDA的
      异常检测模型
      基于两阶段寻优SDA的
      异常检测模型
      模型结构[28, 3, 2, 2, 2, 1, 3, 3, 3, 2][28, 28, 28, 28, 2][28, 2, 2, 2, 2, 2, 2, 2, 2, 2][28, 3, 2, 2, 2, 1, 3, 3, 3, 2]
      Acc (%)86.2986.5286.5892.68
      DR (%)92.8596.1094.7596.80
      Rec (%)90.0492.6889.2694.48
      FPR (%)4.963.383.512.72
      ${T_{{\rm{tr}}}}$(m)8.248.527.458.50
      ${T_{{\rm{te}}}}$(s)0.180.180.180.18

      表 3  二分类场景不同模型检测性能

    • 模型类型基于SAE的异常
      检测模型
      基于传统SDA的
      异常检测模型
      基于一阶段寻优SDA的
      异常检测模型
      基于两阶段寻优SDA的
      异常检测模型
      模型结构[28, 24, 5][28, 28, 28, 28, 5][28, 25, 5][28, 24, 5]
      Acc (%)84.1284.3184.9685.37
      NormalDR (%)84.5885.3785.8786.34
      Rec (%)96.7496.8897.0197.28
      FPR (%)17.9818.8918.0617.25
      DoSDR (%)94.0894.7494.9295.59
      Rec (%)83.6584.5182.6385.88
      FPR (%)2.052.042.021.72
      ProbeDR (%)79.4275.5879.7183.27
      Rec (%)65.1467.2963.7868.28
      FPR (%)1.782.211.701.34
      R2LDR (%)90.9692.0683.7890.50
      Rec (%)58.2360.9958.3460.23
      FPR (%)0.270.210.570.30
      U2RDR (%)88.0528.6072.5876.19
      Rec (%)2.502.004.503.00
      FPR (%)0.010.030.010.01
      ${T_{{\rm{tr}}}}$(m)3.946.326.545.36
      ${T_{{\rm{te}}}}$(s)0.200.400.410.26

      表 4  多分类场景不同模型检测性能

    • 模型类型Acc (%)
      0.10.20.3
      基于SAE的异常检测模型81.5779.3176.69
      基于传统SDA的异常检测模型83.6383.5483.48
      基于一阶段寻优SDA的异常检测模型84.7184.5284.23
      基于两阶段寻优SDA的异常检测模型85.0885.0185.02

      表 5  多分类场景不同模型检测含噪流量的准确率