联邦学习实战——联邦学习医疗健康应用案例

  • 前言
  • 1. 医疗健康数据概述
  • 2. 联邦医疗大数据与脑卒中预测
    • 2.1 联邦数据预处理
    • 2.2 联邦学习脑卒中预测系统
  • 3. 联邦学习在医疗影像中的应用
    • 3.1 肺结节案例描述
    • 3.2 数据概述
    • 3.3 联邦学习的效果
  • 阅读总结

前言

FATE是微众银行开发的联邦学习平台,是全球首个工业级的联邦学习开源框架,在github上拥有近4000stars,可谓是相当有名气的,该平台为联邦学习提供了完整的生态和社区支持,为联邦学习初学者提供了很好的环境,否则利用python从零开发,那将会是一件非常痛苦的事情。本篇博客内容涉及《联邦学习实战》第十二章内容,使用的fate版本为1.6.0,fate的安装已经在这篇博客中介绍,有需要的朋友可以点击查阅。本章内容主要探讨联邦学习在医疗健康领域的应用。随着AI+医疗的深入,AI辅助技术可以为疾病提供更快速更准确的诊断和治疗。但是医疗领域也面临着数据隐私的困扰,联邦学习可以打破困境,提供一条解决方案。


1. 医疗健康数据概述

医疗健康数据一般是指收集分析得到的消费者的身体和临床数据。包括患者的电子病例、基因序列、医疗保险等数据,这些数据通常过于复杂(高度非结构化、异构、稀疏等特点),以至于使用传统的数据处理方法效果不佳。虽然医学影像研究人员已经通过收集生成了大型高质量数据集(UK Biobank),但是也仅有1400万个对象。
从数据安全角度出发,医疗数据有如下特点:

  • 隐私性。
  • 稀有性。
  • 安全性。
  • 复杂。
  • 不平衡。

综上,医疗领域的数据孤岛问题是一个很棘手但极具价值的问题。联邦学习可以很好解决上述问题,对于医院自身数据不足的情况,应用横向联邦学习,当没家医院有相同患者的不同检测数据时,适用纵向联邦学习。

2. 联邦医疗大数据与脑卒中预测

脑卒与很多因素有关,包括性别、年龄、种族、不良的生活习惯,本节介绍如何联合多家医院对用户的诊断数据信息,在不泄露用户隐私的前提下,提升脑卒发病预测模型的效果,做到早识别、早预防。

2.1 联邦数据预处理

与集中式训练不同,在联邦学习的场景下,如果没有统一的数据处理标准,将导致各自构建的特征数据无法使用。因此,联邦学习规定各医院的特征输入一致,构建同一套数据标准形成的疾病标签集与特征集,在此特征标准上构建同一套模型。该技术可以不泄露数据的情况下整合多家医院的数据联合进行训练,可应用到重大慢性病的发病预测中。
经过数据预处理和标准化处理的样本数据如图所示,包括对结构化、半结构化和非结构化数据的处理。

2.2 联邦学习脑卒中预测系统

整个系统主要由三大部件构成,分别是联邦服务端、联邦客户端、检测和可视化系统。

  • 客户端:客户端数据分别存储于各个医院私有的云服务器中,并进行本地训练。
  • 服务端:收集来自客户端的数据流,包括客户端ID,训练轮数,模型参数,本地性能等,服务端主要工作是管理数据,模型聚合,性能评估。
  • 检测与可视化系统:包括监测客户端状态,收集客户端信息,记录客户端性能以及服务器汇总性能。

由于医疗数据的隐私性,故书中无法提供真实数据,只有部分代码讲解,这里博主也只对代码设计流程进行简单介绍。

  • 客户端:每个参与方(即医院)利用自然语言处理,图像特征提取等人工智能技术清洗从医院收集得到的患者数据,并归一化形成结构化的医疗数据。这些数据均存储于每家医院的私有云中。将脑卒中问题转换为一个二分类问题,利用之前处理好的数据,预测患者患病概率。这里采用一个多层感知机作为预测模型。
