(阅读笔记)SecureML: A System for Scalable Privacy-Preserving Machine Learning

SecureML

  • 动机
  • 基础知识
  • SecureML
  • 文章总结

动机

  1. 用户(例如物联网设备)计算、电池资源受限,选择外包数据给云或边缘执行密集型计算;
  2. 用户数据包含隐私信息,数据控制权的转移意味着数据隐私泄露风险;
  3. 选择加密原语处理数据后上传,实现密文计算网络推理或训练)是重要挑战。

基础知识

  1. 线性回归模型,值连续,损失函数多选择最小欧式距离计算;
  2. 逻辑回归模型,二分类任务,值离散,损失函数多选择交叉熵计算;
  3. 神经网络模型,多分类任务,值离散,损失函数选择交叉熵等计算;
  4. 三种加密原语:不经意传输OT,混淆电路GC,秘密共享SS(加性秘密共享ASS,布尔秘密共享BSS,姚式电路秘密共享YSS);
  5. 系统模型:两个半可信、不共谋的服务器 S0和S1,多个用户(客户机)按照服务器数量拆分数据份额,分别发送给两台服务器,由两台服务器交互执行密文意义下的计算。

SecureML

  • 线性回归:加法与乘法的组合(线性组合计算);
  1. 加法:S0和S1独立计算;
  2. 乘法:可信第三方离线生成乘法三元组,传递秘密份额给S0和S1,由S0和S1在线交互计算;
  3. 共享十进制数的算术运算:
    ① 确定特别大的有限域,将十进制数扩大为整数,但仅支持有限次的乘法计算,存在数据上溢问题;
    ②采用布尔电路执行定点数或浮点数计算,但存在巨大的计算开销;
    ③本文中,采用定点数, l D l_D lD位比特表示小数,则定点数x’可表示为 2 l D ⋅ x 2^{l_D} \cdot x 2lDx,则乘法结果的小数可用 2 l D 2l_D 2lD位比特表示,再简单截断前 l D l_D lD位比特。
    直接设计浮点数域的计算协议? 因为计算机执行过程中,浮点数类型也是截断固定长度的小数。
    (阅读笔记)SecureML: A System for Scalable Privacy-Preserving Machine Learning_第1张图片
  • 逻辑回归

主要是计算过程中激活函数如何安全地计算?
前人工作,采用分段线性函数近似非线性激活函数。
本文中,设计新的分段线性函数,可以实现近似的拟合效果。(阅读笔记)SecureML: A System for Scalable Privacy-Preserving Machine Learning_第2张图片(阅读笔记)SecureML: A System for Scalable Privacy-Preserving Machine Learning_第3张图片
(阅读笔记)SecureML: A System for Scalable Privacy-Preserving Machine Learning_第4张图片
(阅读笔记)SecureML: A System for Scalable Privacy-Preserving Machine Learning_第5张图片

  • 隐私保护神经网络训练
  1. ReLU函数及其导数的安全计算:采用混淆电路实现比较计算。
    在这里插入图片描述
  2. 采用Square平方函数替代ReLU函数进行神经元激活,提高计算效率,损失部分精度。
  3. Softmax归一化函数:采用ReLU函数替代指数单元,既保留非线性,也实现了输出的归一化概率分布。
    在这里插入图片描述

文章总结

  • 隐私保护外包推理和训练的开创之作,详细分析了线性回归、逻辑回归和神经网络的实现过程,对于加法可以独立计算,对于乘法采用离线乘法三元组设计乘法协议,两者实现简单的线性组合计算;对于非线性函数,例如ReLU激活函数,Softmax归一化函数,相比于利用低阶线性多项式进行逼近或者泰勒级数展开,本文针对性地设计新的简单的分段激活函数实现激活功能,归一化函数通过指数单元替换实现;文章提供了大量的效率和安全性分析,在C++平台上进行了大量实验。
  • 然而,本文存在几点缺陷:
  1. 安全非线性函数设计较为单一,不具有普适性,如何提出一种完美解决非线性函数共享的思路,例如可以安全实现非线性与线性的转化?
  2. 仅适用于浅层感知机或神经网络(机器学习),如何推广至实现隐私保护深度神经网络,同时保持较高的计算效率,即如何缩小明文计算和密文计算间的鸿沟?
  3. 密态神经网络训练对计算具有更高的精度要求,如何控制误差传播与衍生?

你可能感兴趣的:(安全学习)