创新实训(一)开题

项目简介

背景:联邦学习

联邦机器学习(Federated machine learning/Federated Learning),又名联邦学习,联合学习,联盟学习。联邦机器学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。联邦学习作为分布式的机器学习范式,可以有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,能从技术上打破数据孤岛,实现AI协作。谷歌在2016年提出了针对手机终端的联邦学习,微众银行AI团队则从金融行业实践出发,关注跨机构跨组织的大数据合作场景,首次提出“联邦迁移学习”的解决方案,将迁移学习和联邦学习结合起来。据杨强教授在“联邦学习研讨会”上介绍,联邦迁移学习让联邦学习更加通用化,可以在不同数据结构、不同机构间发挥作用,没有领域和算法限制,同时具有模型质量无损、保护隐私、确保数据安全的优势。(来源于知乎)

通俗来说就是本地使用自己的数据集进行训练,然后上传集中聚合,再返回到本地,不断进行着上传与返回,得到一个优秀的模型。在这个过程中本地模型的训练只用到了自己的数据集,但是通过远端的聚合,会得到一个相当于使用了所有本地数据集训练的模型。这样在保护了本地数据集隐私的同时,会得到了表现良好的模型,一举两得。

异步分布式联邦学习

随着5G网络的广泛采用和硬件的快速发展,异构设备(包括边缘和物联网设备)获得了更高的通信和计算能力,以及更广泛的应用程序。与经典的ML方法相比,FL为边缘应用提供了各种优势:
(1)由于基于梯度的全局模型聚合,更高的本地数据隐私;
(2)网络传输延迟更低,因为训练数据不需要传输到云;
(3)由于从其他设备学习的特性,更高的模型质量。因此,FL能够在异构设备上对ML模型进行协同训练,这在许多研究论文中得到了证明。

同时将经典的FL应用于资源受限的设备时出现了以下缺点:
(1)异构设备的不可靠性。聚合服务器等待更新的本地梯度,这些梯度可能由于设备的异构性和不可靠性会出现脱线的情况,严重降低学习效率。
(2)效率低。设备资源和各个设备数据的差异。训练比较快的设备必须等待速度慢的设备上传本地更新的数据。
(3)资源利用率低下。由于不适当的worker选择策略,可能会导致一些工作能力比较强的worker未被选中。
(4)联邦学习中安全和隐私问题。安全则是由于训练节点上发起的毒害攻击引起的,隐私是由于局部梯度更新可能会出现梯度泄露的问题。
为了克服上述的一些挑战提出了异步联邦学习方法,中心服务器一旦收集到了很少的本地模型,就开始全局聚合。相较于传统的联邦学习,提高了聚合的效率,同时克服了单个设备故障会影响全局聚合的问题。

我们团队的项目工作

以往的联邦学习的成果展示,大多需要在运行结束之后去和之前的数据进行比较,做出分析,对此我们提出了联邦学习可视化适配计划,在原本联邦学习算法的基础上,以传统联邦学习的数据为驱动,加以数据可视化展示,同时将原本单个设备的运行模拟,通过分布式的方式和网络通讯的协助,放置到不同设备进行更为符合实际的运行。

项目结构

在项目蓝图确立之后,我们对于项目结构又进行了多次讨论,最终确定使用vue+django作为我们的主要开发结构,前端使用vue3.0的element-plus组件库进行界面设计,后端使用python的django库,便于直接嵌入人工智能的算法。分布式的体现主要是将模型的训练和模型的聚合放在不同的主机之间进行,不同主机之间通过python的网络编程建立连接。

本项目采用分布式开发框架,Server主要负责模型的聚合,Client主要是去模拟中小型企业的模型训练,通过Python的网络通讯建立链接;在Client中则采用了Vue+Django的前后端分离的开发模式。

项目配置

客户端前端Vue项目配置

1.确保你的电脑上安装了nodejs, 这个很简单,参考Nodejs安装教程_彭佼的博客-CSDN博客_nodejs安装 命令行里npm能用就好

2.Cd进入前端文件姐client_front

3.命令行输入npm install 自动安装需要的包

