课程链接:隐语 · 实训社区
推荐一个帮助到我的博客:
隐语课程学习笔记6-逻辑回归LR与广义线性模型GLM开发实践-CSDN博客
01 背景知识-LR/GLM应用场景及原理
广义线性模型建模场景
广义线性模型的定义
02隐语模型-密态 SSLR/SSGLM
一般的广义线性模型参数估计方法有两种:
一阶优化器:SGD参数估计方法和二阶优化器:迭代重加权最小二乘法(IRLS)
而在隐语中讲二阶优化器 与 一阶优化器相结合,在训练初期使用二阶优化器进行几轮迭代,然后转为一阶优化器进行快速的收敛。
优化器以及任何想要计算的函数都可以被划归为加法和乘法的组合,而在隐语中采用秘密分享 (Secret sharing)的方式安全地进行计算。
如图可以实现,A,B,C通信三方在不知道对方的秘密值的情况下完成求和(A的秘密值为15,B的秘密值为25,C的秘密值为10,求和为50)
乘法中也实现类似的效果
03应用实现-从理论到隐语应用
SSGLM的参数解析
如图所示:
建模流程
使用SSLR
1. 准备SPU和数据 (数据需要归一化)
2. 模型训练
3. 模型评估
使用SSGLM
与上面使用SSLR的过程大致相同,模型训练时可以使用IRLS或SGD
04 SS-LR / SSGLM 在隐语实现的独特优势
实践作业
首先使用docker方式启动secretnote(过程请参见第四节课内容)
1、添加Alice和Bob节点后的页面如图:
2、开始编写代码:
原始代码可以参见:实践作业任务代码
这里注意为了保证链接到数据集网站,需要设置SSL,就是上图中的设置连接环境。
import ssl
ssl._create_default_https_context=ssl._create_unverified_context
拟合 GLM 模型的输出为:
拟合 SS GLM 模型输出为: