联邦学习

This commit is contained in:
estomm
2020-09-10 15:54:51 +08:00
parent 505be2ba34
commit 84f4edcbcf
23 changed files with 700 additions and 27 deletions

59
C++/CMake.md Normal file
View File

@@ -0,0 +1,59 @@
## Cmake的基本配置
### Cmake最低版本号要求
cmake_minimum_reqired(VERSION 2.8)
### 项目信息
project(Demo1)
### 指定生成目标
add_executable(Demo main.cc a.cc b.cc)
### 使用mmm变量保存
aux_source_directory(. mmm)
add_executable(Demo ${mmm})
### 添加子文件
add_subdirectory(math)
## Cmake添加静态链接库
```
CMAKE_MINIMUM_REQUIRED(VERSION 3.14)
#指定项目名称
PROJECT(HELLO)
#将hello.cpp 赋值给SOURCE 变量
SET(SOURCE ${PROJECT_SOURCE_DIR}/src/hello.cpp)
#指定头文件目录
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
#指定链接库文件目录
LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib)
#将hello.cpp生成可执行文件hello
ADD_EXECUTABLE(hello ${SOURCE})
#指定hello 链接库myprint
TARGET_LINK_LIBRARIES(hello myprint)
```
## Cmake使用动态链接库
```
#指定CMake编译最低要求版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.14)
#给项目命名
PROJECT(MYPRINT)
#收集c/c++文件并赋值给变量SRC_LIST_CPP ${PROJECT_SOURCE_DIR}代表区当前项目录
FILE(GLOB SRC_LIST_CPP ${PROJECT_SOURCE_DIR}/src/*.cpp)
FILE(GLOB SRC_LIST_C ${PROJECT_SOURCE_DIR}/src/*.c)
#指定头文件目录
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
#指定生成库文件的目录
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#去变量SRC_LIST_CPP 与SRC_LIST_C 指定生成libmyprint 动态库 默认生成静态库 SHARED指定生成库类型为动态库
ADD_LIBRARY(myprint SHARED ${SRC_LIST_CPP} ${SRC_LIST_C})
```
设置变量set file aux_source_directory
指定目录include_directories link_directories
生成文件 add_executable add_library
链接库 target_link_libraries

View File

@@ -0,0 +1,25 @@
## 研究方向
* 情报威胁----定义系统的应用场景,包括输入输出。
* 联邦学习----定义系统的算法,包括各种处理细节。
-------------------------
## 总体规划
* 第一阶段:通过情报威胁相关论文和资料,定义应用场景(由蒋师兄完成)
* 第二阶段:学习统计学、机器学习和联邦学习的基础知识、论文和资料
* 第三阶段:复现联邦学习论文,搭建联邦学习的框架,实现机器学习过程。
* 第四阶段:对联邦学习框架的细节进行研究,改善应用场景下的联邦学习过程。例如:提升安全性;增强分布式计算能力等。
----------------------------
## 技术范式
WEB服务端//Django
联邦学习系统//python、分布式机器学习模型
威胁情报数据库//mysql数据库nosql数据库

View File

