DiNN学习笔记1-理论部分

DiNN学习笔记1-理论部分

  • 背景知识
    • 机器学习即服务
    • MLaaS 中的全同态加密
    • 神经网络
    • Fhe-DiNN 中的默认设定
  • Fhe-DiNN 方案
    • 神经元中的计算
    • 离散神经网络
    • DiNN 评估步骤
    • 自举的引入
    • 激活函数的同态评估
    • 对 TFHE 的改进
      • 明文的打包
      • 密钥转换的前置
      • 动态变化的消息空间
      • 优化盲旋步骤
  • DiNN 方案的整体流程
  • 参考资料

背景知识

机器学习即服务

机器学习即服务 (Machine Learning as a Service, MLaaS) 可以简单理解为:一系列将机器学习工具作为云计算服务的一部分的服务。 MLaaS 帮助客户从机器学习中获益,却不用承担建立机器学习模型所需的成本、时间和风险。服务商提供预测分析、深度学习、api、数据可视化、自然语言处理等服务;计算由服务商的数据中心处理完成。

DiNN学习笔记1-理论部分_第1张图片

以图中的 MLaaS 模型为例,服务商训练一个可用的模型,客户端将其需要进行预测的数据 x x x 提供给服务商,服务商将其输入机器学习模型 (如神经网络) 后将结果 M ( x ) M(x) M(x) 返回给用户端。可以看出该方案存在的一个问题:用户端的数据 x x x 会泄露给服务商。在用户端的数据 x x x 为敏感数据,而服务商不一定可信的情况下,用户端可能不希望自己的数据暴露在服务器端。

MLaaS 中的全同态加密

一个解决方案为全同态加密:

MLaaS+FHE

用户将自己的数据加密后上传云服务器,云服务器在加密的数据上进行运算,得到运算结果后返回给用户端,用户端解密后得到所需的结果 M ( x ) M(x) M(x) 。这类方案在保护用户隐私的同时也达到了运算的目的,然而效率却不敢恭维。因此 Pascal Paillier 等人设计了 fhe-DiNN —— 一种基于全同态加密的神经网络预测方案,旨在尽可能快速地同态评估用户输入的数据。

神经网络

异常熟悉的模型,不赘述:

DiNN学习笔记1-理论部分_第2张图片

将隐藏层中的每个神经元进行放大:

DiNN学习笔记1-理论部分_第3张图片

可见全同态加密只要能够运算 y = f ( ∑ i w i x i ) y = f(\sum_{i} w_i x_i) y=f(iwixi) 就能完成密文数据下的神经网络预测。

Fhe-DiNN 中的默认设定

Fhe-DiNN 中有一些默认的设定:

  1. 模型是在明文上已经训练好的 (本论文实验中是由 python 训练的) 明文模型,输入的数据为加密数据,输出的结果为加密的神经网络输出结果。
  2. Fhe-DiNN 旨在尽可能地提升评估的效率,因此会在准确率上有一定的损失。
  3. Fhe-DiNN 只在图像识别中进行了示范,但其实本文提出的是一个泛化的模型,在其他机器学习领域也同样适用。实验中使用的数据集为 MNIST 手写数据集。

Fhe-DiNN 方案

神经元中的计算

为了计算神经元的输出 y = f ( ∑ i w i x i ) y = f(\sum_{i} w_i x_i) y=f(iwixi) ,首先需要计算激活函数中的累加结果 (Multisum) :

∑ i w i x i \sum_{i} w_i x_i iwixi

给定权重 w i w_i wi 和加密的输入 E n c ( x i ) Enc(x_i) Enc(xi) ,计算他们的乘积与和:

∑ i w i ⋅ E n c ( x i ) \sum_{i} w_i \sdot Enc(x_i) iwiEnc(xi)

注意到为了保证正确性,需要权重为整数 : w i ∈ Z w_i \in \mathbb{Z} w

你可能感兴趣的:(同态加密,密码学,信息安全,神经网络)