大家好,欢迎来到IT知识分享网。
DiNN学习笔记1-理论部分
背景知识
机器学习即服务
机器学习即服务 (Machine Learning as a Service, MLaaS) 可以简单理解为:一系列将机器学习工具作为云计算服务的一部分的服务。 MLaaS 帮助客户从机器学习中获益,却不用承担建立机器学习模型所需的成本、时间和风险。服务商提供预测分析、深度学习、api、数据可视化、自然语言处理等服务;计算由服务商的数据中心处理完成。
以图中的 MLaaS 模型为例,服务商训练一个可用的模型,客户端将其需要进行预测的数据 x x x 提供给服务商,服务商将其输入机器学习模型 (如神经网络) 后将结果 M ( x ) M(x) M(x) 返回给用户端。可以看出该方案存在的一个问题:用户端的数据 x x x 会泄露给服务商。在用户端的数据 x x x 为敏感数据,而服务商不一定可信的情况下,用户端可能不希望自己的数据暴露在服务器端。
MLaaS 中的全同态加密
一个解决方案为全同态加密:
用户将自己的数据加密后上传云服务器,云服务器在加密的数据上进行运算,得到运算结果后返回给用户端,用户端解密后得到所需的结果 M ( x ) M(x) M(x) 。这类方案在保护用户隐私的同时也达到了运算的目的,然而效率却不敢恭维。因此 Pascal Paillier 等人设计了 fhe-DiNN —— 一种基于全同态加密的神经网络预测方案,旨在尽可能快速地同态评估用户输入的数据。
神经网络
异常熟悉的模型,不赘述:
将隐藏层中的每个神经元进行放大:
可见全同态加密只要能够运算 y = f ( ∑ i w i x i ) y = f(\sum_{i} w_i x_i) y=f(∑iwixi) 就能完成密文数据下的神经网络预测。
Fhe-DiNN 中的默认设定
Fhe-DiNN 中有一些默认的设定:
- 模型是在明文上已经训练好的 (本论文实验中是由 python 训练的) 明文模型,输入的数据为加密数据,输出的结果为加密的神经网络输出结果。
- Fhe-DiNN 旨在尽可能地提升评估的效率,因此会在准确率上有一定的损失。
- 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 i∑wixi
给定权重 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) i∑wi⋅Enc(xi)
注意到为了保证正确性,需要权重为整数 : w i ∈ Z w_i \in \mathbb{Z} w
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/151988.html