@@ -0,0 +1,100 @@
## 时间安排
上午:完成供应链金融的调查报告
下午:阅读完成 已导入:威胁情报相关的内容
晚上:阅读完成 已导入:联邦学习相关内容
## 供应链金融调查报告
### 场景描述
银行围绕核心企业,管理上下游中小企业的资金流和物流,并把单个企业的不可控风险转变为供应链企业整体的可控风险,通过立体获取各类信息,将风险控制在最低的金融服务。
供应链金融Supply Chain FinanceSCF是商业银行信贷业务的一个专业领域银行层面也是企业尤其是中小企业的一种融资渠道企业层面
* 产业链运营能力:供应链金融以产业供应链运营管理为基础,产业供应链运营管理水平高低、现有产业供应链数字化程度高低、未来数字化的难易程度和成本的高低都会对该产业的供应链金融产生重要影响,是供应链金融发展的基础环境。
* 广泛的金融服务:供应链金融的目的旨在优化整个产业的现金流,让利益各方以较低的成本实现更高效的生产运营,因此,供应链金融不仅仅是目前我们在实务中最常见的融资借贷服务,还应该包括更广义的金融服务和服务组合。
* 对产业链上的单位诉求进行分析。金融活动的开展是针对产业供应链的具体业务进行的,不同产业不同环节的具体业务以及不同类型的参与主体都会对金融服务产生不同的痛点和价值诉求。
优势:提升产业链整体的竞争力。整个产业链场景的数字化,能够应用人工智能等新的科技手段。
### 可行性
* 从科研的角度来说:研究集中在金融领域。整体上,集中在金融模式的研究比较多。细节上可能会用到网络安全领域的基础知识,但是整个大型软件服务的开发,与科研项目结合不紧密。主要研究集中在金融模式的研究,很少有计算机与网络领域的研究。大部分论文都是金融模型。
* 从工作量的角度来说:需要专业的开发公司,我们更擅长小型科研验证软件的开发,不具备开发大型企业级软件的能力,包括市场调研、企业对接。
* 企业级应用开发javaEE javaSpring。主要是业务逻辑的开发。但需要涉及到企业的上中下游需要开发一套核心系统和面向多个应用方的子系统。如果以实际应用为目标可能需要10~15人的开发团队半年以上的开发。企业级开发逻辑复杂需要考虑实际应用中的各种问题需要金融领域的人员给出详细的业务流程需要专业的系统设计和反复的技术验证。工作量庞大需要专门的开发团队和公司需要进行市场调研与主要的服务公司进行接口对接。
* 供应链过长:对供应链上下游多个单位的需求分析与交流,可能涉及大量的工作。定义每一个环节的软件应用场景和软件需求。原材料生产商、供应商、核心企业及其分公司、经销商、终端用户。涉及到采购、研发、制造、仓储、营销等各个环节。
* 供应链整合能力:由于供应链金融平台需要为所有产业链成员提供信息和集成服务,因此需要了解产业链成员的业务结构、业务特征、业务流程和业务风险,包括但不限于整个供应链的技术研发、物资采购、产品生产、分销物流、各类服务的分布状况、相互之间的关联和联动特点,从而进一步掌握具体业务环节的资金流动特性,各利益主体的诉求和痛点。这是帮助各类产业链成员相关业务有效数字化的前提。
* 时间成本和金钱成本过高。首先是否将关键业务节点信息真实有效的反应到了平台数据层面;其次实现这一数字化的成本,包括时间成本和金钱成本是否可以控制在经济可行的范围内。必须依托与专业公司,这不仅仅是软件的开发,更是整个行业的整合,可能涉及到市场经营部门、开发部门等多个部门的联动。
* 单点提升可行性。我们可以在现有的供应链金融平台上,提出自己的改进措施,提升网络安全防御能力,或者对数字化内容进行智能化分析。
* 解决方案设计能力。首先与平台的场景解构能力相关,深入理解产业供应链业务、流程和资金流动特点;再者,这需要平台本身或者能够整合的资源方,具备丰富的金融服务产品体系,才能为企业客户提供多样化选择的可能性。
### 一个架构
![](供应链金融.jpg)
### 可行性报告内容
* 目录 1
* 第1章 项目总论 6
* §1.1 项目背景 6
* §1.2 可行性研究结论 7
* §1.3 主要技术经济指标表 9
* §1.4 存在问题及建议 9
* 第2章 项目背景和发展概况 10
* §2.1 项目提出的背景 10
* §2.2 项目发展概况 10
* §2.3 投资的必要性 11
* 第3章 市场分析与建设规模 12
* §3.1 市场调查 12
* §3.2 市场预测 13
* §3.3 市场推销战略 14
* §3.4 产品方案和建设规模 15
* §3.5 产品销售收入预测 16
* 第4章 建设条件与厂址选择 17
* §4.1 资源和原材料 17
* §4.2 建设地区的选择 18
* §4.3 厂址选择 20
* 第5章 工厂技术方案 22
* §5.1 项目组成 22
* §5.2 生产技术方案 22
* §5.3 总平面布置和运输 24
* §5.4 土建工程 25
* §5.5 其他工程 26
* 第6章 环境保护与劳动安全 27
* §6.1 建设地区的环境现状 27
* §6.2 项目主要污染源和污染物 28
* §6.3 项目拟采用的环境保护标准 28
* §6.4 治理环境的方案 29
* §6.5 环境监测制度的建议 29
* §6.6 环境保护投资估算 29
* §6.7 环境影响评论结论 29
* §6.8 劳动保护与安全卫生 29
* 第7章 企业组织和劳动定员 31
* §7.1 企业组织 31
* §7.2 劳动定员和人员培训 31
* 第8章 项目实施进度安排 33
* §8.1 项目实施的各阶段 33
* §8.2 项目实施进度表 35
* §8.3 项目实施费用 36
* 第9章 投资估算与资金筹措 37
* §9.1 项目总投资估算 37
* §9.2 资金筹措 39
* §9.3 投资使用计划 39
* 第10章 财务与敏感性分析 41
* §10.1 生产成本和销售收入估算 41
* §10.2 财务评价 42
* §10.3 国民经济评价 42
* §10.4 不确定性分析 42
* §10.5 社会效益和社会影响分析 43
* 第11章 可行性研究结论与建议 44
* §11.1 结论与建议 44
* 第12章 财务报表 45
* 第13章 附件 47

View File

