联邦学习中的安全聚合是一种加密技术,旨在保护参与者个人在模型更新合并时的隐私。在联邦学习中,多个客户端(如移动设备或服务器)在不共享其原始数据的情况下训练一个共享的机器学习模型。相反,它们将本地计算的模型更新(例如,梯度向量)发送到中央服务器。安全聚合确保服务器无法访问单个更新,只能获取聚合结果。这可以防止服务器或恶意攻击者从单个客户端的贡献中进行逆向工程获取敏感信息,即使模型本身可能无意中编码了训练数据的细节。
其核心机制涉及对单个更新进行加密或遮蔽,以便只有与其他更新合并时才能解密或揭示。例如,客户端可以使用安全多方计算(SMPC)或加法同态加密等加密协议。在 SMPC 中,每个客户端将其更新分割成秘密份额并分发给其他客户端。服务器收集这些份额并求和,但没有任何单个方可以重建单个更新。同态加密允许客户端以一种方式加密其更新,使得服务器可以在不解密数据的情况下对加密数据执行数学运算(如求和)。例如,如果十个客户端都使用共享密钥加密其梯度,服务器可以对加密值进行加法运算,并且只解密最终的总和,而不会看到单个贡献。
实现安全聚合带来了实际挑战。例如,处理训练过程中的客户端掉线需要确保即使部分客户端断开连接,聚合结果仍然可计算的机制。一种方法是使用基于阈值的方案,其中必须有最低数量的客户端贡献才能解密结果。此外,加密的计算和通信开销可能很大,特别是对于大型模型。TensorFlow Federated 或 PySyft 等框架提供了内置的安全聚合工具来抽象部分复杂性。然而,开发人员仍然必须平衡隐私保证与性能。安全聚合通常与差分隐私等技术结合使用,以提供更强的保证,确保即使是聚合结果也不会泄露太多关于任何单个客户端数据的信息。