class Net(nn.Module):def __init__(input_size, output_size):super(Net,self).__init__()self.fc1 = nn.Linear(input_size, 50)self.fc2 = nn.Linear(50, 10)self.fc3 = nn.Linear(10, output_size)nn.init.normal_(self.fc3.weight, mean=0, std=1)def forward(self, x):x = F.elu(self.fc1(x))x = F.elu(self.fc2(x))return F.log_softmax(self.fc3(x), dim=-1)
  • 服务端:服务端主要负责设备管理、模型聚合和性能评估等,服务端会先挑选客户端,并分别下发模型到各个模型进行本地训练。接着接收每个客户端上传模型进行聚合和模型评估,以确认进行迭代还是终止。
  • 检测与可视化系统:可视化小程序方便医生实时查看训练结果,包括患者性别比例、正负样本数量,还有一些患者的统计数据直方图。

3. 联邦学习在医疗影像中的应用

在医疗AI中,能给模型带来最有价值信息的通常是医学影像图片。目前,应用于临床的医学影像手段主要包括超声,X光,计算机断层扫描,核磁共振等。当前的医疗图像数据集通常只包括几百张相关数据,这些数据虽然可以通过数据增广等手段训练深度学习模型,但当其被用作真实医疗诊断时,可能会面临覆盖面不足等情况。

3.1 肺结节案例描述

肺结节是指肺内执行小于或者等于3cm的雷元星或者不规则形病灶,影像学表现为密度增高的阴影。不同密度肺结节,恶性概率不同,根据结节密度将肺结节分为三类:实性结节、部分实性结节和磨玻璃密度结节。
肺结节的发病原因也受到多种因素影响,有良性和恶性之分,恶性早期隐匿,如果不早期干预,其病程迅速、恶性度强、预后差,正确判断良恶性,有助于正确的治疗手段。

3.2 数据概述

本案例的目标是,通过给定用户的肺部CT数据集,识别用户患有恶性肺结节的概率。模型分为两个部分,分贝是肺结节检测模型和分类模型。

  • 肺结节检测模型:针对3D医疗图片的识别问题,设计了一个三维的卷积神经网络用于检测肺结节的位置。整个网络结构主要由卷积层、残差结构体和反卷积层组成,模型将输出候选肺结节区域图片。残差模块是由三个残差单元组成的堆叠结构,如下图所示:

  • 分类模型:获取到候选的肺结节区域后,下一步判断当前用户得肺结节是良性还是恶性。为此,先将每个用户的CT图片得到的排名最高的5个候选结节区域图片分别重新带入肺结节检测模型中,取最后一个卷积层的输出作为每个候选区域的特征表示,将其带入全连接层中,得到恶性肺结节的概率,如图所示:图中,第i个候选区对应的恶性肺结节概率为pip_ipi​,患有恶性肺结节的概率为:
    P=1−(1−Pd)∗∏i=15(1−Pi)P=1-(1-P_d)*\prod_{i=1}^{5}(1-P_i)P=1−(1−Pd​)∗i=1∏5​(1−Pi​)
    这里引入的参数PdP_dPd​称为假结节,目的是防止目标检测网络没能发现某些恶性结节而导致将一些良性特征归类为恶性肺结节的特征。

3.3 联邦学习的效果

由图看出,联邦学习的性能无论是损失曲线还是准确率,都远胜与任何一家医院数据单独做到的水平,相对于集中式的机器学习训练,联邦学习还是稍显不稳定,但最终仍能收敛得到非常接近的损失及准确率。

阅读总结

通过本章内容的学习,较为深入了解了联邦学习在医学领域的应用,虽然总体实现的过程和普通的横向联邦学习过程无意,但是对于医疗数据的预处理,尤其是半结构化和非结构化数据的处理,给了我很深刻的印象。虽然本章内容涉及隐私,代码和数据无法公开,但是为日后医学领域数据的脱敏联邦应用,还是提供了很好的范本。