@@ -0,0 +1,44 @@
当前的主要任务:
现在处在研究的第一和第二阶段。关于第一阶段联邦学习的应用场景,主要由蒋师兄完成。第二阶段,学习联邦学习关联的基础知识,为第三阶段机器学习算法的实现和框架的搭建做好准备。
看完相关的文章和博客。然后开始学习用两周时间学习完成基础知识。在学习基础知识的时候使用tensorflow框架进行算法的运行。
--------------
学习路线
### Python系列
python3
numpy-scipy-matplotlib
### 机器学习系列(视频教程)
> 需要了解机器学习的各种工具需要的进行补充。使用python3进行编程实践。这一部分是最关键的需要按照知乎的方法进行调整学习。入门课程->模型算法->编程实践
1. 吴恩达的课程一看。跟着做做笔记。
2. 统计学习方法一看。3Blue1Brown的视频看一看。跟着做做笔记。
3. 《机器学习西瓜书》一看。跟着做做笔记。林轩田《机器学习基石》《机器学习技法》。李宏毅的《机器学习视频教程》。《机器学习实战》。《机器学习100天》
4. tensorflow教程一看实现一遍之前的算法。
工具
* sklearn
* tensorflow
### 深度学习系列
吴恩达的神经网络五套课程看完。
各种神经网络。
### 联邦学习系列
> 尝试搭建小型的联邦学习框架。寻找网络教程,完成这一块,还有很多书。
tensorflow
fate
### 相关资料说明
* 吴恩达的机器学习
* 吴恩达的深度学习五套课程
* 西瓜书
### 选择
框架选择tensorflow和fate
研究方向:数据挖掘和文本处理(自然语言处理)

View File

@@ -0,0 +1,19 @@
# 桌面应用程序开发
## 技术范式
> 1. 选择合适的技术范式。√
> 2. 对技术细节进行学习了解
> 3. 寻找开源的模板代码搭建框架
> 4. 根据任务需求进行快速开发
### C++ QT开发
### Python PyQT开发
卡掉因为是C项目用python的qt反而多此一举。
### JAVA SWING开发
理由同上。可以用C++,与原生的代码结合较好。
### nodeJS Electron桌面开发
easy-window小程序。
> 显然我觉得HTML桌面应用程序开发是最简单的能够实现极其好看的界面。

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

View File

