zoukankan      html  css  js  c++  java
  • 论文笔记[Slalom: Fast, Verifiable and Private Execution of Neural Networks in Trusted Hardware]

    作者:Florian Tramèr, Dan Boneh [Standford University] [ICLR 2019]

    Abstract

    为保护机器学习中隐私性和数据完整性,通常可以利用可信执行环境(Trusted Execution Environment),利用硬件和软件的保护机制来使敏感数据的计算独立出来,但这种方式存在效率上的损失。因此这篇论文提出将计算过程分到可信设备和不可信设备中,以高性能执行深度神经网络的。Slalom,将DNN中的所有线性层计算工作外包到不可信但快速的设备中,同时能够保证DNN的privacy和integrity。

    Three motivating scenarios

    1. Outsourced ML。当ML任务外包给云服务商,要充分信任云服务上会正确执行。恶意云(A dishonest cloud provider)可能会用一个较弱的模型,对不同的用户使用不公平的方法,或者恶意的篡改计算结果。甚至敏感数据(sensitive data)会被泄露。
    2. Federated learning。(联合学习)It works like this: your device downloads the current model, improves it by learning from data on your phone, and then summarizes the changes as a small focused update. Only this update to the model is sent to the cloud, using encrypted communication, where it is immediately averaged with other user updates to improve the shared model. All the training data remains on your device, and no individual updates are stored in the cloud. 联合学习中隐私性可以通过加密的方式来保证,完整性需要确保恶意用户(malicious user)和受感染的设备不会上传错误的模型到云端。
    3. Infected hosts。恶意软件可能会篡改本地机器的行为产生错误的结果。

    以上三种方式对隐私性的保护不是必要的(2,3训练模型和数据都存在本地),但对于数据完整性是必须的。

    Background

    $u$代表用户,DNN用$F(x):Xrightarrow Y$表示,$P_T$代表可信处理器,$P_U$代表不可信而高效的处理器。

    Freivald’s Algorithm

    $n times n$的矩阵$A$,$B$和$tilde{C}$在定义域$mathbb{F}$,验证$tilde{C}=AB$是否成立可以使用一个随机向量$r$,从而验证$tilde{C}r=A(Br)$。比较矩阵乘法,需要花费$O(n^3)$次运算(可以改进到$O(n^{2.81})$)。Freivald算法可以通过三次矩阵-向量乘法,只需花费$O(n^2)$次运算。

    令$D:=tilde{C}-AB$,向量$r$是从$S^n$中随机选的,False Positive(FP,被模型预测为正的负样本)概率:
    $$Pr[tilde{C}r=A(Br)|tilde{C}neq AB]=Pr[Dr=0|Dneq 0]leq cfrac{1}{|S|}$$
    证明。通过重复检验$k$次,使得出错概率小于$1/{|S|^k}$。

    私密的线性运算

    输入的隐私保护可以通过同态加密的方式来保护,但开销较大。如图中,$P_T$对每一层的输入都加上随机向量,并把修改后的输入交给$P_U$来做计算,将结果$tilde{Z}_i$返回给$P_T$。在$P_T$中计算$Z_i=tilde{Z}_i-R_iW_i$,$R_i$可以预先计算。最后的输出为$Z_n$。论文的大致方案如下图所示,接下来讨论具体的实施方案。
    icon.png

    Quantization

    在他们的框架中,他们对浮点数进行处理,将其转化为整数,整数的值域在$mathbb{Z}_p$。转换浮点数$x$为一个固定点表示(fixed-point representation)$tilde{x}=FP(x;k):=left lfloor {2^kcdot x} right rceil$,代表取最近的整数。$tilde{W}=FP(W,k)$、偏重$tilde{b}=FP(W,2k)$。对结果缩小$2^k$倍。对参数和输入数据的变换,DNN所有计算中值不超过$2^{24}$为保证没有精度损失。论文对VGG16和MobileNet两个模型进行评估,模型准确率大约有少于0.5%的损失。

  • 相关阅读:
    HBuilder运行时Chrome时提示“浏览器运行尚不支持此种类型文件
    微信小程序开发指南
    mysql免安装版win10的安装教程
    跨域解决方案
    安装sass(css预处理语言)
    vscode必装插件(Vue)
    laravel低版本安装pjax出问题解决方法
    laravel笔记1后台配置
    php 类和方法
    PHP类和对象之类的属性
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12230902.html
Copyright © 2011-2022 走看看