Page 263 - 《软件学报》2026年第2期
P. 263

742                                                        软件学报  2026  年第  37  卷第  2  期


                 使用本文提出的最高符号位获取协议和比特转换协议高效实现. 为保证最高符号位获取协议的正确性, 选取质数
                 p = 2 −1, 因为此协议中进行比较的数据量仅为            32 bit, 通信量的增加不会明显影响算法性能.
                     61
                  3.5   Softmax 损失函数
                    Softmax 损失函数将模型的原始预测值转换为概率分布, 然后使用交叉熵损失函数来计算预测结果与真实标
                 签之间的差异. 对于      d-分类网络模型而言, Softmax 函数的输入是向量         x = (x ,..., x (n−1) ), 计算公式为:
                                                                           (0)

                                                       (  )
                                                    exp x ( j)
                                               ( j)            ( j)
                                          x ,→ x 7→         = y ↠ y =: Softmax(x).
                                                   d−1
                                                   ∑    (  )
                                                      exp x (k)
                                                   k=0
                                   (0)
                    记  max(x) := max{x ,..., x (n−1) }, 浅显的观察是  Softmax(x) = Softmax(x−max(x)). 问题转化为 exp  函数的计算
                 以及倒数   Reciprocal 协议的实现. 文献   [21] 的方案是计算    exp(x) = 2 xlog 2 e , 然后转而设计计算  x 7→ 2  的协议, 具体
                                                                                             x
                 是将  x 分为整数部分和小数部分, 整数部分采用类似于快速幂的手法累乘, 小数部分的计算依据拟合函数实现. 在
                 本文中, 我们没有使用将数划分为整数部分和小数部分的手法, 这是因为直接使用多项式拟合方法带来的精度已
                 经满足   Antelope 所支持的神经网络结构的精度要求, 并且           Antelope 利用多项式

                                                            (   x  ) 2 m
                                                      p m (x) := 1+
                                                               2 m
                 直接拟合    exp 函数, 这个函数在    (−∞,0) 范围内相比 Taylor 对于 exp 的拟合效果更好, 例如,        p m (x) → 0 (x → −∞)
                        x
                     ∑  n
                                           m
                 但是       → ∞. 具体实现时,   ·/2  直接使用   Truncate 协议实现, 而外层的幂运算可以使用倍增思想快速实现, 总
                        n!
                     n⩽m
                 体能够实现精度上的小损失带来计算复杂度的降低. Reciprocal 协议的实现类似                     InvSqrt 协议, 基于 Newton 迭代
                 x n+1 = x n (2−zx n ) 以及 第  3.4 节中的迭代初值选定算法.
                  4   实验分析
                  4.1   实验环境
                    本文实验在阿里云的        3  台  GPU  计算实例上进行, 以模仿真实的三方场景. 每个实例运行              Ubuntu 18.4  操作系
                 统, CPU  为英特尔至强    8163 (Skylake), 主频为  2.5 GHz, 运行内存为  32 GB. 每个实例配置一张英伟达     Tesla V100,
                 GPU 内存为 16 GB. 3  台云服务器通过内网连接, 带宽为 2.5 GB/s, 平均通信延迟为 0.15 ms. 我们选择在             3  个标准
                 图片分类数据集上进行测试, 即          MNIST [27] 、CIFAR-10 [28]  和  Tiny ImageNet [29] . 这  3  个数据集的计算数据量逐渐增
                 加, 同时分类类别也在增加, 详见表          2. 此外, 在几个具有代表性的卷积神经网络模型上测试安全推理和训练的性
                                    [31]
                                              [32]
                          [30]
                 能, 即  LeNet 、AlexNet  和 VGG-16 . 在上述网络模型中将       ReLU  层置于池化层之后, 并对     AlexNet 和  VGG-16
                 针对小数据集进行了调整, 使得全连接层能匹配输入大小和分类的数量. 虽然                        Antelope 框架支持最大值池化计算,
                 但是与   CryptGPU  一样, 本文用平均池化取代了最大池化. 我们对之前的工作进行了相同的调整.

                                                      表 2 实验数据集

                                 数据集              图片尺寸             图片类型             类别数量
                                 MNIST             28×28            GRAY              10
                                CIFAR-10           32×32             RGB              10
                              Tiny ImageNet        64×64             RGB              200

                    本文采用交叉熵损失函数进行分类训练, 所有模型的权重均使用 Xavier 初始化. 训练过程在三方安全计算环
                 境下执行, 所有计算均由 Antelope 的秘密共享协议支持. 此外, 我们遵循 PPML 领域的实验标准, 确保训练过程的
                 可复现性.
                  4.2   安全训练和预测性能分析
                    为了减少误差, 对每组实验计算          10  次端到端运行时间, 取平均值作为结果.
   258   259   260   261   262   263   264   265   266   267   268