@@ -1,36 +1,41 @@
# 文献整理——威胁情报共享
# 文献整理——威胁情报共享课题说明
> 用来描述自己对问题的理解
## 1 威胁情报场景描述
### 现实需求
### 应用场景
> 这也是实现基于威胁情报共享的协同防御实现方案。
* 美国——自动指示情报共享系统。
* 银联:虚假注册、批量绑卡、恶意刷单刷券等各种恶意行为会影响企业相关产品的日常运营和营销推广,而传统金融行业自身缺乏与互联网相关的安全数据,需要高质量的情报数据支持相关的风险防控工作。
* 银联是典型多职场、多组织协同防御的结构,拥有较多安防设备且对攻击敏感,会有海量的告警信息,如何从海量告警信息中获取真实的攻击行为是一个大的挑战。同时来自外部的威胁情报数据无法完全支撑对于真实攻击的检测、阻断和溯源分析,攻击者对于外围资产实施跳跃式攻击时,也可能导致联动防御困难。在这些场景中,我们对威胁情报数据和威胁情报生产均有强需求。
* 银联:虚假注册、批量绑卡、恶意刷单刷券等各种恶意行为会影响企业相关产品的日常运营和营销推广,而传统金融行业自身缺乏与互联网相关的安全数据,需要高质量的情报数据支持相关的风险防控工作。银联是典型多职场、多组织协同防御的结构,拥有较多安防设备且对攻击敏感,会有海量的告警信息,如何从海量告警信息中获取真实的攻击行为是一个大的挑战。同时来自外部的威胁情报数据无法完全支撑对于真实攻击的检测、阻断和溯源分析,攻击者对于外围资产实施跳跃式攻击时,也可能导致联动防御困难。
### 存在问题
### 存在问题(现实问题
威胁情报共享面临的难题:
* 情报共享的主体,因为安全理由不愿意暴露自身的情报状态。
* 共享与隐秘问题。情报共享的主体,因为安全理由不愿意暴露自身的情报状态。需要对协调共享与隐秘二者的矛盾关系。
* 互联网领域的威胁个体没有固定特征。互联网安全领域面临的问题是我们去处理和应对的不是一个已知的人而是一个可以不断变化的ID。
* 情报特征描述问题。互联网领域的威胁个体没有固定特征。互联网安全领域面临的问题是我们去处理和应对的不是一个已知的人而是一个可以不断变化的ID。需要通过一条情报刻画一个危险的个体。然后通过机器学习的方式,对危险个体进行学习。
* 动态变化问题。网络威胁的来源可以以很快改变和调整它的攻击方向与对象。在数字化形式下,新威胁与可能的攻击向量数不胜数。企业在检测和阻断威胁的有效性和之前相比已经差很多了。如果犯罪分子也可以得到类似我们这种共享威胁情报的话,他们就可以来判断什么样的行为容易被抓住,这样他们就可以及时调整策略。
* 虚假情报问题。攻击者可能伪造虚假情报,混淆情报的可信度,导致情报分析人员对发生的事件作出错误的反映。
* 另一个壁垒是网络威胁的来源可以以很快改变和调整它的攻击方向与对象。在数字化形式下,新威胁与可能的攻击向量数不胜数。企业在检测和阻断威胁的有效性和之前相比已经差很多了。如果犯罪分子也可以得到类似我们这种共享威胁情报的话,他们就可以来判断什么样的行为容易被抓住,这样他们就可以及时调整策略。
### 解决办法
### 解决思路(研究点)
* 针对安全性要求。分布式机器学习,分布式神经网络,联邦学习,匿名共享,提高机器学习的效率。
* 人脸识别的相关算法模糊身份认同而不是准确身份认同。行为特征匹配度而非真正的识别。模糊名册不针对身份ID而是匹配行为特征。更像一种行为模式识别威胁狩猎
* 人脸识别的相关算法模糊身份认同而不是准确身份认同。行为特征匹配度而非真正的识别。模糊名册不针对身份ID而是匹配行为特征。更像一种行为模式识别威胁狩猎。需要通过一条情报刻画一个危险的个体。然后通过机器学习的方式,对危险个体进行学习。输入一个个体的相关情报,尽量多的输入器特征信息,能够更加准确的判定其危险程度。
* 日志归一的算法(情报共享合并的算法)误报处理的算法。
### 相关思路
* 数据传输同态加密技术(防止截获传输数据)
* 数据可信度评估(掺杂虚假的数据)
* 机器学习安全问题,对抗性攻击。数据中毒、模型规避、模型窃取、数据推理攻击。分布式机器学习安全性问题(防止通过机器学习的结果,还原出关键的情报,数据溯源安全问题)
* 刻画同一个个体的情报可能包含的元数据类型相差很多数据结构不一致。是否有一种基于nosql数据的机器学习方案。
* 网络威胁情报的内容包括可疑和恶意活动的详细信息以及元数据,也包含了攻击媒介,使用的方法,可以采取的遏制措施。但即使分享了信誉文件,它不包含任何个人身份信息。
* 通过各项网络特征刻画一个有威胁的情报主体。与人脸识别非常相似。所以可以通过过机器学习进行训练,识别当前的交互个体的威胁程度。给出一个威胁报告,这个报告是预测性的,分析性。这个算法应该具有很高的可靠性,用来识别不怀好意的个体。
* 感觉这个不太像威胁情报共享系统,而是更像威胁个体评估系统。威胁情报共享,应该更加侧重于共享的内容和共享的方式,共享的内容应该全部公开,而不是经过加工处理。这个系统更像是威胁情报共享与评估系统。
* 这应该是算法的一个应用场景。应该从算法的角度去检索相关内容。
### 威胁情报库
* 威胁情报库的数据来源分为三方面,包括**内部情报、专业机构和行业联盟**。内部情报包括传统安全设备的拦截、后台SIEM等**安全分析系统的分析以及业务风控系统**的发现;专业机构会提供所处专业的多源情报,根据每家机构的专业特点进行互补,并在情报冲突时对数据进行研判;**行业联盟的威胁情报共享目前正在研究探索中**。内部情报、专业机构和行业联盟这三方面的数据聚合后,形成本地库,进行处理后,最终将数据结果反馈给最上层的应用层,推送给后台应用、防御设备或者人工调用。在综合考虑威胁情报库需求后,我们对国内相关厂商进行调研测试,最终选择北京微步在线科技有限公司旗下本地威胁情报管理平台作为银联威胁情报库的载体平台。
@@ -50,15 +55,7 @@ CTI系统的核心是通过共享信息来最大化每个节点的威胁响应
## 3 威胁情报共享与联邦学习面临的问题
* 数据传输同态加密技术(防止截获传输数据)
* 数据可信度评估(掺杂虚假的数据)
## 4 安全术语解析
## 附录:安全术语解析
### APT攻击

View File

