【阅读笔记】SecureML: A System for ScalablePrivacy-Preserving Machine Learning

news2024/11/15 10:52:29

1. Motivation 

针对机器学习中的出现的数据隐私泄露的风险,提出了线性回归、逻辑回归以及简单神经网络的隐私保护模型。

2. Contributions

2.1 为线性回归、逻辑回归以及神经网络设计安全计算协议

2.1.1.1 线性回归

线性回归损失函数为:

  \small C(w)=\frac{1}{n}\sum C_i(w),\small C_i(\mathbf{w})=\frac{1}{2}(\mathbf{x_i}\cdot \mathbf{w}-y_i)^2

采用SGD算法处理损失函数,权重w的更新公式为:

\small w_{j}:=w_{j}-\alpha \frac{\partial C_{i}(\mathbf{w})}{\partial w_{j}}

式子只有加法、乘法运算,秘密分享的形式为:

\small \langle w_j\rangle:=\left\langle w_{j}\right\rangle-\alpha \operatorname{Mul}^{A}\left(\sum_{k=1}^{d} \operatorname{Mul}^{A}\left(\left\langle x_{i k}\right\rangle,\left\langle w_{k}\right\rangle\right)-\left\langle y_{i}\right\rangle,\left\langle x_{i j}\right\rangle\right)

写成向量的形式为:

\small \langle \mathbf{w}\rangle:=\langle \mathbf{w}\rangle-\frac{1}{|B|} \alpha \operatorname{Mul}^{A}\left(\left\langle\mathbf{X}_{B}^{T}\right\rangle, \operatorname{Mul}^{A}\left(\left\langle\mathbf{X}_{B}\right\rangle,\langle\mathbf{w}\rangle\right)-\left\langle\mathbf{Y}_{B}\right\rangle\right)

根据Beaver's triple 计算矩阵乘法:

这里需要注意的是文章中说明的是两个服务器\small S_0,S_1,都以获得数据的一个份额,并不是各方持有一份完整的数据。

可得:\small \langle\mathbf{C}\rangle_{i}=-i \cdot \mathbf{E} \times \mathbf{F}+\langle\mathbf{A}\rangle_{i} \times \mathbf{F}+\mathbf{E} \times\langle\mathbf{B}\rangle_{i}+\langle\mathbf{Z}\rangle_{i},之后的乘法运算都依据这个式子。

完整过程如下:

2.2 运算中小数的处理

计算小数乘法,x*y,假设x和y都最多有D为小数。

(1)将x和y进行扩大

x^{'}=2^{l_D}x,y^{'}=2^{l_D}y

(2)截断小数

        扩大后结果为z=x^{'}y^{'},小数位数最多D为,所以将最后D位截取,截断后的结果可写为z=z_1\cdot2^{l_D}+z_2,用[z]表示截断操作则最的相乘结果为z_1

2.3 优化激活函数

        在逻辑回归算法中,有函数f()=\frac{1}{1+e^{-x}},其中在实数域中,该函数包含的除法和求幂运算很难支持2PC和布尔运算,比之前工作用多项式去逼近函数不同的是,作者提出一个Friendly activation function,函数为f(u),f(u)图像如下图所示。

f(u)=\left\{\begin{array}{ll} 0, & \text { if } u<-\frac{1}{2} \\ u+\frac{1}{2}, & \text { if }-\frac{1}{2} \leq u \leq \frac{1}{2} \\ 1, & \text { if } u>\frac{1}{2} \end{array}\right.\textup{}              

 构造的灵感来源于:

(1)函数值应该收敛在0和1之间;(2)RELU函数

2.4 引入了面向秘密共享的向量化计算

线性回归下模型权重更新公式为\small w_{j}:=w_{j}-\alpha \frac{\partial C_{i}(\mathbf{w})}{\partial w_{j}},仅涉及加法和乘法。秘密分享形式下的加法在本地即可计算,而乘法需要借助Beavers Triple。但是元素级别的运算效率太低,这里优化为矩阵乘法C=A\cdot B,由2.1节可知C的Share为:\small \langle\mathbf{C}\rangle_{i}=-i \cdot \mathbf{E} \times \mathbf{F}+\langle\mathbf{A}\rangle_{i} \times \mathbf{F}+\mathbf{E} \times\langle\mathbf{B}\rangle_{i}+\langle\mathbf{Z}\rangle_{i},这样可以大大加快计算效率。

3. Q&R

3.1 为什么加法秘密共享是环上,shamir是在域上?

答:加法秘密分享只需要加减法就可以定义分享和恢复算法;shamir的恢复算法需要计算离散空间的除法,环中因为有些元素没有逆元,所以没法保证恢复算法能成功。域中元素都有逆元,可以计算除法。

3.2 隐私计算往往要求在有限域上运算,实际问题怎么去应用?

答:需要转化为将实际的运算转化到有限域的代数系统中。

4. Summary

        优化一个问题,可以从各个方面入手,有的对结果有直接影响,有的是间接影响;有的直接影响大,有的直接影响小。

Reference

1.论文阅读笔记:SecureML: A System for Scalable Privacy-Preserving Machine Learning - 知乎

2.为什么不可以直接在实数上进行秘密分享? - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/372461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据分析:某电商优惠卷数据分析

数据分析&#xff1a;某电商优惠卷数据分析 作者&#xff1a;AOAIYI 专栏&#xff1a;python数据分析 作者简介&#xff1a;Python领域新星作者、多项比赛获奖者&#xff1a;AOAIYI首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可…

单变量回归问题

单变量回归问题 对于某房价问题&#xff0c;x为房屋大小&#xff0c;h即为预估房价&#xff0c;模型公式为&#xff1a; hθ(x)θ0θ1xh_{\theta}(x)\theta_{0}\theta_{1}x hθ​(x)θ0​θ1​x 要利用训练集拟合该公式&#xff08;主要是计算θ0、θ1\theta_{0}、\theta_{1}θ…

JavaScript DOM和BOM

目录 查找html元素 1.通过id 2.通过标签名 3.通过类名 DOM 1.创建动态的HTML内容 2.修改元素内容 3.改变HTML属性 4.改变css样式 DOM事件 DOM节点 1.添加HTML元素 2.删除HTML元素 浏览器对象 1.Window对象 2.Screen对象 3.History对象 4.Location对象 5.Navi…

深入理解java虚拟机精华总结:jvm内存模型(运行时数据区域)、对象、OOM异常

深入理解java虚拟机精华总结&#xff1a;jvm内存模型、对象、OOM异常jvm内存模型对象对象的创建对象的内存布局对象的访问定位OOM异常Java堆溢出栈溢出方法区溢出直接内存溢出以前读过好几遍《深入理解java虚拟机》这本书&#xff0c;最近又打算重读一遍&#xff0c;并且做一些…

一个接口多个实现如何选择注入对应的Bean_@Primary_@Resource_@Qualifier_@ConditionalOnProperty

文章目录引入结论案例Primary 指定默认注入的BeanQualifier配合Autowired 按名称注入对应的BeanResource 默认按照类型注入&#xff0c;可指定名称注入ConditionalOnProperty 结合配置文件统一设置bean的注入引入 在springboot中&#xff0c;如果一个接口有多个实现&#xff0…

SpringMVC - 13 - SpringMVC执行流程

文章目录1、SpringMVC常用组件2、DispatcherServlet初始化过程a>初始化WebApplicationContextb>创建WebApplicationContextc>DispatcherServlet初始化策略3、DispatcherServlet调用组件处理请求a>processRequest()b>doService()c>doDispatch()d>processDi…

【Neo4j】图数据库CypherQueryLanguage随笔

CQL语言随笔 一、Cyther关系描述 如图&#xff1a;唐僧&#xff0c;孙悟空&#xff0c;白骨精三者的关系图&#xff1a; Cypher语言描述他们的关系&#xff1a; (孙悟空)<-[:赶走]-(唐僧)-[:被骗]->(白骨精)-[:被打死]->(孙悟空) 二、CQL语言的使用案例 创建结点…

七、HTTPTomcatServlet

1&#xff0c;Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站。 在我们日常的生活中&#xff0c;经常会使用浏览器去访问百度、京东、传智官网等这些网站&#xff0c;这些网站统称为Web网站。如下就是通…

_react

React 中 keys 的作用是什么&#xff1f; Keys是 React 用于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识 在开发过程中&#xff0c;我们需要保证某个元素的 key 在其同级元素中具有唯一性。在 React Diff 算法中React 会借助元素的 Key 值来判断该元素是新近创建的还…

ADAS-可见光相机之Cmos Image Sensor

引言 “ 可见光相机在日常生活、工业生产、智能制造等应用有着重要的作用。在ADAS中更是扮演着重要的角色&#xff0c;如tesla model系列全车身10多个相机&#xff0c;不断感知周围世界。本文着重讲解下可见光相机中的CIS(CMOS Image Sensor)。” 定义 光是一种电磁波&…

如何在 iPhone 上恢复已删除的通话记录/通话记录

您的通话记录/通话记录可能很重要&#xff0c;尤其是当您想要拨打之前联系过但未保存的号码时。如果您碰巧删除了通话记录&#xff08;有意或无意&#xff09;&#xff0c;本指南将帮助您了解如何检索它们并找回您需要使用的所有记录。我们将根据您的情况和您拥有的工具讨论不同…

【Tomcat 】Tomcat 架构原理解析到架构设计借鉴

Tomcat 发展这么多年&#xff0c;已经比较成熟稳定。在如今『追新求快』的时代&#xff0c;Tomcat 作为 Java Web 开发必备的工具似乎变成了『熟悉的陌生人』&#xff0c;难道说如今就没有必要深入学习它了么&#xff1f;学习它我们又有什么收获呢&#xff1f; 静下心来&#…

一文让你彻底理解关于消息队列的使用

一、消息队列概述 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用解耦&#xff0c;异步消息&#xff0c;流量削锋等问题&#xff0c;实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ&#xff0c;Rabbit…

Spring Security认证研究

1.项目中认证的三种方式&#xff1a; 1.统一认证 认证通过由认证服务向给用户颁发令牌&#xff0c;相当于访问系统的通行证&#xff0c;用户拿着令牌去访问系统的资源。 2.单点登录&#xff0c;对于微服务项目&#xff0c;因为包含多个模块&#xff0c;所以单点登录就是使得用户…

烙铁使用方法

烙铁使用 烙铁是硬件工程师最经常使用的工具之一,一把性能保持良好的烙铁能帮助我们快速进行电路调试。烙铁第一次加热时采用焊锡均匀涂覆在烙铁头上,以便去除包在烙铁头上面的氧化物。在工作中我们需要根据情况选择合适的烙铁头类型,合适的温度进行操作。完成焊接后要在烙铁…

TypeError: load() missing 1 required positional argument: ‘Loader‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…

BLIP2-图像文本预训练

文章目录摘要解决问题算法模型结构通过frozen图像编码器学习视觉语言表征图像文本对比学习&#xff08;ITC&#xff09;基于图像文本生成&#xff08;ITG&#xff09;图文匹配&#xff08;ITM&#xff09;从大规模语言模型学习视觉到语言生成模型预训练预训练数据预训练图像编码…

基础夯实,字节内部总结240道算法LeetCode刷题笔记,直呼太全

1、什么是算法算法(algorithm&#xff0c;[ˈlɡərɪəm]&#xff0c;计算程序)&#xff1a;就是定义良好的计算过程&#xff0c;他取一个或一组的值为输入&#xff0c;并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤&#xff0c;用来将输入数据转化成输出结…

从Linux源码角度看套接字的Listen及连接队列

今天就从Linux源码的角度看下Server端的Socket在进行listen的时候到底做了哪些事情(基于Linux 3.10内核)&#xff0c;当然由于listen的backlog参数和半连接hash表以及全连接队列都相关&#xff0c;在这里也一块讲了。 Server端Socket需要Listen 众所周知&#xff0c;一个Serv…

archlinux docker配置php5.3

一直在维护一下10年前的老项目&#xff0c;是基于php5.3开发的。一直在使用windows虚拟机在开发php5.3。最近就想尝试在archlinux主系统中开发。 什么是php PHP 是一种广泛使用的通用脚本语言&#xff0c;特别适合 Web 开发&#xff0c;可以嵌入到 HTML 中。 AUR安装php5.3 …