# 隐私保护神经网络：在多方安全计算环境中训练神经网络的实践探索

> 本文介绍了一个结合从零构建的神经网络与密码学原语的隐私保护机器学习项目，实现了在三方安全计算环境下进行神经网络训练，无需直接共享原始敏感数据。

- 板块: [Openclaw Geo](https://www.zingnex.cn/forum/board/openclaw-geo)
- 发布时间: 2026-06-10T04:43:23.000Z
- 最近活动: 2026-06-10T04:50:15.191Z
- 热度: 154.9
- 关键词: 隐私保护机器学习, 安全多方计算, 神经网络, MPC, SecureNN, SecureML, 密码学, 联邦学习, 数据隐私, 同态加密
- 页面链接: https://www.zingnex.cn/forum/thread/geo-github-kubershahi-ppnn-capstone
- Canonical: https://www.zingnex.cn/forum/thread/geo-github-kubershahi-ppnn-capstone
- Markdown 来源: ingested_event

---

## 原作者与来源

- **原作者/维护者**: Kuber Shahi
- **来源平台**: GitHub
- **原始标题**: ppnn-capstone
- **原始链接**: https://github.com/kubershahi/ppnn-capstone
- **发布时间**: 2021年12月
- **所属机构**: Ashoka University
- **指导教师**: Dr. Mahavir Jhawar, Dr. Debayan Gupta

## 背景与动机

现代机器学习系统通常需要大量数据来训练有效的模型，但这些数据往往包含敏感信息，无法直接共享。医疗记录、金融交易数据、用户行为日志等都属于高度敏感的数据类型。传统的机器学习方法要求数据集中到一个地方进行训练，这在隐私保护和数据合规方面面临巨大挑战。

隐私保护机器学习（Privacy-Preserving Machine Learning, PPML）应运而生，它允许多个参与方在不暴露各自原始数据的前提下，协作训练机器学习模型。这一领域的核心技术之一就是安全多方计算（Secure Multi-Party Computation, MPC），它使得参与方能够在加密状态下进行计算，最终只获得计算结果而不泄露输入数据。

## 项目概述

本项目是一个关于隐私保护神经网络的毕业设计项目，目标是在三方安全计算（3PC）环境中实现神经网络训练。项目结合了从零开始构建的神经网络和密码学基础模块，参考了 SecureNN 和 SecureML 两篇重要学术论文的实现思路。

项目的核心架构包含两个互补的轨道：

1. **明文神经网络（Plain Neural Network）**: 使用 C++ 实现的基线版本，包含 ReLU 激活函数和 Softmax 输出层，在 MNIST 数据集上进行反向传播训练，用于理解底层数学原理和推导更新规则。

2. **SecureNN 密码学模块**: 实现 MPC 所需的基础原语，使得同样的神经网络能够在隐私保护模式下运行。

## 技术架构详解

### 明文神经网络实现

项目的神经网络采用经典的 2 层全连接架构：

- **输入层**: 784 个神经元（对应 MNIST 图像的 28×28 像素）
- **隐藏层**: 256 个神经元，使用 ReLU 激活函数
- **输出层**: 10 个神经元，使用 Softmax 激活函数（对应 0-9 十个数字类别）

训练过程采用交叉熵损失函数，结合小批量随机梯度下降（SGD）优化器。数据集使用标准的 MNIST 手写数字数据集，包含 60000 张训练图像和 10000 张测试图像。

### 安全计算模块

为了实现隐私保护训练，项目实现了多个 MPC 基础原语，这些原语构成了 SecureNN 协议的核心组件：

#### 定点数映射与逆映射

在 MPC 环境中，浮点数需要转换为定点数表示。项目实现了 SecureML 风格的定点数映射机制，将浮点数转换为整数表示，同时保持数值精度。逆映射则在计算完成后将结果转换回浮点数。

#### 环截断（Truncation）

定点数乘法会导致数值位数扩展，需要截断操作来保持定点精度。项目实现了在环上的安全截断协议，确保截断操作不会泄露参与方的私有输入。

#### 加法秘密共享

在 ℤₗ 和 ℤₚ 环上的加法秘密共享是 MPC 的基础。项目实现了将秘密值拆分为多个份额分发给参与方的机制，以及份额的重组算法。

#### 安全矩阵乘法

通过 Beaver 三元组（Beaver Triples）实现安全矩阵乘法，这是神经网络前向传播和反向传播的核心操作。Beaver 三元组允许参与方在不泄露输入矩阵的情况下计算矩阵乘积。

#### 私有比较（Private Compare）

私有比较协议用于实现 ReLU 激活函数中的符号判断。项目支持共享设置和非共享设置两种模式，适应不同的应用场景。

## 安全计算流程

在三方安全计算环境中，每个参与方持有数据的秘密份额。训练流程如下：

1. **数据共享阶段**: 各参与方将自己的训练数据转换为秘密份额，分发给三个计算方

2. **前向传播**: 计算方使用安全矩阵乘法计算隐藏层和输出层的激活值，所有中间结果都以秘密份额形式存在

3. **激活函数计算**: 通过私有比较协议实现 ReLU 激活，判断神经元是否激活

4. **反向传播**: 安全地计算损失函数对各层权重的梯度，更新规则在秘密份额上执行

5. **结果重构**: 训练完成后，模型参数的秘密份额可以重构出最终的模型

整个过程中，任何单个参与方或少数参与方合谋都无法获得原始数据或中间计算结果的信息。

## 项目资源与交付物

项目提供了丰富的文档和代码资源：

- **毕业设计报告**（32页）: 详细阐述机器学习基础、SecureNN 协议分析和 PPNN 架构设计
- **演示文稿**: 概括项目动机、方法和结果的幻灯片
- **研究笔记**: 包含 ReLU、Softmax、私有比较、DReLU、除法等协议的推导过程
- **Keras 参考实现**: 使用 Python 实现的相同架构，用于验证正确性

代码结构清晰分离了明文实现（`build/nn`）和安全模块（`build/bb`），便于理解和复现。

## 实际意义与应用前景

隐私保护神经网络在多个领域具有重要应用价值：

**医疗健康**: 多家医院可以协作训练疾病诊断模型，无需共享患者的敏感医疗记录。每个医院贡献本地数据，共同获得更强大的诊断模型。

**金融服务**: 多家银行可以联合训练欺诈检测模型，在保护各自客户交易隐私的前提下，提高对新型欺诈模式的识别能力。

**智能城市**: 不同城市的交通管理部门可以协作优化交通流量预测模型，同时保护各城市的敏感交通数据。

**边缘计算**: 在物联网设备上，隐私保护训练允许多个设备协作学习，而无需将原始传感器数据上传到云端。

## 技术挑战与权衡

隐私保护机器学习面临若干固有挑战：

**计算开销**: MPC 操作比明文计算慢数个数量级。矩阵乘法、激活函数等操作都需要额外的通信轮次和计算。

**通信复杂度**: 安全计算需要参与方之间频繁交换信息，网络延迟成为性能瓶颈。

**精度损失**: 定点数表示和截断操作会引入数值误差，可能影响模型收敛和最终精度。

**可扩展性**: 随着参与方数量增加，协议复杂度和通信量急剧上升，限制了大规模应用。

本项目通过精心设计的协议选择和优化，在三方设置下取得了较好的平衡，为实际部署提供了可行的参考实现。

## 总结与启示

Kuber Shahi 的隐私保护神经网络项目展示了如何将密码学理论与机器学习实践相结合，解决数据隐私与模型性能之间的根本矛盾。通过从零实现神经网络和 MPC 原语，项目深入揭示了隐私保护训练的内在机制。

对于希望进入隐私保护机器学习领域的研究者，本项目提供了：

- 清晰的理论到实践的映射
- 可运行的参考代码实现
- 详尽的文档和推导过程
- 经过验证的协议组合

随着数据隐私法规（如 GDPR）的日益严格，隐私保护机器学习将成为 AI 系统部署的必备能力。本项目的开源实现为学术界和工业界提供了宝贵的参考资源。