@@ -1,4 +1,4 @@
# 文献整理——威胁情报共享2
# 文献整理——威胁情报
> 文献阅读中的思考用这种注释的方式给出把。
@@ -46,6 +46,95 @@
## 2 网络安全之情报浅析
> 应该思考我们的主要工作是什么?
> * 是根据数据生成情报?(通过数据处理,分析异常数据,挖掘漏洞
> * 是根据情报生成?(通过数据处理,分析异常数据,挖掘漏洞、APT入侵等信息
> * 是实现情报利用?(通过已有的情报对新的情报样本进行分析,分析其危险性,给出其威胁评估)
> * 是实现情报共享?(通过共享系统,将情报在孤立的个体之间传递,提供基于情报的服务)
### 数据与情报
* 数据是一条信息、事实或统计结果数据是用来描述某些事情的。在网络安全领域IP地址或域名是数据。如果没有任何额外的分析来提供上下文它们只是一个事实。
* 当我们收集并关联分析各种数据后,具备了为某种需求提供洞察能力,这时它们便成了情报
> 关于情报利用的周期的理解
> * 当前的情报利用流程:情报生成-->情报传播-->情报利用
> * 我们的情报利用流程:情报生成-->情报利用-->情报传播
### IOC
攻陷指标日志检测发现被攻陷的指标。在系统或网络日志中寻找某类特征数据来发现已被入侵的目标这类特征数据包括与C2服务器或恶意软件下载相关联的IP地址和域名、恶意文件的哈希值以及其他可以表明入侵的基于网络或主机的特征。
### 情报收集方法
* 人工情报:人工搜集的情报
* 信号情报:从电子信号中获取的情报。
* 公开情报
* 图像情报
* 测量与特征情报
* 地理和空间信息情报
> NoSQL非关系型数据库既然不同商家、不同类型的情报的字段存在巨大差异那么是否可以考虑使用非关系型数据库存储情报内容。
### 情报来源
* 数据泄露和事件响应活动中调查收集。
* 蜜罐,虚拟的设备和网络,用来捕获攻击流量。
* 论坛和网站。受限的论坛和聊天室。
* 军事术语。
> 情报关联系统。攻击底特律----黑衣人组织。等等,将所有的情报进行切片,然后使用情报之间的关联来描述情报本身。从而找出关联度最高的的东西,形成一张错综复杂的高纬度关联图。与警方办案的关系图非常相似。然后通过分析图形,确定当前的热点事件,找出线索。
> 受以上启发,突然想做一个连锁记忆的东西。建立连锁记忆知识库。使用百度或者谷歌作为连锁记忆引擎。
### 流程模型
* OODA模型Observe、Orient、Decide、Act。攻防双方遵循的基本决策方法。
* 情报周期模型:方向、收集、处理、分析、传播、反馈。
* 方向:确立情报打算解决的问题
* 收集:收集回答问题所需要的数据。
* 命名:避免对情报的命名冲突
* 处理:对数据进行格式化处理。建立大量数据的索引。
* 拓线:为一条信息提供额外的元数据。
* 过滤:处理掉没有用的数据。
* 优先级:已经收集到的数据需要进行排序。
* 可视化:为了方便认知,需要人员进行可视化。
* 分析:对数据进行特征化处理,分析其含义和影响。
* 传播情报以相关的受益者觉得有用的方式进行共享。果其目标是在技术系统如IDS或防火墙中实施则可能需要符合特定供应商的程序化格式。
* 反馈:对情报的价值进行评估,是否符合问题的方向。对情报做出成功或者失败的判定。
![](img/情报周期.jpg)
> 在文章中认为,通过自动化的方式对文本的操作,属于处理范畴,而不是分析过程。情报应该符合供应方的程序化格式。
### 有质量的情报
情报的质量主要包括:收集来源和分析手段。
* 收集日期:威胁情报具有时效性。
* 收集方法:收集方法越详细越好。
* 上下文:上下文内容有助于分析。
* 消除偏见:分析师带有个人偏见。
### 情报的级别
* 战术情报战术情报的一个例子是与新发现的漏洞利用有关的IOC特征。这些战术级IOC包括执行漏洞扫描探测的IP地址、域名托管的恶意软件漏洞攻击成功后植入以及利用和安装恶意软件过程中生成的各种基于主机的组件。在网络威胁情报CTI这通常包括IOC特征以及观测报告例如高细粒度的TTP描述对手如何部署特定的能力。战术情报使防御者能够直接对威胁作出反应。
* 作业情报在CTI中通常包括行动相关信息和高阶TTP内容。它还可能包括有关指定威胁组织的特点、能力和意图等信息。
* 战略情报在网络威胁情报CTI我们认为它可支持高级管理人员和董事会对风险评估、资源分配和组织战略做出正式决策。这些信息包括态势、威胁企业的动机和分类。比如需要制定新的安全策略或涉及安全架构的变动。
> * TTP说明在APT等 高级威胁 研究的领域,时常可以在各组织发布的 APT 报告中看到一个专业术语 TTP TTP及其中的三要素战术Tactics、技术Techniques和过程Procedures是描述高级威胁组织及其攻击的重要指标。
### 置信级别
* 比如需要制定新的安全策略或涉及安全架构的变动。
* 源可靠性描述的一个常见方法是《FM 2-22.3》美军人工情报收集操作手册中记录的“Admiralty Code”或“NATO System”。这里包括两个维度。首先根据先前的信息来评估源的可靠性范围从A可靠到E不可靠。第二个维度评估信息内容本身的可靠程度从1确认到5不可能
## 3 基于区块链的反Sybil网络威胁情报共享框架
### 场景描述
* 网络威胁情报CTI技术是一种基于证明的安全系统可通过分析和共享与安全相关的数据来主动响应这些高级网络威胁。
* 提出了一种基于区块链的CTI框架提高对数据源和内容的信心并可以快速检测和消除不准确的数据以抵御Sybil攻击。
* 技术背景5G、lot、数据分析技术
* 安全手段:防火墙、入侵检测/防御系统IDS/IPS、安全信息和事件管理SIEM系统

View File

@@ -0,0 +1,261 @@
# 文献整理——联邦学习
## 1 联邦学习——破解智能医疗数据安全隐私难题
### 问题提出(背景)
* 医学领域存在的不可能三角,数据共享与隐私保护冲突。单一组织缺乏足够可用样本用于人工智能算法的训练。
* 法律对隐私保护的据他障碍。
* HIPAA
* GDPR
* CCPA
* 中华人民共和国网络安全法等
* 国内外公司数据泄露事件频发,受到处罚。
### 智能医疗数据训练平台
![](img/智能医疗数据训练平台.jpg)
可以借鉴这个平台的架构
### 联邦学习优势
* 多方参与、多方获益
* 数据不动、保护隐私
* 性能无损
* 数据量充足
### 联邦学习的分类
* 横向联邦学习:横向联邦学习适用于联邦学习的参与方的数据有重叠的数据特征,即数据特征在参与方之间是对齐的,参与方数据样本不同。
![](img/横向联邦学习.jpg)
* 纵向联邦学习:纵向联邦学习 适用于联邦学习参与方的训练数据有重叠的数据样本,即参与方之间的数据样本对齐的,但数据特征上不同。
![](img/纵向联邦学习.jpg)
* 联邦迁移学习,通过联邦学习和迁移学习,解决两个数据集的用户 ( U1, U2, … ) 与用户特征重叠 ( X1, X2, … ) 部分都比较小的问题。
## 2 只看这一篇就够:快速了解联邦学习技术及应用实践
> 给出了联邦学习算法层面的研究,可以在日后详细了解一下。
### 问题提出(背景)
* AI落地存在的困哪
* 数据质量差
* 缺乏数据标签
* 数据分散隔离
* 国内数据监管法律体系不断完善
* 国家关于数据的法律条例是趋向于严格化的,同时趋向于全面化,每个细分领域都纷纷出台了相应的条例和条款。
* 基于联邦学习的技术生态
* 数据隔离,不泄露到外部。
* 参与者地位对等
* 无损,效率接近集中式机器学习
* 共同获益,参与者共同获益
### 相关技术
> 还需要深入探究机器学习部分的算法
* 联邦学习的应用场景
* 满足用户隐私保护、数据安全和政府法规的前提下,进行跨组织的数据合作。
* 同态加密技术
* 通过 RSA 和 Hash 的机制,保证双方最终只用到交集部分,且差集部分不向对方泄露。
* 采用同态加密技术,这个过程中,各方的原始数据,以及数据加密态都没有被传输。交互部分,双方通过损失中间结果,用同态加密的机制进行交互,
* 基于隐私保护的动态ID匹配技术
* 同态加密技术在机器学习上的应用。对 loss function 和梯度进行多项式展开,来满足加法操作。这样就可以把同态加密的技术应用在 loss function 和梯度中。
* 联邦特征工程
* SecureBoost
### 应用方案
* 保险个性化定价
* 小微企业信贷风险管理
* 联邦学习视觉应用
* 基于联邦学习的企业风控模型
* 互联网零售,联合客户价值建模
* 互联网监管,联合反洗钱建模
### 联邦学习开源平台Fate
* Fate的特点
* 支持多种主流算法:为机器学习、深度学习、迁移学习提供高性能联邦学习机制。
* 支持多种多方安全计算协议:同态加密、秘密共享、哈希散列等。
* 友好的跨域交互信息管理方案,解决了联邦学习信息安全审计难的问题。
* 面临的挑战
* 一站式建模过程的联邦化
* MPC 协议下分布式算法 ( on WAN ) 易理解和易维护
* 跨站点数据传输安全性和可管理性,如何让交互部分是可以被管理和被审计的。
* 异构基础架构自适应,联邦学习可能会运行在 CPU、GPU 和端上,如何让上层不受底层的变化而变化。
* FATE的架构
* EggRoll分布式计算和存储的抽象
* Federated Network跨域跨站点通信的抽象
* FATE FederatedML联邦学习算法模块包含了目前联邦学习所有的算法功能
* FATE-Flow | FATE-Board完成一站式联邦建模的管理和调度以及整个过程的可视化
* FATE-Serving联邦学习在线推理模块。
![](img/FATE架构.jpg)
* 建模流程
* 从联邦统计->联邦特征工程->联邦模型训练,当上线部署的时候会有联邦在线推理模块,底层则会采用多方安全计算协议去支持上层各种联邦算法。
![](img/FATE建模.jpg)
* 核心功能:
* 联邦在线模型服务FATE-servering
* 联邦建模pipeline和可视化Fate-flow和fate-board
* 联邦学习算法的功能组件fate-federalML
* 分布式计算和存储抽象egg-roll
* 跨站点网络通信抽象federal-network
egg-roll提供了底层的分布式的计算和存储算子。MPC-Protocol提供了网络通信的安全协议。Numerical-operator提供了数学算子。ML-operator提供了机器学习算子。Algorithm提供了机器学习算法。实现了从下到上的框架。用户可以重写扩展某一个层来实现自己的算法。
> 这里的egg-roll提供的是单个参与者本地的分布式计算方案。并不是通过网络连接的多个参与者的共同计算方案。
* 部署架构
* 每一方都是差不多的,是一个对称的结构,通过 EggRoll实现分布式计算和存储通过 Federation Service 和外部交互。
![](img/FATE部署架构.jpg)
### FATE 应用
![](img/FATE联合建模.jpg)
### FATE 开发流程
1. 选择一个机器学习算法,设计多方安全计算协议。
2. 定义多方交互的数据变量
3. 构建算法执行工作流
4. 基于Egg-roll API和Federal API实现算法工作流中的各个组件。
> 给出的联邦学习最为关联的学科:
> 三个方向进一步学习:机器学习及统计学知识,密码学及其他安全领域知识,分布式计算及大数据处理知识。
> 对于联邦学习的框架FATE为主如果看懂了机器学习也可以采用TesorflowFederal尝试一下。
## 3 联邦学习入门笔记
### 分类
* 横向联邦学习
* 纵向联邦学习
* 迁移联邦学习
### 典型过程
* 客户端选择。选择满足条件的客户端。
* 传播。下载模型权重和训练程序。
* 客户端计算。在本地计算对应的模型更新,完成本地训练。
* 聚合。服务器手机设备更新。包括多重技术应用:用于增强隐私的安全聚合技术、通信效率与数据压缩。
* 更新模型。在本地更新共享模型。
### 联邦学习的挑战
1. 非独立同分布的数据
2. 有限通信带宽
3. 不可靠和有限的设备
## 4 联邦学习的现状和开放性问题
> 本文明确的东西。联邦学习并不是一个技术,而是一组技术的合称,方便对一系列类似的目标进行定义。联邦学习面对很多挑战,也具有很多研究方向。
> * 定义(解决问题的手段)
> * 挑战(需要解决的问题)
> * 研究方向(需要处理的细节)
> * 相关领域(分布式优化,加密,安全性,差分隐私,公平性,压缩感知,系统,信息论,统计甚至更多)
### 定义和挑战
* 学习任务是通过由中央服务器协调的设备的松散联邦来解决的。
* 通信带宽有限
* 不平衡且非IID独立同分布的数据
* 分布式优化,加密,安全性,差分隐私,公平性,压缩感知,系统,信息论,统计甚至更多
### 分类
* cross-device着重于移动和边缘设备应用程序而引入联邦学习
* cross-silo只涉及少量相对可靠的客户端的应用程序例如多个组织合作训练一个模型。
### 定义
联邦学习是一种由多个实体(客户端)在中央服务器或服务提供商的协调下协作解决机器学习问题的机器学习设置。每个客户的原始数据都存储在本地,并且不会交换或转移;取而代之的是使用旨在及时信息聚合的局部更新来实现学习目标。
### 工具和框架
* TensorFlow Federated[38]Federated AI Technology Enabler[34]PySyft [342]Leaf [35]PaddleFL [36]和Clara Training Framework [33]
> 应该描述清楚涉及到的主要内容。
## 5 综述:《联邦学习:概念与应用》
### 概念
精度损失维持在一定范围内的分布式机器学习模型。给出了数学上的定义。
### 隐私
* 安全多方计算SMC零知识传递复杂的计算协议可以自行设计计算协议
* 差分隐私,对数据模糊化,但仍旧会传递数据。
* 同态加密,交换模型参数,保护用户数据。
* 参数交换同样会泄露重要的数据信息,通过模型参数,还原数据特征。可能会允许插入后门来对模型进行攻击,导致数据中毒。协作学习的不同方会受到推理攻击。
* 研究人员还开始考虑将区块链作为促进联邦学习的平台。 在[34]中研究人员考虑了区块链联邦学习BlockFL架构该架构通过利用区块链来交换和验证移动设备的本地学习模型更新。 他们考虑了最佳的块生成,网络可扩展性和健壮性问题。
### 分类
* 水平
* Step 1: 参与者在本地计算训练梯度,使用加密[51],差分隐私[58]或秘密共享[9]技术掩盖梯度的选择,并将掩蔽的结果发送到服务器;
* Step 2: 服务器执行安全聚合,而无需了解有关任何参与的信息;
* Step 3: 服务器将汇总结果发回给参与者;
* Step 4: 参与者使用解密的渐变更新各自的模型。
* 安全分析如果使用SMC [9]或同态加密[51]完成梯度聚合,则上述架构被证明可以保护数据免受半诚实服务器的泄漏。 但是它可能会受到恶意参与者在协作学习过程中训练生成对抗网络GAN的另一种安全模型的攻击[29]。
* 垂直
* 步骤1合作者C创建加密对将公钥发送给A和B;
* 步骤2A和B加密并交换中间结果以进行梯度和损耗计算
* 步骤3A和B分别计算加密的梯度并添加额外的掩码B也计算加密的损失 A和B向C发送加密后的值
* 步骤4C解密并将解密的梯度和损失发送回A和B A和B取消遮盖渐变相应地更新模型参数。
* 迁移
### 相关工作
* 隐私保护。
* 分布式机器学习
* 边缘计算
* 联合数据库
### 应用实例
* 智能零售
* 多方数据库查询——金融领域
* 智能医疗保健
### 数据联盟Data alliance allocate benefit on the blockchain
* 联邦学习更像是企业合作的商业模式。
* 联邦学习可以借助区块链技术的共识机制制定公平的利润分配规则。
## 6 联邦学习 Federated Learning
## 7 联邦学习:从分布式机器学习说起
### 定义
联邦学习Federated Learning实际上是一种加密的分布式机器学习技术参与各方可以在不披露底层数据和底层数据的加密混淆形态的前提下共建模型。它可以实现各个企业的自有数据不出本地而是通过加密机制下的参数交换方式即在不违反数据隐私法规的情况下建立一个虚拟的共有模型。在这样一个机制下参与各方的身份和地位相同成功实现了“共同富裕”的目标。
### 问题
* 个人隐私保护
* 打破数据孤岛
### 线性回归与分布式机器学习
* 线性回归函数
* 损失函数定义
* 同步梯度下降
* 异步梯度下降
### 分布式机器学习与联邦学习比较
* 通信代价远高于计算代价
* 数据是NO-IID
* 数据不均衡性

View File

@@ -0,0 +1,72 @@
# 文献阅读——联邦学习鲁棒性
> * 上一篇文献阅读主要解决了如何构建联邦学习模型
> * 这一篇文献阅读主要解决联邦学习模型中的问题。包括:
> * 模型的鲁棒性问题。(恶意攻击和破坏)
> * 非独立同分布数据提高准确性、有效性和训练速度
> * 数据的隐私保护和安全问题。(隐私保护)
> * 去中心化的联邦学习与模型共享。(在完全对称的联邦学习中的激励机制。)
> * 区块链联邦学习,通过区块链交换和验证设备。
## 1 模型攻击:鲁棒性联邦学习研究的最新进展
[参考文献](https://zhuanlan.zhihu.com/p/145657763)
### 问题提出
* 机器学习受到各种对抗攻击。包括数据和模型更新过程中的中毒、模型规避、模型窃取、对用户的私人训练数据进行数据推理攻击。
* 可以分为两大类
* 定向攻击对特定类型的样本准确性丢失。后门攻击Backdoor Attacks在主要任务中保持较好的性能在次要任务中表现较差的性能。
* 非定向攻击:破坏模型整体准确性
* 模型攻击:被攻击的客户端改变本地模型的更新,从而改变全局模型。
* 数据攻击:以改变所有训练样本中的一个子集,从而改变全局模型。
### 解决方案
* 安全聚合协议 (Secure AggregationSecAgg):确保服务器无法检查每个用户的更新。
## 2 How To Backdoor Federated Learning——机器之心
[参考文献](https://zhuanlan.zhihu.com/p/145657763)
### 联邦学习模型
$$
L^i-第i轮本地训练模型\\
G^i-第i轮联邦训练模型\\
l-损失函数 \\
epoch-训练集合\\
batch-数据集合\\
\eta-单次学习率\\
m-随机选择的参与者\\
$$
![](img/联邦学习伪代码.jpg)
![](img/联邦学习伪代码2.jpg)
### 联邦学习攻击概述
* 攻击者:控制了一个或者几个参与者,包括本地数据和本地训练过程。
* 攻击目标:攻击者希望通过联邦学习得到一个联合模型,该模型在其主任务和攻击者选择的后门子任务上都能实现高准确度,并且在攻击后的多轮攻击后,在后门子任务上保持高准确度。
* 语义后门:修改样本的数据特征。
* 基线攻击:在每个训练批次中尽量包括正确标记的输入和后门输入的混合,以帮助模型学习识别二者的差异。但中央服务器的聚合操作抵消了后门模型的大部分贡献,
* 模型替换攻击:对后门模型的权重进行放大,抵消原来的模型。
* 改善持久性并规避异常检查。
## 3 Can You Really Backdoor Federated Learning?
[参考文献](https://zhuanlan.zhihu.com/p/145657763)
----
## 4 Local Model Poisoning Attacks to Byzantine-Robust Federated Learning
[参考文献](https://zhuanlan.zhihu.com/p/145657763)
----
## 5 Federated Variance-Reduced Stochastic Gradient Descent with Robustness to Byzantine Attacks
[参考文献](https://zhuanlan.zhihu.com/p/145657763)
----
## 6 怎么通过梯度信息还原训练数据?
[参考文献](https://zhuanlan.zhihu.com/p/184981032)
# 文献阅读——联邦学习隐私安全性
# 文献阅读——联邦学习效率问题

View File

@@ -0,0 +1,7 @@
# 文献阅读——联邦学习相关论文
> 之前一直在读中文的博客,接下来,应该自己去下载一些相关的重要的论文,去阅读理解。这应该是在自己学习完成机器学习之后,准备开始实现联邦学习之前。

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB