首页 > 其他分享 >联邦学习简介

联邦学习简介

时间:2022-09-30 20:01:16浏览次数:80  
标签:简介 样本 worker 通信 学习 联邦 数据

1.概述

1.1 问题引出

在神经网络中,如果一个网络的训练数据越多,其训练效果往往会越好。但是由于用户数据不能够被随意的使用和转发,因此各个商业公司和研究机构的数据不能合并训练,因此,开发出联邦学习用于在不泄露用户数据的情况下,利用用户数据进行训练.

1.2 不同使用场景

  1. 各个worker的业务类型相似,数据特征重叠多,样本重叠少
    例如:不同地区的两家银行。多家银行就都可以上传自己的模型参数,然后对参数进行更新,完成模型效果的提升。这就是横向联邦学习,又被称之为特征对齐的联邦学习

  2. 各个worker的业务类型不相似,样本重叠多,特征重叠少
    例如:同一地区的银行和电商,就需要先将样本对其,其中由于不能直接进行信息匹配,可以借助加密算法,让参与者在不泄露信息的情况下,找出相同的样本后联合他们进行特征,构建一个大表,进行模型训练。这被称之为:纵向联邦学习,又被叫做样本对齐的联邦学习

  3. 如果样本重叠不多,特征重叠也不多,希望利用数据提升模型能力,就需要将参与者的模型和数据迁移到同一空间中运算,被称之为联邦迁移学习

1.3 联邦学习的概念

联邦学习是一种分布式机器学习,以并行计算为基础。
联邦学习的目标:解决数据的协作和隐私保护问题。
联邦学习的分布并不是独立同分布的,因为用户与用户之间存在差异性,数据量可能也不是一个数量级的。所以不符合独立同分布的概率分布。

1.4 联邦学习和传统的分布式学习的区别

(1)用户对自己的设备和数据有绝对的控制权,用户可以随时停止计算和参与通信。而在传统的分布式学习中worker node完全由server控制。
(2)参与联邦学习的设备往往是不稳定的,计算能力也不尽相同。
(3)联邦学习的通信代价大,通信量多。(所以我们要减少通信次数)
(4)参与联邦学习的数据并非独立同分布,不利于算法设计,因为每个用户的数据是不一样的。
(5)联邦学习的节点负载不平衡,每个用户的数据量不一样,不好分配权重,建模复杂。计算时间不一样。

2.算法

2.1 研究方向

  1. 降低通信次数:其核心要点就是,worker node多计算少通信。
    这里介绍一种新的算法和上述算法有些差别。叫做federated averaging algorithm(FedAvg)
    worker node的工作内容:

    接收服务器发来的参数;
    使用参数和局部数据计算梯度;
    本地更新参数;循环几次。
    向服务器发送新参数;
    

    server的工作内容:

    从每个工作节点接收新参数;
    计算W=SUM(p1,p2,p3,……。PM);
    参数=1/m(W) 可以做加权平均,也可以是直接平均;
    向每个工作节点发送参数;
    

    优点:可以在相同的通信次数下,FedAvg比原算法(Grad Desent)的收敛速度更快。
    缺点:让移动设备计算相同的数据量,FedAvg比原先的Grad Desent梯度下降慢,收敛更慢。

    总结:以牺牲worker node的计算量来换取通信量的减少。但是由于联邦学习的通信代价大而计算代价小,所以其有一定的作用。

维基百科介绍:

联邦学习是一种机器学习技术,
具体来说就是人们在多个拥有本地数据样本的分散式边缘设备或服务器上训练算法。

这种方法与传统的集中式机器学习技术有显著不同,
传统的集中式机器学习技术将所有的本地数据集上传到一个服务器上,
而更经典的分散式方法则通常假设本地数据样本都是相同分布的。

联合平均 (FedAvg) 是 FedSGD 的泛化,
允许本地节点对本地数据进行多次批量更新,并交换更新的权重而不是梯度。
此外,对来自相同初始化的调整权重进行平均并不一定会损害所得平均模型的性能。
尽管它很简单,但它在现实环境中缺乏理论保证。

传统的联邦学习是基于每个worker设备(节点)的梯度下降:
在每一轮中,每个worker通过其本地数据集在本地多次更新其梯度下降权重,
然后中央节点聚合器对权重进行平均所有工人,并再次分配给工人。
对多轮重复上述过程。这种方法的主要缺点是效率低。
众所周知,由于频繁的梯度传输导致的高通信开销会减慢 FL。
为了减轻通信开销,已经研究了两种主要技术:
(i)表征通信和计算之间权衡的权重的本地更新和
(ii)表征通信和精度之间权衡的梯度压缩。

借鉴 https://www.jianshu.com/p/5f3c35620bb7

标签:简介,样本,worker,通信,学习,联邦,数据
From: https://www.cnblogs.com/chengjunkai/p/16745963.html

相关文章

  • 2. Node.js简介
    1.前言JavaScript诞生于1995年,几乎是和互联网同时出现;Node.js诞生于2009年,比JavaScript晚了15年左右。在Node.js之前,JavaScript只能运行在浏览器中,作为网页......
  • 1. JavaScript--简介
    1.前言JavaScript(简称“JS”)是当前最流行、应用最广泛的客户端脚本语言,用来在网页中添加一些动态效果与交互功能,在Web开发领域有着举足轻重的地位。JavaScript与HTML......
  • Python学习路程——Day08
    Python学习路程——Day08目录Python学习路程——Day08字典相关操作1、类型转换2、字典取值3、修改值的数据与新增键值对4、删除数据5、统计字典中键值对的个数6、字典三剑......
  • 给CAD学习者的吐血建议
    对于工科生来说,CAD是必须掌握的一门技术,在大学期间学好CAD对于日后的工作非常有帮助。今天在网上偶然看到一篇文章,觉得挺有道理的,跟大家分享一下,希望对正在学习或者想要学习......
  • python学习之数据内置
    今日分享字典相关操作元组相关操作集合相关操作字符编码(理论)字典相关操作1.类型转换 dict() 字典的转换一般不使用关键字而是靠自己手动转2.必须要学的......
  • Python 空间分析简介
    Python空间分析简介ImageSource:关注涉及任何类型的特定地理区域或位置信息的数据称为“空间”数据(或“地理空间”数据)。地理空间数据有助于理解地理属性和任何其他......
  • 通过机器学习预测足球运动员的市场价值
    通过机器学习预测足球运动员的市场价值NeymarJr每年夏天,足球界都会广泛流传关于转会的猜测,但这些事情往往会拖延。为什么?通常的原因是双方无法就球员的转会费达成一致,......
  • drf学习笔记
    今日内容概要两个视图基类五个视图扩展类九个视图子类视图集今日内容详细两个视图基类补充:GenericAPIView:属性:1.queryset#要序列化的数据......
  • 【学习笔记】分页和排序
    分页和排序排序关键字:ORDERBY升序:ASC降序:DESC我们以学生成绩的升序降序为例,将学生排序语法:ORDERBY字段名DESC/ASCSELECTs.studentno,studentname,subjectna......
  • 学习笔记-SQL注入(SQLI-LABS第一关)
    初学者掌握手工注入的过程:(1)判断是否存在注入点//(URL,POST表单,HTTP头部字段......)(2)判断字段长度(字段数)//(有可能保存在后台数据库某一个表当中......