1.本发明属于医学图像处理领域,具体涉及基于联邦知识蒸馏的医学图像处理模型构建及其处理方法。
背景技术:2.随着医学成像技术及深度学习技术的逐渐发展和完善,基于深度神经网络的医学图像处理已经成为医学研究和临床诊断中一个重要的技术。近几年来,联邦学习(federated learning,fl)的提出被医学图像处理领域的研究者们所关注,它能在隐私安全的前提下实现对分散的医学图像数据的聚合学习,充分参考各类病患数据。在医学研究中,研究者在对某类内部组织器官进行定量分析、实时监控或治疗规划时,为了给出尽可能正确的治疗方案的决策,通常需要根据医学技术的成像了解这类组织器官的具体信息。因此,生物医学影像在治疗中充当着极其重要的角色,各类不同病患所生成的医学影像也在逐渐累积。然而,由于医院等机构的分散特性以及医学图像的特殊性,这些医学图像数据的分布极为分散,且有严格的隐私规定,将它们直接集中用于神经网络的训练是极为困难的。若分散训练,则又会面临数据量及标签不足等问题。所以,研究如何在隐私安全的保证下利用分散的数据对用于医学图像处理的神经网络进行训练,具有极高的价值和重要的意义。
3.联邦学习(federated learning,fl)是一种分布式训练模式,它允许设备在不与其它设备或中心节点交换本地隐私数据的前提下参与深度神经网络模型的共同训练。在传统分布式学习中,用于网络训练的数据通常需要参与传输,送至中心节点或云数据节点。但是,这样的流程将导致数据泄露,在如医学图像处理这类高隐私要求的领域中难以应用。联邦学习则基于无数据参与的通信以及加密传输,为此提供了一种隐私泄露问题的解决方案。
4.脉冲神经网络(spiking neural network,snn)是区别于传统人工神经网络的新一代神经网络模型。它通过模拟生物神经元的电位变化和神经脉冲,用离散的二进制序列取代传统人工神经网络中的实数输出,达到降低训练功耗的目的。泄露-放电模型(leaky-integrate-and-fire,lif)是一种经典的脉冲神经元模型,被广泛的引用于snn的研究中。研究人员提出了lif模型的一个在计算设备上可实现的显式、离散的数学公式,即:
[0005][0006]
近似梯度函数。在脉冲神经网络中,由于描述脉冲发生的单位阶跃函数在零点的导数趋于无穷大,决定了它无法如传统神经网络一样直接进行梯度下降,这就需要寻找一个近似函数以取代之。一些脉冲神经网络的训练方案中采用矩形函数(rectangular function)充当这一角色。矩形函数数学定义为:
[0007]
[0008]
其中a为矩形形状参数,sign为真值函数,v
th
为放电阈值。
[0009]
基于脉冲神经网络的联邦学习框架(federated learning on spiking neural network,flsnn)是一种应用于脉冲神经网络的分布式训练模式,它允许设备在不与其它设备或中心节点交换本地隐私数据的前提下参与snn模型的共同训练。如何利用分散的隐私数据对深度神经网络进行低功耗训练,是脉冲神经网络联邦学习所要解决的问题。
[0010]
知识蒸馏(knowledge distillation,kd)是一种网络知识提取的方案,它能将一个训练完成的规模较大的神经网络的知识转移到规模较小的网络,使得小网络表现出与大网络十分接近的效果。在知识蒸馏中,获得知识的网络称为学生网络(student network),转移知识的网络称为教师网络(teacher network)。知识蒸馏反映了网络的知识不仅存在于参数中,也可以经由输出所体现。根据用于蒸馏的知识来源,知识蒸馏可以分为三类:
[0011]
基于响应的蒸馏
[0012]
基于特征的蒸馏
[0013]
基于关系的蒸馏
[0014]
传统人工神经网络的研究者提出了基于输出通信的联邦蒸馏(federated distillation,fd)框架,对联邦学习的通信消耗进行了优化。
[0015]
蒸馏损失函数。在知识蒸馏中,教师网络与学生网络通过特定形式的知识传递信息,协助训练。在训练过程中,知识的匹配由损失函数所体现,因此,选择和定义适当的损失函数对蒸馏的效果起着决定性作用。一般地,蒸馏损失函数被定义为以下形式:
[0016]
l=l
hard
+λl
soft
[0017]
其中,l表示网络的最终损失,l
hard
为硬标签损失,由学生网络输出值与训练数据集的原始标签所决定;l
soft
表示软标签损失,由学生网络的知识形式与教师网络的知识所决定,通常使用交叉熵(cross-entropy)损失函数。λ是权重参数,协调教师网络参与训练的比重。在知识蒸馏的方案设计中,定义软标签损失函数通常是一个核心问题。
[0018]
电子计算机断层扫描(computed tomography,ct)是利用精确准直的x线束、γ射线、超声波等,与灵敏度极高的探测器一同围绕人体的某一部位作一个接一个的断面扫描技术,具有扫描时间快,图像清晰等特点,可用于多种疾病的检查。ct用x射线束等对人体某部一定厚度的层面进行扫描,由探测器接收透过该层面的x射线,转变为可见光后,由光电转换变为电信号,再经模拟/数字转换器转为数字,输入计算机处理。
技术实现要素:[0019]
为解决现有中电子计算机断层扫描图像数据分散且高隐私要求的难题以及联邦蒸馏中因蒸馏的损耗导致模型可信度降低的问题,本发明提供一种基于联邦知识蒸馏的医学图像处理模型构建方法及其图像处理方法,旨在解决电子计算机断层扫描医学图像识别技术中成本及效果的匹配问题。
[0020]
本发明解决上述技术问题,采用的技术方案是:基于联邦知识蒸馏的医学图像处理模型构建方法,包括以下步骤:
[0021]
步骤1、采集训练数据,构建训练集,包括:基于对开放的医学影像数据进行预处理及整理,所得到的蒸馏所需的公共数据集;以及,基于对每一个参与训练医疗机构的隐私ct图像数据,根据公共数据集进行协调预处理,所得到该医疗机构的私有数据集;所述私有数
据集与参与训练医疗机构一一对应,且私有数据集间相互独立;
[0022]
步骤2、分别构建子节点及中心节点的脉冲神经网络,其中,所述子节点与私有数据集一一对应;
[0023]
步骤3、利用各私有数据集对与其对应的子节点脉冲神经网络进行训练,利用训练后获得的各子节点脉冲神经网络,基于公共数据集的前向传播,得到与该子节点对应的第一脉冲张量,并上传至中心节点;
[0024]
步骤4、中心节点根据接收到的各子节点的第一脉冲张量,基于公共数据集进行蒸馏训练,得到各子节点对应的蒸馏产物;
[0025]
步骤5、对所有蒸馏产物进行聚合得到全局参数,利用全局参数对中心节点脉冲神经网络进行更新,并利用更新后的中心节点脉冲神经网络,基于公共数据集的前向传播,得到第二脉冲张量,并将其分发至所有子节点;
[0026]
步骤6、各子节点接收第二脉冲张量,并基于公共数据集进行蒸馏训练,更新其脉冲神经网络参数;
[0027]
步骤7、判定是否达到循环训练预设轮数或模型达到预设值,若是,则停止训练,此时训练好的中心节点的脉冲神经网络即为基于联邦知识蒸馏的医学图像处理模型;否则,返回步骤3。
[0028]
进一步的,所述步骤3中,利用各私有数据集对与其对应的子节点脉冲神经网络进行训练,包括以下步骤:子节点脉冲神经网络,基于其对应私有数据集,前向计算硬标签损失函数l
hard
以及梯度,并利用反向传播算法对脉冲神经网络训练预设轮数,更新参数;
[0029]
其中,硬标签损失函数如下:
[0030][0031]
其中,l
hard
为硬标签损失函数,v表示基于输出脉冲计算的频率向量,表示真实标签向量,其计算方式为:
[0032][0033]
其中,tar表示真实标签的类别,onehot表示独热编码,其编码方式为:
[0034][0035]
其中,i表示标签向量的元素下标。
[0036]
进一步的,所述步骤3中,将第一脉冲张量经二进制压缩后上传至中心节点;所述步骤4中,中心节点接收子节点压缩张量后,经解压后获得第一脉冲张量。
[0037]
具体的,所述将第一脉冲张量进行二进制压缩,包括以下步骤:
[0038]
步骤31:将存储压缩结果的张量sc进行归零初始化;
[0039]
步骤32:依照时间窗口顺序,对sc的每个元素值sc执行如下计算:
[0040][0041]
其中,s
t
为待压缩脉冲张量中对应位置元素的t时间窗口脉冲值;sc为sc中的元素值,该变量以t迭代计算;为计算后的sc的元素值;
[0042]
步骤33:所有计算执行完毕后,二进制压缩完成;
[0043]
所述步骤4中,将压缩张量经解压后获得第一脉冲张量,包括以下步骤:
[0044]
步骤41:将存储解压缩结果的解压缩张量归零初始化;
[0045]
步骤42:对压缩张量中每个元素值执行还原操作,得到一个有序脉冲序列,所得结果倒序存储于解压缩张量对应位置中;
[0046]
步骤43:所有计算执行完毕后,解压缩张量即为第一脉冲张量。
[0047]
进一步的,所述步骤4中,中心节点根据接收到的各子节点的第一脉冲张量,基于公共数据集进行蒸馏训练,得到各子节点对应的蒸馏产物,包括以下步骤:
[0048]
定义蒸馏损失函数,并利用反向传播算法对脉冲神经网络训练预设轮数时,停止训练;其中,蒸馏损失函数为:
[0049]
l
soft
=l
t
+λlf[0050]
其中,l
soft
为蒸馏损失函数,l
t
为对脉冲的类均方差损失,lf为用于松弛的类交叉熵损失,λ表示松弛变量,为预设参数;
[0051]
其中,对脉冲的类均方差损失:
[0052][0053]
用于松弛的类交叉熵损失:
[0054][0055]
其中,|c|是训练数据的类别数,t是脉冲神经网络时间窗口的大小;s
ct
和分别是一批次预测脉冲矩阵和目标脉冲矩阵中元素的值;pc和分别表示预测频率向量和目标频率向量,并通过脉冲矩阵计算,计算方式为:
[0056][0057]
进一步的,所述步骤5中,对所有蒸馏产物进行聚合得到全局参数,包括:
[0058]
所述中心节点预留聚合网络缓冲区,并按如下步骤进行聚合:
[0059]
步骤51、将当前中心节点脉冲神经网络生成副本,并置于中心节点的聚合缓冲区中;选择任一待聚合的第一脉冲张量,基于公共数据集对副本进行蒸馏训练并更新,获得第一网络参数;
[0060]
步骤52、判定所有子节点是否已经聚合完成,若是,则将第一网络参数作为全局参数;否则,进入步骤53;
[0061]
步骤53、基于第一网络参数更新中心节点脉冲神经网络副本,并作为第一副本,在聚合缓冲区中复制第一副本生成其拷贝副本;
[0062]
步骤54、选择任一待聚合的第一脉冲张量,基于公共数据集对拷贝副本进行蒸馏训练并更新,获得第二副本及第二网络参数;
[0063]
步骤55、随机选择公共数据集中的一部分有标签数据,生成临时测试数据集;
[0064]
步骤56、基于临时测试数据集,分别对第一副本与第二副本进行测试,得到二者的测试准确率,并基于二者的测试准确率生成聚合权值,然后利用聚合权值计算更新第一网络参数;
[0065]
步骤57、返回步骤52。
[0066]
进一步的,所述步骤56中,基于二者的测试准确率生成聚合权值,然后利用聚合权值计算更新第一网络参数,包括:
[0067]
步骤561、基于测试准确率a和a
′
生成聚合权值:
[0068][0069]
其中,(α,α
′
)为聚合权值,δ为预设的保持因子,τ为预设的差异因子,softmax表示归一化指数函数;
[0070]
步骤562、利用聚合权值计算更新第一网络参数:
[0071][0072]
其中,为新的第一网络参数;w为与第一副本对应的第一网络参数;
[0073]w′
为与第二副本对应的第二网络参数。
[0074]
本发明还提供一种基于联邦知识蒸馏的医学图像处理方法,依据上述任意一项所述的基于联邦知识蒸馏的医学图像处理模型构建方法构建基于联邦知识蒸馏的医学图像处理模型,利用上述模型对待处理的医学图像进行图像处理。
[0075]
本发明的有益效果在于,本发明设计了新的联邦聚合方案,其中脉冲神经网络联邦蒸馏中的中心节点需要对子节点上传的信息加以整合,以对特征和输出进行恰当聚合,解决了因蒸馏的损耗导致模型可信度降低的问题。设立了蒸馏损失函数,中心节点及子节点均可利用对方的脉冲神经网络的输出对自身进行模型训练,这样可以针对性的提取输出中包含的信息。本发明在对脉冲神经网络进行训练时利用反向传播算法,能够在训练中更新神经网络参数,提升脉冲神经网络网络模型的分类准确率和训练速度。同时,在对双方输出进行利用时,本发明对脉冲神经网络脉冲输出张量进行无损压缩,降低联邦通信开销,调整了模型准确率及通信成本之间的需求比重。
附图说明
[0076]
图1为本发明实施例1中的模型构建流程图。
[0077]
图2为本发明实施例1中使用反向传播算法训练脉冲神经网络的流程图。
具体实施方式
[0078]
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。为了本技术领域的人员更好的理解本发明,下面结合附图和以下实施例对本发明作进一步详细描述。
[0079]
实施例1
[0080]
本例提供一种基于联邦知识蒸馏的医学图像处理模型构建方法,如图1所示,包括以下步骤:
[0081]
s101采集训练数据,构建训练集。
[0082]
本例中,训练数据包括两种训练集。第一种是基于对开放的医学影像数据进行预处理及整理,包括对图像进行翻转、裁剪、平移、归一化等,并确定图像的规格,最终得到蒸
馏所需的公共数据集。另外一种则是,对每一个参与训练医疗机构的隐私ct图像数据,根据公共数据集做协调预处理,得到该医疗机构的私有数据集。所述协调预处理,也即根据公共数据集的规格、通道数等格式,将医疗机构的图像数据进行相应调整。
[0083]
针对每一个参与训练的医疗机构设置其对应的私有数据集,私有数据集间相互独立,私有数据集之间不进行相互传播,保证了隐私需要。
[0084]
s102分别构建子节点及中心节点的脉冲神经网络,可以使用经典深度神经网络模型vggnet;所述中心节点预留聚合网络缓冲区;每一个参与训练的医疗机构对应一个子节点并与私有数据集一一对应。
[0085]
本例设计的联邦聚合方案,针对每一个参与训练的医疗机构设置子节点,让每一个医疗机构拥有独立的脉冲神经网络进行独立训练,其中脉冲神经网络联邦蒸馏中的中心节点只需要对子节点上传的信息加以整合,无需参与子节点持有的私有数据集的训练,均保证了高隐私的需求。
[0086]
构建子节点及中心节点的脉冲神经网络包括对网络各层的参数进行初始化,并设置训练超参数,具体如下:
[0087]
定义脉冲神经网络结构:包括总层数、卷积层以及全连接层;定义卷积层每一层的参数,使用的激活函数以及是否有池化层等;定义全连接层的参数,以及是否使用dropout层等;
[0088]
定义脉冲神经网络超参数:包括网络放电阈值v
th
以及时间窗口长度t等;
[0089]
定义联邦学习超参数,包括全局总轮数epochg以及局部训练轮数epoch
l
;
[0090]
定义训练超参数,包括学习率、batch size以及优化器等。
[0091]
本发明的方案不依赖于具体的脉冲神经网络模型,此处网络结构可以嵌入常见的脉冲神经网络模型,例如:网络结构可以采用传统人工神经网络中的vgg网络设置,并加入lif节点构成脉冲神经网络;放电阈值取v
th
=0.1,窗口取t=8;全局总轮数及局部轮数分别设置为epochg=50以及epoch
l
=8;选择交叉熵为训练损失函数,adam为优化算法,并设置超参数:学习率为0.001,batch size为64。
[0092]
s103利用各私有数据集对与其对应的子节点脉冲神经网络进行训练,利用训练后获得的各子节点脉冲神经网络,基于公共数据集的前向传播,得到与该子节点对应的第一脉冲张量,对第一脉冲张量进行二进制压缩上传至中心节点。所述第一脉冲张量,也即利用训练后获得的子节点脉冲神经网络,基于公共数据集的前向传播,得到的输出。
[0093]
其中,利用各私有数据集对与其对应的子节点脉冲神经网络进行训练,包括以下步骤:子节点脉冲神经网络,基于其对应私有数据集,前向计算硬标签损失函数l
hard
以及梯度,并利用反向传播算法对脉冲神经网络训练预设轮数epoch
l
,更新参数。
[0094]
其中,硬标签损失函数如下:
[0095][0096]
其中,l
hard
为硬标签损失函数,v表示基于输出脉冲计算的频率向量,表示真实标签向量,其计算方式为:
[0097][0098]
其中,tar为真实标签的类别,onehot表示独热编码,也即:
[0099][0100]
其中,i为标签向量的元素下标。
[0101]
对第一脉冲张量进行二进制压缩,其方法包括以下步骤:
[0102]
步骤1:将存储压缩结果的张量sc归零初始化;
[0103]
步骤2:依照时间窗口顺序,对sc执行操作:其中s
t
为待压缩脉冲张量中对应位置元素的t时间窗口脉冲值,sc为sc中的元素变量,该变量以t迭代计算的每个元素值;为计算后的sc中的元素变量;
[0104]
步骤3:所有计算执行完毕后,sc即为所需的二进制压缩张量。
[0105]
本例对脉冲神经网络脉冲输出张量的无损压缩算法。该算法对脉冲无损的压缩,降低联邦通信开销。
[0106]
而针对上述压缩算法的解压缩方法如下:
[0107]
步骤1:将存储解压缩结果的解压缩张量归零初始化;
[0108]
步骤2:对压缩张量中每个元素值执行还原操作,得到一个有序脉冲序列,所得结果倒序存储于解压缩张量对应位置中;
[0109]
步骤3:所有计算执行完毕后,解压缩张量即为第一脉冲张量。
[0110]
其中,元素还原操作,具体方法如下:
[0111]
将元素值复制至缓冲变量sr中,并初始化脉冲序列数组[si],i=1,2,
…
,t;
[0112]
初始化i=1,循环计算:si=sr mod 2,sr=sr div 2,i=i+1,其中mod表示取余运算,div表示整除运算;循环直至i=t+1;
[0113]
计算完毕后,序列数组[si]即为所需的脉冲序列。
[0114]
s104中心节点根据接收到的压缩张量,解压后获得各子节点的第一脉冲张量,根据第一脉冲张量并基于公共数据集进行蒸馏训练,得到各子节点对应的蒸馏产物。
[0115]
也即,中心节点接收所有子节点输出的第一脉冲张量,在公共数据集上有序前向计算软标签损失函数l
soft
以及梯度,并利用反向传播算法对中心节点脉冲神经网络训练预设的训练轮数epoch
l
,得到每个子节点对应的蒸馏产物。
[0116]
具体的,包括以下步骤:
[0117]
首先,定义蒸馏损失函数,也即软标签损失函数l
soft
为:
[0118]
l
soft
=l
t
+λlf[0119]
其中,l
soft
为蒸馏损失函数,l
t
为对脉冲的类均方差损失,lf为用于松弛的类交叉熵损失;λ表示松弛变量,为预设参数,通常可取0.1~10,取值越低则输出脉冲张量与目标脉冲张量贴合的严格程度越高,但可能产生过拟合问题。
[0120]
其中,对脉冲的类均方差损失:
[0121][0122]
用于松弛的类交叉熵损失:
[0123][0124]
其中,|c|是训练数据的类别数,t是脉冲神经网络时间窗口的大小;s
ct
和分别是一批次预测脉冲矩阵和目标脉冲矩阵中元素的值。pc和分别是预测频率向量及目标频率向量,并通过脉冲矩阵计算,计算方式为:
[0125][0126]
基于上述定义的损失函数,利用反向传播算法对中心节点脉冲神经网络进行迭代训练,达到超参数中局部训练轮数epoch
l
时,停止训练。
[0127]
在上述步骤s103和s104中,针对子节点和中心节点脉冲神经网络的反向传播算法训练神经网络的方法流程,参考图2所示,其方法流程包含以下步骤:
[0128]
s201将当前训练轮数变量置为0;
[0129]
s202在数据集中选取一部分(batch)训练数据作为本轮训练数据;
[0130]
s203通过前向传播获取输出的预测值;
[0131]
s204计算损失函数值;
[0132]
s205通过反向传播算法执行优化,更新神经网络的各项参数;
[0133]
s206训练轮数变量加1;
[0134]
s207判断是否达到预设的局部训练轮次,若达到则跳转至s208,未达到则跳转至s202;
[0135]
s208结束训练。
[0136]
基于上述bp反向传播算法,能够在训练中更新神经网络参数,提升脉冲神经网络网络模型的分类准确率和训练速度。
[0137]
然后,对所有子节点的蒸馏产物进行聚合得到全局参数,具体如下:
[0138]
s301将中心节点预留的聚合网络缓冲区,分为第一聚合缓冲区以及第二聚合缓冲区;
[0139]
s302将当前中心节点脉冲神经网络生成副本,置于第一聚合缓冲区中;
[0140]
s303选择任一待聚合的第一脉冲张量,利用其代入l
soft
在公共数据集上对该副本进行蒸馏训练,更新该副本的网络参数,作为第一网络参数;
[0141]
s303判定所有子节点是否已经聚合完成,若是,则将第一网络参数作为全局参数;否则,进入步骤s304;
[0142]
s304基于第一网络参数更新置于第一聚合缓冲区中的中心节点脉冲神经网络副本,并作为第一副本;复制第一副本生成其拷贝副本,置于第二聚合缓冲区中;
[0143]
s305选择任一待聚合的第一脉冲张量,基于公共数据集对拷贝副本进行蒸馏训练并更新,获得第二副本及第二网络参数;
[0144]
s306随机选择公共数据集中的一部分有标签数据,生成临时测试数据集;
[0145]
s307基于临时测试数据集,分别对第一副本与第二副本进行测试,得到二者的测试准确率a和a
′
,并基于二者的测试准确率生成聚合权值,然后利用聚合权值计算更新第一网络参数;
[0146]
s308返回步骤s303。
[0147]
基于测试准确率a和a
′
生成聚合权值的方法如下:
[0148][0149]
其中,(α,α
′
)为聚合权值,δ为预设的保持因子,通常取δ》0.5;τ为预设差异因子;softmax表示softmax函数,用于权值的归一化;
[0150]
利用聚合权值计算新的网络参数,计算如下:
[0151][0152]
其中,为新的网络参数;w为与第一副本对应的第一网络参数;w
′
为与第二副本对应的第二网络参数。
[0153]
最后,利用全局参数对中心节点脉冲神经网络进行更新后,在公共数据集上前向传播,得到的第二脉冲张量并将其分发至所有子节点;子节点接收第二脉冲张量用以在公共数据集上进行蒸馏训练,同步更新子节点脉冲神经网络参数,作为训练好的子节点脉冲神经网络进入步骤s103进行循环训练;直至循环训练全局总轮数epochg后或模型达到预设值后停止训练;此时中心节点的脉冲神经网络即为基于联邦知识蒸馏的医学图像处理模型。
[0154]
实施例2
[0155]
本例提出一种具体涉及基于联邦知识蒸馏的医学图像处理方法,包括构建实施例1中的基于联邦知识蒸馏的医学图像处理模型,将其应用于医学图像处理。
[0156]
根据上面的流程,算法结束后,经对比对医学图像分类识别准确率较机构独立训练提高约5%,同时在联邦学习上的通信代价降低了90%,这是一个较大的优化。
技术特征:1.基于联邦知识蒸馏的医学图像处理模型构建方法,其特征在于,包括以下步骤:步骤1、采集训练数据,构建训练集,包括:基于对开放的医学影像数据进行预处理及整理,所得到的蒸馏所需的公共数据集;以及,基于对每一个参与训练医疗机构的隐私ct图像数据,根据公共数据集进行协调预处理,所得到该医疗机构的私有数据集;所述私有数据集与参与训练医疗机构一一对应,且私有数据集间相互独立;步骤2、分别构建子节点及中心节点的脉冲神经网络,其中,所述子节点与私有数据集一一对应;步骤3、利用各私有数据集对与其对应的子节点脉冲神经网络进行训练,利用训练后获得的各子节点脉冲神经网络,基于公共数据集的前向传播,得到与该子节点对应的第一脉冲张量,并上传至中心节点;步骤4、中心节点根据接收到的各子节点的第一脉冲张量,基于公共数据集进行蒸馏训练,得到各子节点对应的蒸馏产物;步骤5、对所有蒸馏产物进行聚合得到全局参数,利用全局参数对中心节点脉冲神经网络进行更新,并利用更新后的中心节点脉冲神经网络,基于公共数据集的前向传播,得到第二脉冲张量,并将其分发至所有子节点;步骤6、各子节点接收第二脉冲张量,并基于公共数据集进行蒸馏训练,更新其脉冲神经网络参数;步骤7、判定是否达到循环训练预设轮数或模型达到预设值,若是,则停止训练,此时训练好的中心节点的脉冲神经网络即为基于联邦知识蒸馏的医学图像处理模型;否则,返回步骤3。2.根据权利要求1所述的基于联邦知识蒸馏的医学图像处理模型构建方法,其特征在于,所述步骤3中,利用各私有数据集对与其对应的子节点脉冲神经网络进行训练,包括以下步骤:子节点脉冲神经网络,基于其对应私有数据集,前向计算硬标签损失函数l
hard
以及梯度,并利用反向传播算法对脉冲神经网络训练预设轮数,更新参数;其中,硬标签损失函数如下:其中,l
hard
为硬标签损失函数,v表示基于输出脉冲计算的频率向量,表示真实标签向量,其计算方式为:其中,tar表示真实标签的类别,onehot表示独热编码,其编码方式为:其中,i表示标签向量的元素下标。3.根据权利要求1所述的基于联邦知识蒸馏的医学图像处理模型构建方法,其特征在于,所述步骤3中,将第一脉冲张量经二进制压缩后上传至中心节点;所述步骤4中,中心节点接收子节点压缩张量后,经解压后获得第一脉冲张量。4.根据权利要求3所述的基于联邦知识蒸馏的医学图像处理模型构建方法,其特征在于,所述将第一脉冲张量进行二进制压缩,包括以下步骤:
步骤31:将存储压缩结果的张量sc进行归零初始化;步骤32:依照时间窗口顺序,对sc的每个元素值sc执行如下计算:其中,s
t
为待压缩脉冲张量中对应位置元素的t时间窗口脉冲值;sc为sc中的元素值,该变量以t迭代计算;为计算后的sc的元素值;步骤33:所有计算执行完毕后,二进制压缩完成;所述步骤4中,将压缩张量经解压后获得第一脉冲张量,包括以下步骤:步骤41:将存储解压缩结果的解压缩张量归零初始化;步骤42:对压缩张量中每个元素值执行还原操作,得到一个有序脉冲序列,所得结果倒序存储于解压缩张量对应位置中;步骤43:所有计算执行完毕后,解压缩张量即为第一脉冲张量。5.根据权利要求1、3或4所述的任一项基于联邦知识蒸馏的医学图像处理模型构建方法,其特征在于,所述步骤4中,中心节点根据接收到的各子节点的第一脉冲张量,基于公共数据集进行蒸馏训练,得到各子节点对应的蒸馏产物,包括以下步骤:定义蒸馏损失函数,并利用反向传播算法对脉冲神经网络训练预设轮数时,停止训练;其中,蒸馏损失函数为:l
soft
=l
t
+λl
f
其中,l
soft
为蒸馏损失函数,l
t
为对脉冲的类均方差损失,l
f
为用于松弛的类交叉熵损失,λ表示松弛变量,为预设参数;其中,对脉冲的类均方差损失:用于松弛的类交叉熵损失:其中,|c|是训练数据的类别数,t是脉冲神经网络时间窗口的大小;s
ct
和分别是一批次预测脉冲矩阵和目标脉冲矩阵中元素的值;p
c
和分别表示预测频率向量和目标频率向量,并通过脉冲矩阵计算,计算方式为:6.根据权利要求1所述的基于联邦知识蒸馏的医学图像处理模型构建方法,其特征在于,所述步骤5中,对所有蒸馏产物进行聚合得到全局参数,包括:所述中心节点预留聚合网络缓冲区,并按如下步骤进行聚合:步骤51、将当前中心节点脉冲神经网络生成副本,并置于中心节点的聚合缓冲区中;选择任一待聚合的第一脉冲张量,基于公共数据集对副本进行蒸馏训练并更新,获得第一网络参数;步骤52、判定所有子节点是否已经聚合完成,若是,则将第一网络参数作为全局参数;
否则,进入步骤53;步骤53、基于第一网络参数更新中心节点脉冲神经网络副本,并作为第一副本,在聚合缓冲区中复制第一副本生成其拷贝副本;步骤54、选择任一待聚合的第一脉冲张量,基于公共数据集对拷贝副本进行蒸馏训练并更新,获得第二副本及第二网络参数;步骤55、随机选择公共数据集中的一部分有标签数据,生成临时测试数据集;步骤56、基于临时测试数据集,分别对第一副本与第二副本进行测试,得到二者的测试准确率,并基于二者的测试准确率生成聚合权值,然后利用聚合权值计算更新第一网络参数;步骤57、返回步骤52。7.根据权利要求6所述的基于联邦知识蒸馏的医学图像处理模型构建方法,其特征在于,所述步骤56中,基于二者的测试准确率生成聚合权值,然后利用聚合权值计算更新第一网络参数,包括:步骤561、基于测试准确率a和a
′
生成聚合权值:其中,(α,α
′
)为聚合权值,δ为预设的保持因子,τ为预设的差异因子,softmax表示归一化指数函数;步骤562、利用聚合权值计算更新第一网络参数:其中,为新的第一网络参数;w为与第一副本对应的第一网络参数;w
′
为与第二副本对应的第二网络参数。8.一种基于联邦知识蒸馏的医学图像处理方法,其特征在于:依据权利要求1-7任意一项所述的基于联邦知识蒸馏的医学图像处理模型构建方法构建基于联邦知识蒸馏的医学图像处理模型,利用上述模型对待处理的医学图像进行图像处理。
技术总结本发明涉及属于医学图像处理领域,提供了基于联邦知识蒸馏医学图像处理模型构建方法,利用私有数据集对子节点网络进行训练,利用训练好的子节点网络在公共数据集上前向传播得到第一脉冲张量,并上传至中心节点;中心节点接收后,基于公共数据集进行蒸馏训练,得到蒸馏产物;聚合各子节点蒸馏产物得到全局参数,利用其对中心节点网络进行更新后,在公共数据集上前向传播,得到的第二脉冲张量并将其分发至所有子节点;子节点接收第二脉冲张量用以在公共数据集上进行蒸馏训练,同步更新子节点网络参数,并进入循环训练;直至达到预设轮数后或预设值后停止训练。本发明同时提供了利用构建完成的模型对待处理的医学图像进行图像处理的处理方法。理的处理方法。理的处理方法。
技术研发人员:刘贵松 刘哲通 解修蕊 黄鹂 蒋太翔 杨新
受保护的技术使用者:喀什地区电子信息产业技术研究院
技术研发日:2022.07.05
技术公布日:2022/11/1