4.命令行输入npm run serve 启动前端项目。

前端需要的包在package.json里面是规定好的,所以无需担心版本统一。

客户端后端django+channels+pymysql

Channels安装:

Pip install channels

Django安装:

Pip3 install Django==3.2.10

Pymysql安装:

Pip install pymysql==1.0.2

服务器端聚合配置

torch版本
在 https://download.pytorch.org/whl/torch/ 网站通过 ctrl+f 搜索 torch-1.8.1+cpu-cp38-cp38-win_amd64.whl 进行下载对应版本。

个人分工

我在本项目中主要负责前端界面的实现。

统计用区划代码和城乡划分代码发布说明: 一、编制依据 2008年7月,国务院批复同意国家统计局与民政部、住建部、公安部、财政部、国土部、农业部共同制定的《关于统计上划分城乡的规定》(国函〔2008〕60号),自2008年8月1日实施,正式奠定了统计上划分城乡的理论依据和方法基础。随后,国家统计局印发《统计用区划代码和城乡划分代码编制规则》(国统字〔2009〕91号)。 二、区划范围 统计用区划代码和城乡划分代码的区划范围,是国家统计局开展统计调查的区划范围。未包括我国台湾省、香港特别行政区、澳门特别行政区。 三、发布内容 12位统计用区划代码和3位城乡分类代码。 四、适用领域 《国务院关于统计上划分城乡规定的批复》(国函〔2008〕60号)明确指出:“本规定作为统计上划分城乡的依据,不改变现有的行政区划、隶属关系、管理权限和机构编制,以及土地规划、城乡规划等有关规定”。各级各部门在使用统计用区划代码和城乡划分代码时,请务必结合实际情况。 五、几个具体问题的说明 (一)补充编制开发区统计汇总识别码情况。为满足统计调查工作组织和数据汇总的需要,国家统计局对一些符合条件的开发区编制了统计汇总识别码。统计汇总识别码在统计用区划代码的县级码段上编制,其码段为71~80。 (二)关于河北省沧州市任丘市的苟各庄镇、鄚州镇、七间房乡、保定市高阳县的龙化乡统计用区划代码临时调整情况的说明。按照河北省委、省政府关于对雄安新区周边部分区域实施托管的通知要求,沧州市任丘市的苟各庄镇、鄚州镇、七间房乡划归雄县实施统计上托管,保定市高阳县的龙化乡划归安新县实施统计上托管。为确保统计调查工作的顺利开展, 国家统计局对苟各庄镇、鄚州镇、七间房乡、龙化乡的统计用十二位区划代码进行了临时调整,具体调整为:鄚州镇代码由130982104000变更为130638106000;苟各庄镇代码由130982105000变更为130638107000;七间房乡代码由130982206000变更为130638205000;龙化乡代码由130628204000变更为130632203000。上述变更后的统计用区划代码为临时代码,待民政部门对雄安新区上述4个乡镇区划调整确认后,再将临时代码变更为正式统计用区划代码。 (三)关于黑龙江省大兴安岭地区县级单位统计用区划代码调整情况说明。民政部民函〔2018〕50号文件撤销黑龙江省大兴安岭地区漠河县(六位区划代码为232723),设立漠河市(六位区划代码为232701)。为执行国家标准,保证统计部门与民政部门名称相同的县级单位六位区划代码的一致性,国家统计局根据《统计用区划代码和城乡划分代码编制规则》(国统字〔2009〕91号),调整黑龙江省大兴安岭地区所辖的加格达奇区、松岭区、新林区和呼中区的六位统计用区划代码,具体调整为:加格达奇区代码由232701变更为232761;松岭区代码由232702变更为232762;新林区代码由232703变更为232763;呼中区代码由232704变更为232764。 (四)此版本区划代码与第四次全国经济普查区划代码的相关说明。此版本区划代码是调查截止日期为2018年10月31日的统计用区划代码。由于第四次全国经济普查清查工作于2018年8月开始,四经普的清查和登记工作中采用2018年6月15日的统计用区划代码。第四次全国经济普查数据处理使用2018年10月31日的统计用区划代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值