Page 202 - 《应用声学》2023年第4期
P. 202

864                                                                                  2023 年 7 月


             Pooling) 层可以使较高的权重被分配给特定帧以获                       ResNet 模型中去除最后一个全连接层 FC2,将所
             得更好的特征表示。                                         有数据转换成 256 维的特征向量,即分别用于训
                 ResNet 的结构参数如表 1 所示。输入是大小                     练、验证和测试的特征向量 F 1 、F 2 和 F 3 (第 7∼16
             为 10×60 的声学特征矩阵。输入首先通过卷积                          行)。基于这些特征,使用自动机器学习库 FLAML
             层 Conv1。Conv1 的输出通过 6 个改进的 PreAct-
             Block。最后一个PreActBlock的输出被送入输出卷                                 表 1  ResNet 模型参数
             积层 Conv2,随后通过 SA 池化层。来自 SA 池化层                       Table 1 Parameters of ResNet model
             的输出被提供给 256 维的全连接 (Fully connected,
                                                                     网络层      卷积核大小 滤波器数 步长        输出维度
             FC)层FC1,最后将FC2层的2维输出使用Softmax
                                                                     Conv1      9×3      16   3×1  16×2×60
             转换成概率。
                 CatBoost 算法是一种基于梯度提升决策树                          PreActBlockl  3×3      64   1×1  64×2×60
             (Gradient boosting decision tree, GBDT) 的算法,         PreActBlock2  3×3      128  2×2 128×1×30
             在结构上是分类器。通过采用排序提升 (Ordered                           PreActBlock3  3×3      256  2×2 256×1×15
             boosting) 方法,CatBoost 解决了传统 GBDT 算法                  PreActBlock4  3×3      256  1×1 256×1×15
             的过拟合问题。                                              PreActBlock5  3×3      512  2×2  512×1×8
                 算法 1 显示了 ResNet+CatBoost 训练的伪代                   PreActBlock6  3×3      512  1×1  512×1×8
             码。ResNet 模型首先被训练成一个特征提取器,                               Conv2      1×3      256  1×1  256×1×8
             将输入嵌入到合适的表征中,包括数据集划分和                                 SA Pooling                        512
             ResNet 训练 (第 1∼6 行)。训练完成后,从训练的                           FC1                            256
                                                                      FC2                             2
                                                 Input

                                                 Conv1
                                                                  算法 1:ResNet-CatBoost 训练
                                                  BN
                                                                  输入: GFCC 特征数据 D,ResNet 模型 M,迭代轮次 N;
                                               LeakyReLU          输出: 对数似然比 Score;
                       X
                                                                        将 D 划分为训练集 D 1 ,验证集 D 2 ,测试集 D 3 ;
                                              PreActBlock1        1
                                                                        对应的批次划分为 B 1 、B 2 、B 3 ;
                  BN
                                              PreActBlock2        2     for j = 1 : N
               LeakyReLU                                          3
                                              PreActBlock3               foreach b 1 ∈ B 1
                 Conv                                             4       训练模型 M;
                                              PreActBlock4
                                                                  5      foreach b 2 ∈ B 1
                  BN
                                              PreActBlock5        6       验证模型 M;
               LeakyReLU                                          7     移除最后一个全连接层 FC2;
                                              PreActBlock6
                 Conv                                             8     foreach b 1 ∈ B 1
                                                 Conv2
                                                                  9       f ← M(b 1 );
                                                  BN              10      添加 f 到最终输出 F 1 ;
                                                                  11    foreach b 2 ∈ B 2
                                               LeakyReLU
                                                                  12      f ← M (b 2 );
                                               SA Pooling         13      添加 f 到最终输出 F 2 ;

                                                 FC1              14    foreach b 3 ∈ B 3
                                                                  15      f ← M (b 3 )
                                                 FC2
                                                                  16      添加 f 到最终输出 F 3
                                                Output
                                                                  17    在 F 1 上训练 CatBoost
                                                                  18    在 F 2 上验证 CatBoost
                          图 2  ResNet 模型结构
                                                                  19    Score ← CatBoost (F 3 )
                       Fig. 2 ResNet model structure
   197   198   199   200   201   202   203   204   205   206   207