【阅读笔记】联邦学习实战——联邦学习医疗健康应用案例相关推荐

  1. 【阅读笔记】联邦学习实战——联邦个性化推荐案例

    联邦学习实战--联邦个性化推荐案例 前言 1. 引言 2. 传统的集中式个性化推荐 2.1 矩阵分解 2.2 因子分解机 3. 联邦矩阵分解 3.1 算法详解 3.2 详细实现 4 联邦因子分解机 4 ...

  2. 【阅读笔记】联邦学习实战——联邦学习智能用工案例

    联邦学习实战--联邦学习智能用工案例 前言 1. 智能用工简介 2. 智能用工平台 2.1 智能用工的架构设计 2.2 智能用工的算法设计 3. 利用横向联邦提升智能用工模型 4. 设计联邦激励机制 ...

  3. 【阅读笔记】联邦学习实战——联邦学习攻防实战

    联邦学习实战--联邦学习攻防实战 前言 1. 后门攻击 1.1 问题定义 1.2 后门攻击策略 1.3 详细实现 2. 差分隐私 2.1 集中式差分隐私 2.2 联邦差分隐私 2.3 详细实现 3. ...

  4. 【阅读笔记】联邦学习实战——联邦学习在智能物联网中的应用案例

    联邦学习实战--联邦学习在智能物联网中的应用案例 前言 1. 案例背景与动机 2. 历史数据分析 3. 出行时间预测模型 3.1 问题定义 3.2 构造训练数据集 3.3 模型结构 4 联邦学习实现 ...

  5. 【阅读笔记】联邦学习实战——联邦学习平台介绍

    前言 FATE是微众银行开发的联邦学习平台,是全球首个工业级的联邦学习开源框架,在github上拥有近4000stars,可谓是相当有名气的,该平台为联邦学习提供了完整的生态和社区支持,为联邦学习初学 ...

  6. [强化学习导论阅读笔记-1]什么是强化学习

    平时学算法都是碎片化的学习,基本上都是看看博客,知乎和论文(博客和知乎看的最多),提升是有的,但是总觉得缺点什么,可能是缺少完整的知识体系.毕业本来想搞嵌入式的,因为会点AI小知识,分到了AI实验室. ...

  7. 四六级英语学习(一)医疗健康类

    suffer from 遭受 经历 high blood pressure=hypertension 高血压 take steps to =take measures to 采取措施 silent 沉 ...

  8. 阅读笔记3:基于深度学习的运动想象脑电信号分类算法研究

    1.论文信息 题目:基于深度学习的运动想象脑电信号分类算法研究 作者佟歌 单位:哈尔滨工程大学控制科学与工程 发表时间:201803 2.笔记 2.1 脑电信号采集及预处理 2.1.1脑电信号分析方法 ...

  9. 强化学习论文阅读笔记(一)——强化学习研究综述_高阳

    强化学习研究综述_高阳 目录 强化学习研究综述_高阳 一.与其他机器学习对比 二.分类 三.最优搜索型强化学习算法 四.经验强化型强化学习算法 五.部分感知 六.函数估计 七.多Agent强化学习 八 ...

最新文章

  1. 抽样方法,采样方法 shuffle
  2. 关于华为虚拟操作键收起后页面高度不会刷新问题的总结
  3. 都在说微服务,那么微服务的反模式和陷阱是什么(二)
  4. CentOS搭建FTP
  5. linux安装包安装mysql5.7
  6. Eviews学习笔记
  7. 11月22日北京.net俱乐部活动ppt下载以及11月19日微软西格玛IE8开发讲座ppt下载
  8. Multi-commodity Flow Problem
  9. linux 查杀php木马,linux上php木马、后门查杀总结
  10. gem5的安装、编译及运行
  11. 拼多多开卖劳斯莱斯,直降122万,10万人表示想拼!
  12. GTK+ 3.5.18 发布,GUI 开发工具包
  13. Apache日志配置详解(rotatelogs LogFormat)
  14. 程序员面试揭秘之求职渠道
  15. 2022-2028年中国商用车产业园区行业市场竞争态势及未来前景分析报告
  16. siebel基础配置
  17. 程序化交易中的数据周期,数据窗口和间隔
  18. java程序设计--孙鑫java无难事Lesson3《包、类和方法说明符、垃圾回收、接口》
  19. 有趣的HTML实例(十五) 注册登录界面(css+js)
  20. 为什么需要云计算机,为什么需要云计算?

热门文章

  1. AHP-层次分析法(C++源码,附详细注释和样例)
  2. 使用opencv给视频添加水印
  3. 无线电罗盘matlab,基于FPGA的无线电罗盘的方位角解调
  4. 国产等离子体仿真软件EasyPSim-PIC3D
  5. 智能电网易遭受网络攻击的症结在哪里?
  6. java线程通信总结
  7. 问道手游加点模拟器 一个可用的在线版问道加点模拟器
  8. 昨天换了一台新Mac,折腾了一天,记录一下...
  9. HDUOJ 2389 Rain on your Parade
  10. 小米网络音响使用体验