CN117610644B - 一种基于区块链的联邦学习优化方法 - Google Patents
一种基于区块链的联邦学习优化方法 Download PDFInfo
- Publication number
- CN117610644B CN117610644B CN202410077654.8A CN202410077654A CN117610644B CN 117610644 B CN117610644 B CN 117610644B CN 202410077654 A CN202410077654 A CN 202410077654A CN 117610644 B CN117610644 B CN 117610644B
- Authority
- CN
- China
- Prior art keywords
- model
- network
- state
- edge node
- blockchain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000005457 optimization Methods 0.000 title claims abstract description 15
- 238000012549 training Methods 0.000 claims abstract description 97
- 230000009471 action Effects 0.000 claims abstract description 69
- 230000006870 function Effects 0.000 claims abstract description 58
- 238000011217 control strategy Methods 0.000 claims abstract description 41
- 230000002787 reinforcement Effects 0.000 claims abstract description 9
- 230000002776 aggregation Effects 0.000 claims description 21
- 238000004220 aggregation Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 19
- 238000012795 verification Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 3
- 230000009977 dual effect Effects 0.000 claims description 2
- 238000010606 normalization Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 17
- 230000005484 gravity Effects 0.000 abstract description 4
- 238000002474 experimental method Methods 0.000 description 6
- 230000001965 increasing effect Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007786 learning performance Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/098—Distributed learning, e.g. federated learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Abstract
本发明公开了一种基于区块链的联邦学习优化方法,在基于区块链的联邦学习下,基于深度强化学习的数据卸载控制策略,控制用户设备选择将数据传输到边缘节点进行模型训练或者在本地进行模型更新;基于深度强化学习的数据卸载控制策略包括:定义数据卸载控制策略的状态、动作和奖励函数,利用双重深度Q网络算法选择当前状态下的最优动作;当最优动作为在本地训练模型时,控制用户设备在本地进行模型更新;当最优动作为在边缘节点训练模型时,根据数据卸载上传比例将用户设备的数据传输到边缘节点,在边缘节点进行模型训练。本发明能够增加边缘服务器在整个模型训练过程的比重,加速区块链网络中的联邦学习模型训练过程。
Description
技术领域
本发明涉及一种基于区块链的联邦学习优化方法,属于联邦学习技术领域。
背景技术
随着物联网数据量不断增加和下一代无线网络对数据隐私的日益关注,中央服务器上的集中式人工智能训练不再适用,联邦学习被提出作为一种新的解决方法。在联邦学习中,边缘服务器是一个研究热点,边缘服务器能够利用数据源附近的网络边缘资源,实现低延迟的数据训练,应对人工智能服务不可预测的计算和存储需求。然而,在实际过程中,由于用户设备在向边缘服务器传输模型参数时容易受到安全瓶颈的影响,所以用户设备很难完全信任边缘服务器用于模型聚合,在模型聚合时,边缘服务器受到攻击会引入单点故障瓶颈,从而破坏整个联邦学习系统,而且单个边缘服务器无法聚合从数百万用户设备上传来的所有模型更新。
因此,引入区块链技术解决上述解决信任问题和大量模型的更新问题。通过使用区块链技术,联邦学习不再需要中央服务器,每个边缘服务器作为区块链网络中的一个节点,任何更新事件和用户行为都可以由所有网络实体透明地跟踪,从而避免联邦学习中的潜在威胁。然而,在现有的区块链-联邦学习框架中,边缘服务器只是起到了模型聚合、全局模型的更新和分发功能,其强大的潜在资源,比如计算能力,并没有得到很好的利用。目前的许多工作没有考虑用户设备的实际资源限制,也没有充分考虑到边缘服务器在区块链网络中进行模型训练的潜力,区块链-联邦学习框架的性能还可以进一步优化。
发明内容
为了解决现有技术中存在的问题,本发明提出了一种基于区块链的联邦学习优化方法,通过卸载控制策略,用户设备选择性的将数据卸载到边缘节点进行模型训练,增加边缘服务器在整个模型训练过程中的比重,充分利用边缘服务器的资源,提高联邦学习模型训练的效率,优化联邦学习过程。
为解决上述技术问题,本发明采用了如下技术手段:
本发明提出一种基于区块链的联邦学习优化方法,包括如下步骤:
利用边缘节点存储获取到的模型训练任务中的初始化模型,并将初始化模型广播给边缘节点区域内的用户设备;
基于深度强化学习的数据卸载控制策略,控制用户设备选择将数据传输到边缘节点进行模型训练或者在本地进行模型更新;
利用边缘节点将自身训练的模型和用户设备上传来的模型进行局部模型聚合;
基于每个边缘节点聚合后的局部模型,通过所有边缘节点进行共识更新,得到全局聚合模型;
随机抽取一个边缘节点作为领导者,并构建一个未经验证的新块,通过领导者对新块进行有效性验证,所述新块包含全局聚合模型;
当有效性验证失败,删除新块,通过所有边缘节点重新进行共识更新;当有效性验证成功,利用领导者向其他边缘节点广播新块,进入下一轮次的迭代。
进一步的,所述基于深度强化学习的数据卸载控制策略,控制用户设备选择将数据传输到边缘节点进行模型训练或者在本地进行模型更新,包括:
根据基于区块链的联邦学习框架下的网络带宽、电池剩余量、边缘服务器负载和区块链网络状态,定义数据卸载控制策略的状态;
根据数据卸载需求,定义数据卸载控制策略的动作;
根据所述数据卸载控制策略的状态,定义数据卸载控制策略的奖励函数;
基于所述数据卸载控制策略的状态、动作和奖励函数,利用双重深度Q网络算法选择当前状态下的最优动作;
当最优动作为在本地训练模型时,控制用户设备在本地进行模型更新;
当最优动作为在边缘节点训练模型时,根据数据卸载上传比例将用户设备的数据传输到边缘节点,在边缘节点进行模型训练。
进一步的,所述数据卸载控制策略的状态表示如下:
;
其中,O为数据卸载控制策略的状态,B为归一化的网络带宽,E为归一化的用户设备电池剩余量,L为归一化的网络负载,S为区块链网络状态。
进一步的,所述归一化的网络带宽B的表达式如下:
;
其中,表示用于平衡网络带宽对卸载控制策略影响的超参数,/>表示区块链网络中的拥塞程度,/>表示用于衡量网络带宽对区块链联邦学习模型训练重要性的超参数,/>和/>分别表示边缘节点m的上传速率和下载速率,/>和/>分别表示边缘节点m的上传速率和下载速率的最大值,M为基于区块链的联邦学习框架下边缘节点的总数;
所述归一化的用户设备电池剩余量E的表达式如下:
;
其中,表示用户设备n的电池剩余量,/>表示用户设备n的最大电池容量,N为基于区块链的联邦学习框架下用户设备的总数;
所述归一化的网络负载L的表达式如下:
;
其中,表示边缘节点m的内存利用率,/>表示边缘节点m的CPU利用率,/>和分别表示内存利用率和CPU利用率的最大值;
所述区块链网络状态S包括区块高度、共识状态和平均交易处理时间,区块链网络状态S由区块链网络中所有边缘节点的状态组成,边缘节点m的状态的表达式如下:
;
;
其中,表示边缘节点m的区块链高度与其他边缘节点平均高度相差的区块数;表示边缘节点m的共识状态,/>表示无共识,/>表示正在共识;/>表示边缘节点m的平均交易处理时间。
进一步的,所述数据卸载控制策略的动作包括:
动作:用户设备n将基于自身数据在本地对模型进行训练;
动作:用户设备n将本地数据上传至边缘节点m,在边缘节点m上进行模型训练。
进一步的,所述数据卸载控制策略的奖励函数为:
;
其中,为奖励函数,/>分别为奖励函数的权重系数,/>是预设的超参数,/>表示训练模型在训练集上的损失函数,/>表示训练模型在验证集上的损失函数,L 表示归一化的网络负载;/>是一个以边缘节点状态为因变量的函数;
;
其中,为边缘节点m的状态,M为基于区块链的联邦学习框架下边缘节点的总数。
进一步的,基于所述数据卸载控制策略的状态、动作和奖励函数,利用双重深度Q网络算法选择当前状态下的最优动作,包括:
基于所述数据卸载控制策略的状态,利用主Q网络计算当前状态下的动作对应的Q值/>和选择动作/>对应的Q值/>;
比较和/>的大小,选择数值大的一方对应的动作作为当前迭代轮次的动作;
基于当前迭代轮次的状态、动作和奖励函数,利用目标Q网络计算目标Q值;
根据目标Q值通过梯度下降算法更新主Q网络的参数。
进一步的,所述主Q网络的Q值函数为:
;
其中,表示主Q网络的Q值函数,/>表示当前迭代轮次的状态,A表示当前迭代轮次的动作,/>为主/>网络的参数,/>至/>为预设的权重系数,B表示归一化的网络带宽,E表示归一化的用户设备电池剩余量,/>表示边缘节点m的区块链高度与其他边缘节点平均高度相差的区块数,/>表示边缘节点m的共识状态,/>表示边缘节点m的平均交易处理时间。
进一步的,所述目标Q网络的目标Q值函数为:
;
其中,表示目标Q值函数,/>表示目标/>网络的参数,/>表示下一迭代轮次的状态,/>表示下一迭代轮次选择的动作,R为奖励函数,/>为折扣因子,表示在下一迭代轮次的状态/>中选择具有最大/>值的动作/>。
进一步的,所述数据卸载上传比例的计算方法包括:
根据每个边缘节点的平均交易处理时间计算中间变量Z:
;
其中,表示边缘节点m的平均交易处理时间,/>表示区块链网络中边缘节点的平均交易处理时间的最大值,M为基于区块链的联邦学习框架下边缘节点的总数;
基于中间变量Z和当前迭代轮次所述数据卸载控制策略的状态,定义一个性能指标加权和P:
;
其中,、/>、/>和/>均为预设的性能指标权重,B、E、L分别为归一化后的网络带宽、电池剩余容量和网络负载;
根据所述性能指标加权和P计算当前迭代轮次的数据卸载上传比例:
;
其中,为当前迭代轮次的数据卸载上传比例。
采用以上技术手段后可以获得以下优势:
本发明提出了一种基于区块链的联邦学习优化方法,在区块链-联邦学习场景中,引入基于深度强化学习的数据卸载控制策略,在每一迭代轮次中,根据当前状态信息选择当前轮次的动作,有选择性的将用户设备的数据卸载到边缘节点上进行训练,或者在用户设备本地训练,能够增加边缘服务器在整个模型训练过程的比重,能够充分利用边缘服务器的资源,加速区块链网络中的联邦学习模型训练过程,提高模型训练的效率和性能。
附图说明
图1为本发明实施例中基于区块链的联邦学习框架的结构示意图;
图2为本发明实施例中基于区块链的联邦学习优化方法的流程示意图;
图3为本发明实施例中数据卸载控制策略的流程示意图;
图4为本发明实施例中不同算法下模型训练精度随训练轮次的性能变化对比图;
图5为本发明实施例中不同算法下模型训练损失随训练轮次的变化示意图;
图6为本发明实施例中不同算法下模型训练的反馈奖励随训练轮次的变化示意图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明:
基于区块链的联邦学习框架一般包括区块链网络层和用户设备层,如图1所示,区块链网络层包括多个边缘服务器,每个边缘服务器都作为一个边缘节点,配备存储和计算能力,充当服务的提供者,通过部分用户设备的本地数据集训练模型、进行局部模型聚合更新,来服务于联邦学习;用户设备层中的用户设备包括智能手机、笔记本电脑、传感器、智能手表等产生数据的智能设备。
假设基于区块链的联邦学习框架包括个用户设备,/>个边缘节点,每个边缘节点覆盖范围内的用户设备数量为/>,其中,/>。模型训练完成需要进行/>次迭代训练,其中,/>,第/>次迭代的训练模型为/>。模型训练过程旨在最小化损失函数,针对不同的训练模型/>可以设置不同的损失函数。
假设每个用户设备的数据集大小为,具有数据集/>的用户设备/>在迭代轮次/>中,训练模型/>的损失函数为:
(1)
其中,表示用户设备/>在数据样本/>上的损失函数,/>是数据集/>中的一组输入输出,/>是一个具有d特征的输入样本向量,/>是样本/>的标记输出值。在一个典型的学习问题中,对于带有输入/>的样本数据{/>,/>},任务是找到表征输出/>的模型参数/>和损失函数/>。
本发明提供一种基于区块链的联邦学习优化方法,如图2所示,具体包括如下步骤:
步骤A、获取请求者(需要进行模型训练的个人或公司)发送的模型训练任务。
步骤B、利用边缘节点存储模型训练任务中的初始化模型,并将初始化模型广播给其区域内的用户设备。
步骤C、基于深度强化学习的数据卸载控制策略,用户设备可以选择将数据传输到边缘节点进行模型训练或者在本地进行模型更新。
步骤D、利用边缘节点将自身训练的模型和用户设备上传来的模型进行局部模型聚合。
在本发明实施例中,用户设备和边缘节点采用梯度下降算法进行局部模型训练,在第轮迭代过程中,用户设备/边缘节点接收到上一轮迭代输出的训练模块/>,通过块挖掘更新训练模型,输出第/>轮迭代的训练模型/>,块挖掘技术是区块链中的常用技术,通常是指通过执行一些计算任务来创建新的区块并将其添加到区块链中,在本发明中,通过块挖掘这个过程来更新训练模型;用户设备将在本地更新后的模型/>上传至附近的边缘节点,进行下一步的验证和聚合;每个边缘节点将其训练的模型与从其范围内的用户设备发送来的训练模型结合起来,以执行模型聚合,得到局部聚合模型。
局部聚合模型的表达式如下:
(2)
其中,为边缘节点m的局部聚合模型,/>表示边缘节点m本身训练出的模型。
步骤E、通过区块链网络中所有的边缘节点进行共识更新,在这个过程中,边缘节点将进行多轮区块链激活的对等(P2P)通信来交换模型,从而得到全局聚合模型。
在本发明实施例中,全局损失函数如下:
(3)
全局聚合模型为:
(4)
步骤F、在共识更新之后,将随机抽取一个边缘节点作为领导者,并构建一个未经验证的块,其中包含挖掘的全局聚合模型。随后领导者边缘节点会对新块进行有效性的验证,具体地:(1)验证块头的哈希值是否满足难度目标,此目标是根据前一个块的哈希值和新块的其他信息计算得出的。(2)验证块头中的时间戳是否超过当前时间。(3)验证块的大小是否超过1MB。(4)验证块的连接性,验证新块的前一个块是否存在,并且新块的前一个块哈希值是否与已有区块的哈希值匹配。
当有效性验证失败,该新块将被删除,所有边缘节点重新进行共识更新,重新生成新块并进行验证,即重复步骤F。当有效性验证成功,领导者边缘节点通过区块链向其他边缘节点广播新块,将全局聚合模型广播到所有边缘节点中,然后通过每个边缘节点将更新后的全局模型广播给其范围内的用户设备,进行下一轮次的迭代,即重复步骤C-F。
在步骤C中,基于深度强化学习的数据卸载控制策略的构建方法如图3所示,具体包括如下步骤:
步骤1、为了在卸载控制策略中选择性地将用户设备的数据上传到边缘节点进行模型训练,首先要定义合适的状态表示。状态是决策过程中的关键因素,本发明通过网络带宽、电池剩余量、边缘服务器负载和区块链网络状态的信息,对状态进行定义。
在本发明实施例中,状态为一个包含网络带宽、用户设备的电池剩余量、边缘服务器负载和区块链网络状态的向量,可以表示如下:
(5)
其中,为数据卸载控制策略的状态,B为归一化的网络带宽,E为归一化的用户设备电池剩余量,L为归一化的网络负载,S为区块链网络状态。
网络带宽和边缘服务器负载主要用来衡量边缘服务器的负载情况,区块链网络状态用来表示区块链网络中每个边缘服务器的状态,过定义的状态表示,能够提供给卸载控制策略有关网络带宽、电池剩余量、边缘服务器负载和区块链网络状态的信息,用于决策和优化过程。
步骤101、归一化的网络带宽B的表达式如下:
(6)
其中,表示用于平衡网络带宽对卸载控制策略影响的超参数,/>表示区块链网络中的拥塞程度,/>表示用于衡量网络带宽对区块链联邦学习模型训练重要性的超参数,/>和/>分别表示边缘节点m的上传速率和下载速率,/>和/>分别表示边缘节点m的上传速率和下载速率的最大值。
在本发明实施例中,表示无拥塞或轻拥塞,/>表示严重拥塞。本发明可以采用交易确认时间作为判别区块链网络拥塞程度的指标。交易确认时间是指从交易发起到被区块链网络确认的时间,它直接影响到用户交易的速度和效率。较短的交易确认时间意味着用户可以更快地完成交易,可以认为网络没有拥塞;而较长的交易确认时间则可能导致用户等待时间增加,甚至出现交易延迟的情况,可能存在轻度或严重拥塞。具体地,本发明中定义交易确认时间在5分钟之内,认定网络无拥塞;5-15分钟内表示网络轻拥塞;超过15分钟表示网络严重拥塞。
步骤102、归一化的用户设备电池剩余量E的表达式如下:
(7)
其中,表示用户设备n的电池剩余量,/>表示用户设备n的最大电池容量。
步骤103、归一化的网络负载L的表达式如下:
(8)
其中,表示边缘节点m的内存利用率,/>表示边缘节点m的CPU利用率,/>和分别表示内存利用率和CPU利用率的最大值。
步骤104、区块链网络状态S具体包括区块高度、共识状态以及平均交易处理时间等,区块链网络状态由区块链网络中所有边缘节点的状态组成,边缘节点m的状态的表达式如下:
(9)
(10)
其中,表示边缘节点m的区块链高度与其他边缘节点平均高度相差的区块数,表示边缘节点m比较繁忙,/>表示边缘节点m比较空闲;/>表示边缘节点m的共识状态,/>表示无共识,/>表示正在共识;/>表示边缘节点m的平均交易处理时间,/>大于5秒表示边缘节点m比较繁忙,/>小于1秒表示边缘节点m比较空闲。
在本发明实施例中,只有当时,表示该边缘节点处于空闲状态,其余情况均表示该边缘节点处于繁忙状态。
步骤2、定义数据卸载控制策略的动作。在本发明中,数据卸载控制策略有两种动作选择,表示如下:
(11)
其中,为第/>轮迭代训练的动作向量,/>为第/>轮迭代训练时用户设备n与边缘节点m下的动作。
具体的:
(1)当=0,表示动作/>:第/>轮迭代训练时,用户设备n将基于自身数据在本地对模型进行训练;
(2)当=1,表示动作/>:第/>轮迭代训练时,用户设备n将本地数据上传至边缘节点m进行模型训练。
动作定义提供了数据卸载控制策略在决策过程中的灵活性,能够根据当前状态选择合适的动作。
步骤3:为了引导卸载控制策略的学习和优化,本发明还定义了一个奖励函数,奖励函数可以评估每个动作的好坏程度。
本发明综合多个因素提出了奖励函数,具体包括训练模型在训练集上的损失函数、训练模型在验证集上的损失函数、网络负载和区块链网络状态等。奖励函数的表达式如下:
(12)
其中,分别为奖励函数的权重系数,用于平衡各个因素对奖励的贡献,其取值根据实际情况设置;/>是超参数,用于控制奖励函数对训练性能改进的敏感度,其取值根据实际情况设置;/>表示训练模型在训练集上的损失函数;/>表示训练模型在验证集上的损失函数;L 表示归一化的网络负载;/>是一个以边缘节点状态为因变量的函数,用于评估区块链网络的状态,具体表示为:
(13)
其中,为边缘节点m的状态。
奖励函数的定义为评估每个动作的性能提供了支撑,并根据奖励的反馈信号来引导卸载策略的优化和学习。计算得到的奖励函数用于步骤6中对动作选择优劣的评估。
步骤4、基于步骤1-3定义的状态、动作和奖励函数,引入双重深度Q网络(DDQN)算法,定义一个深度神经网络作为Q值函数,用ρ表示其参数,记作,根据当前状态,使用Q值函数选择最优动作A,用于选择动作和评估动作的价值。通过不断与环境交互,DDQN算法会更新Q值函数,使其能够准确地估计每个状态下每个动作的价值,并根据这些价值做出最优的动作选择。
DDQN算法包括两个深度神经网络:主Q网络和目标Q网络。在每轮次迭代训练中,使用主Q网络来选择动作,使用目标Q网络来估计下一个状态的最大动作值,指导卸载策略的学习和优化过程。
步骤401、主Q网络的Q值函数可以表示为:
(14)
其中,表示主Q函数的参数,/>表示当前状态,A表示当前状态的动作,/>至/>为预设的权重系数,B取值范围为[0,1],E取值范围为[0,1],/>表示边缘节点m的区块链高度与其他边缘节点平均高度相差的区块数,/>表示边缘节点m的共识状态。
主Q网络选择动作的原理如下:在每个状态下,根据主Q网络的Q值函数分别计算出选择动作对应的Q值/>和选择动作/>对应的Q值/>,若/>,则选择动作/>,反之,则选择动作/>。
步骤402、目标Q网络的目标Q值函数可以表示为:
(15)
其中,表示目标Q值函数,/>表示目标Q网络的参数,/>表示下一个状态,/>表示在下一状态/>中选择具有最大Q值的动作,/>表示下一个状态选择的动作,R是当前状态动作的奖励,/>表示折扣因子。
在本发明的DDQN算法中,每完成一次动作选择后,状态信息会随着动作发生改变,此时与环境交互,可以观察下一时刻的新状态信息。
步骤403、更新主Q网络参数。
首先,通过使用均方差损失函数来更新主Q网络参数,具体通过最小化以下损失函数来更新参数/>:
(16)
其中,表示损失函数,即目标Q值函数的/>值与当前主Q网络的Q值之间的均方差。
然后,通过梯度下降算法,使用损失函数的梯度来更新主Q网络的参数/>,具体表示为:
(17)
其中,表示学习率,用于控制参数更新的步长;/>表示损失函数/>对/>的梯度。
通过以上步骤,主Q网络的参数逐渐优化,以更准确的估计每个状态所对应的正确的Q值,并指导卸载动作的选择。
卸载控制策略根据当前状态和目标Q值函数的估计值选择最优的动作。卸载控制策略可以通过最大化目标Q值来选择最优的动作,从而提高整体性能。
步骤5、在完成动作选择的基础上,定义一个动态选择数据卸载上传比例,基于步骤1中的状态,动态的选择用户设备将本地数据上传到边缘节点的比例,以优化卸载控制策略并提高区块链联邦学习的性能。
每个用户设备需要在其对应的边缘节点进行模型训练之前获得关于其是否应当将数据卸载到边缘节点的卸载策略。我们假设一旦卸载阶段完成,模型训练过程开始。
步骤501、以每个边缘节点的平均交易处理时间作为计算数据卸载上传比例的重要指标,参与到数据卸载上传比例的计算。区块链网络状态中的区块链高度和共识状态虽然也可以用来判断节点的空闲与否,但它们更多地反映了节点与整个区块链网络的同步状态和参与共识的情况,而平均交易处理时间反映了节点处理交易的效率和速度,因此平均交易处理时间最能代表状态向量/>表示边缘节点的空闲状态,因此,最适合用来计算数据卸载上传比例。
根据每个边缘节点的平均交易处理时间计算中间变量Z:
(18)
其中,表示区块链网络中边缘节点的平均交易处理时间的最大值。
步骤502、基于中间变量Z,定义一个性能指标加权和P,表示如下:
(19)
其中,、/>、/>和/>均为人为设置的性能指标权重。
步骤503、根据性能指标加权和P计算数据卸载上传比例,表示如下:
(20)
每个用户设备需要在其对应的边缘节点进行模型训练之前获得关于其是否应当将数据卸载到边缘节点的卸载策略和比例,一旦卸载阶段完成,模型训练过程开始。
步骤6、当本发明通过步骤4选择进行动作(即用户设备n将本地数据上传至边缘节点m进行模型训练)时,通过步骤5动态选择数据卸载上传比例,计算出用户设备/>向边缘节点/>卸载上传数据的比例/>,将相应比例的数据上传至边缘节点m,在用户设备本地或边缘节点进行模型训练。
为了验证本发明方法的有效性和性能优势,本发明实施例提供如下对比实验:
在对比实验中,采用经典数据集Mnist,并将其分为训练集和测试集;对比实验的场景中设置了4个边缘节点和40个用户设备;训练模型设置为CNN。对比实验选择3个具有代表性的现有算法作为对比算法,与本发明方法在Mnist数据集上对比精度、损失和奖励等指标,评估每种算法的性能表现。
对比实验中的3个对比算法具体为:
对比算法1:联邦学习经典算法FedAvg,该算法的基本思想是将模型训练任务发给用户设备,用户设备基于自身数据在本地进行模型训练,并且采用随机选择的方式在每轮次中选择用户设备参与全局模型聚合。
对比算法2(Bo X, Wenchao X, Jun Z, Tony Q S Q, Hongbo Z, et al. OnlineClient Scheduling for Fast Federated Learning[J], IEEE WirelessCommunications Letters, 2021, 10(7): 1434-1438.):该算法将客户端调度问题转化为一个多臂的强盗程序,然后提出了一个基于贪婪算法的在线调度方案,以实现探索和开发之间的权衡。此外,该算法通过综合考虑本地更新的重要性和每个用户设备的延迟问题,同时减少了训练轮数和每轮的时间间隔。
对比算法3:ACDQN算法,该算法结合了Actor-Critic和深度Q网络(DQN)方法的优点,使用主DNN和目标DNN来稳定地训练计算卸载策略。该算法考虑部分计算卸载,用户设备可以拆分计算任务,使一些在本地终端上执行,而一些卸载到MEC服务器。
对比实验的实验结果如图4-6所示,其中,图4展示了不同算法下联邦学习模型的训练精度在不同训练轮次下的性能,图5展示了不同算法下模型的训练损失在不同轮次下的变化,图6展示了不同算法下反馈奖励随轮次变化的情况。根据图4-6可以看出,在相同的训练轮次下,本发明方法训练的模型精度明显高于其他算法,本发明方法的训练损失明显低于其他算法,本发明方法的反馈奖励明显高于其他算法,能够在较少训练轮次内达到收敛,因此,相比于三个对比算法,本发明方法可以获得更低的训练损失和更高的测试准确率,并且可以获得较高的反馈奖励。
本发明方法相比于对比算法3可以在更快收敛的同时保持更高的精度,这是因为对比算法3中以用户设备和基站之间的信道条件来确定环境状态,并未考虑用户设备和边缘节点的实际情况,因此对比算法3在更高轮次的时候精度会增加,但是收敛速度会减慢。本发明方法相比于对比算法1和对比算法2可以在收敛的时候达到一个更高的精度,同时拥有更低的损失和更高的奖励,这是因为对比算法1中采用随机选择的方式选择用户设备参与训练,这会降低模型训练的效率,产生额外的开销,对比算法2中采用多臂匪徒算法进行用户设备选择,但是该算法假设环境是静态的,而在实际情况下环境是动态的,用户设备选择的收益率会随时间而变化,这导致对比算法2的用户设备选择不贴合实际。
通过上述对比试验可以看出,本发明方法能够提高区块链联邦学习数据卸载控制效率,提高模型训练的速率和精度,还能够减少资源消耗。
本发明应用在区块链-联邦学习场景中,场景中每个用户设备在每一迭代轮次中,通过引入DDQN算法,根据当前状态信息选择当前轮次的动作,有选择性的将用户设备的数据卸载到边缘节点上进行训练,利用区块链网络中的边缘节点提供的存储和计算能力,可以大大提高训练效率,加快模型训练的速度。本发明增加了边缘服务器在整个模型训练过程的比重,能够充分利用边缘服务器的资源,加速区块链网络中的联邦学习模型训练过程,提高模型训练的效率和性能。
本发明方法对区块链-联邦学习框架进行合理分析,定义了数据卸载控制策略的状态、动作和奖励函数,为数据卸载控制提供坚实基础,本发明引入DDQN算法,充分考虑了用户设备和边缘节点信息,能够通过Q值网络选择当前状态下最优的动作,提高数据卸载的合理性和准确性,本发明还引入了数据卸载上传比例,根据数据卸载上传比例卸载数据,可以更好的利用各方资源,提高联邦学习性能。
同时,本发明通过引入区块链技术,实现对训练数据和模型参数的加密和安全共享,有效防止恶意攻击和数据篡改,增强了系统的安全性。本发明采用边缘节点提供的存储和计算资源,避免了集中式服务器的建设和维护成本,降低系统的成本。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (3)
1.一种基于区块链的联邦学习优化方法,其特征在于,包括如下步骤:
利用边缘节点存储获取到的模型训练任务中的初始化模型,并将初始化模型广播给边缘节点区域内的用户设备;
基于深度强化学习的数据卸载控制策略,控制用户设备选择将数据传输到边缘节点进行模型训练或者在本地进行模型更新;
利用边缘节点将自身训练的模型和用户设备上传来的模型进行局部模型聚合;
基于每个边缘节点聚合后的局部模型,通过所有边缘节点进行共识更新,得到全局聚合模型;
随机抽取一个边缘节点作为领导者,并构建一个未经验证的新块,通过领导者对新块进行有效性验证,所述新块包含全局聚合模型;
当有效性验证失败,删除新块,通过所有边缘节点重新进行共识更新;当有效性验证成功,利用领导者向其他边缘节点广播新块,进入下一轮次的迭代;
所述基于深度强化学习的数据卸载控制策略,控制用户设备选择将数据传输到边缘节点进行模型训练或者在本地进行模型更新,包括:
根据基于区块链的联邦学习框架下的网络带宽、电池剩余量、边缘服务器负载和区块链网络状态,定义数据卸载控制策略的状态;
根据数据卸载需求,定义数据卸载控制策略的动作;
根据所述数据卸载控制策略的状态,定义数据卸载控制策略的奖励函数;
基于所述数据卸载控制策略的状态、动作和奖励函数,利用双重深度Q网络算法选择当前状态下的最优动作;
当最优动作为在本地训练模型时,控制用户设备在本地进行模型更新;
当最优动作为在边缘节点训练模型时,根据数据卸载上传比例将用户设备的数据传输到边缘节点,在边缘节点进行模型训练;
所述数据卸载控制策略的状态表示如下:
O=[B,E,L,S]
其中,O为数据卸载控制策略的状态,B为归一化的网络带宽,E为归一化的用户设备电池剩余量,L为归一化的网络负载,S为区块链网络状态;
所述归一化的网络带宽B的表达式如下:
其中,α表示用于平衡网络带宽对卸载控制策略影响的超参数,μ表示区块链网络中的拥塞程度,β表示用于衡量网络带宽对区块链联邦学习模型训练重要性的超参数,Um和Vm分别表示边缘节点m的上传速率和下载速率,Umax和Vmax分别表示边缘节点m的上传速率和下载速率的最大值,M为基于区块链的联邦学习框架下边缘节点的总数;
所述归一化的用户设备电池剩余量E的表达式如下:
其中,En表示用户设备n的电池剩余量,Emax表示用户设备n的最大电池容量,N为基于区块链的联邦学习框架下用户设备的总数;
所述归一化的网络负载L的表达式如下:
其中,Tm表示边缘节点m的内存利用率,Rm表示边缘节点m的CPU利用率,Tmax和Rmax分别表示内存利用率和CPU利用率的最大值;
所述区块链网络状态S包括区块高度、共识状态、平均交易处理时间,区块链网络状态S由区块链网络中所有边缘节点的状态组成,边缘节点m的状态Sm的表达式如下:
Sm=[Hm,Pm,Jm]
其中,Hm表示边缘节点m的区块链高度与其他边缘节点平均高度相差的区块数;Pm表示边缘节点m的共识状态,Pm=0表示无共识,Pm=1表示正在共识;Jm表示边缘节点m的平均交易处理时间;
所述数据卸载控制策略的动作包括:
动作A1:用户设备n将基于自身数据在本地对模型进行训练;
动作A2:用户设备n将本地数据上传至边缘节点m,在边缘节点m上进行模型训练;
所述数据卸载控制策略的奖励函数为:
其中,R为奖励函数,ω1,ω2,ω3分别为奖励函数的权重系数,σ是预设的超参数,Ltrain表示训练模型在训练集上的损失函数,Lval表示训练模型在验证集上的损失函数,L表示归一化的网络负载;f(S)是一个以边缘节点状态为因变量的函数;
其中,Sm为边缘节点m的状态,M为基于区块链的联邦学习框架下边缘节点的总数;
基于所述数据卸载控制策略的状态、动作和奖励函数,利用双重深度Q网络算法选择当前状态下的最优动作,包括:
基于所述数据卸载控制策略的状态,利用主Q网络计算当前状态下选择动作A1对应的Q值Q1和选择动作A2对应的Q值Q2;
比较Q1和Q2的大小,选择数值大的一方对应的动作作为当前迭代轮次的动作;
基于当前迭代轮次的状态、动作和奖励函数,利用目标Q网络计算目标Q值;
根据目标Q值通过梯度下降算法更新主Q网络的参数;
所述数据卸载上传比例的计算方法包括:
根据每个边缘节点的平均交易处理时间计算中间变量Z:
其中,Jm表示边缘节点m的平均交易处理时间,Jmax表示区块链网络中边缘节点的平均交易处理时间的最大值,M为基于区块链的联邦学习框架下边缘节点的总数;
基于中间变量Z和当前迭代轮次所述数据卸载控制策略的状态,定义一个性能指标加权和P:
P=θ1*B+θ2*E+θ3*L+θ4*Z
其中,θ1、θ2、θ3和θ4均为预设的性能指标权重,B、E、L分别为归一化后的网络带宽、电池剩余容量和网络负载;
根据所述性能指标加权和P计算当前迭代轮次的数据卸载上传比例:
其中,ε为当前迭代轮次的数据卸载上传比例。
2.根据权利要求1所述的基于区块链的联邦学习优化方法,其特征在于,所述主Q网络的Q值函数为:
其中,Q(O,A,ρ)表示主Q网络的Q值函数,O表示当前迭代轮次的状态,A表示当前迭代轮次的动作,ρ为主Q网络的参数,至/>为预设的权重系数,B表示归一化的网络带宽,E表示归一化的用户设备电池剩余量,Hm表示边缘节点m的区块链高度与其他边缘节点平均高度相差的区块数,Pm表示边缘节点m的共识状态,Jm表示边缘节点m的平均交易处理时间。
3.根据权利要求1所述的基于区块链的联邦学习优化方法,其特征在于,所述目标Q网络的目标Q值函数为:
Qtarget(O,A,ρ′)=R+γ*max Q(O′,A′,ρ)
其中,Qtarget(O,A,ρ′)表示目标Q值函数,O表示当前迭代轮次的状态,A表示当前迭代轮次的动作,ρ′表示目标Q网络的参数,O′表示下一迭代轮次的状态,A′表示下一迭代轮次选择的动作,R为奖励函数,γ为折扣因子,max Q(O′,A′,ρ)表示在下一迭代轮次的状态O′中选择具有最大Q值的动作A′,ρ为主Q网络的参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410077654.8A CN117610644B (zh) | 2024-01-19 | 2024-01-19 | 一种基于区块链的联邦学习优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410077654.8A CN117610644B (zh) | 2024-01-19 | 2024-01-19 | 一种基于区块链的联邦学习优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117610644A CN117610644A (zh) | 2024-02-27 |
CN117610644B true CN117610644B (zh) | 2024-04-16 |
Family
ID=89951950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410077654.8A Active CN117610644B (zh) | 2024-01-19 | 2024-01-19 | 一种基于区块链的联邦学习优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117610644B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100659A (zh) * | 2020-09-14 | 2020-12-18 | 电子科技大学 | 一种区块链联邦学习系统及拜占庭攻击检测方法 |
CN112202928A (zh) * | 2020-11-16 | 2021-01-08 | 绍兴文理学院 | 传感边缘云区块链网络可信卸载协作节点选择系统及方法 |
CN113052331A (zh) * | 2021-02-19 | 2021-06-29 | 北京航空航天大学 | 一种基于区块链的物联网个性化联邦学习方法 |
CN115348022A (zh) * | 2021-05-14 | 2022-11-15 | 天津大学 | 一种数据处理方法、设备以及计算机可读存储介质 |
CN115865914A (zh) * | 2022-11-26 | 2023-03-28 | 福州大学 | 车辆边缘计算中基于联邦深度强化学习的任务卸载方法 |
CN115935442A (zh) * | 2022-12-09 | 2023-04-07 | 湖南天河国云科技有限公司 | 基于多智能体深度强化学习的区块链性能优化方法 |
CN115987541A (zh) * | 2022-09-27 | 2023-04-18 | 绍兴文理学院 | 边缘联邦任务卸载中带宽拒绝分配攻击防护方法 |
CN116600316A (zh) * | 2023-05-08 | 2023-08-15 | 南京航空航天大学 | 一种基于深度双q网络和联邦学习的空地一体化物联网联合资源分配方法 |
CN116720593A (zh) * | 2023-05-24 | 2023-09-08 | 国网浙江省电力有限公司电力科学研究院 | 基于信誉反向拍卖的联邦学习激励方法、系统和存储介质 |
CN116737391A (zh) * | 2023-07-06 | 2023-09-12 | 南京航空航天大学 | 一种联邦模式下基于混合策略的边缘计算协作方法 |
CN116795539A (zh) * | 2023-05-17 | 2023-09-22 | 南京邮电大学 | 一种基于区块链的移动边缘计算中的资源分配方法 |
WO2023193937A1 (en) * | 2022-04-05 | 2023-10-12 | NEC Laboratories Europe GmbH | Method and system for creating a digital twin of a network, dtn |
WO2023209414A1 (en) * | 2022-04-25 | 2023-11-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and apparatus for computing resource allocation |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114819197B (zh) * | 2022-06-27 | 2023-07-04 | 杭州同花顺数据开发有限公司 | 基于区块链联盟的联邦学习方法、系统、装置及存储介质 |
-
2024
- 2024-01-19 CN CN202410077654.8A patent/CN117610644B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100659A (zh) * | 2020-09-14 | 2020-12-18 | 电子科技大学 | 一种区块链联邦学习系统及拜占庭攻击检测方法 |
CN112202928A (zh) * | 2020-11-16 | 2021-01-08 | 绍兴文理学院 | 传感边缘云区块链网络可信卸载协作节点选择系统及方法 |
CN113052331A (zh) * | 2021-02-19 | 2021-06-29 | 北京航空航天大学 | 一种基于区块链的物联网个性化联邦学习方法 |
CN115348022A (zh) * | 2021-05-14 | 2022-11-15 | 天津大学 | 一种数据处理方法、设备以及计算机可读存储介质 |
WO2023193937A1 (en) * | 2022-04-05 | 2023-10-12 | NEC Laboratories Europe GmbH | Method and system for creating a digital twin of a network, dtn |
WO2023209414A1 (en) * | 2022-04-25 | 2023-11-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and apparatus for computing resource allocation |
CN115987541A (zh) * | 2022-09-27 | 2023-04-18 | 绍兴文理学院 | 边缘联邦任务卸载中带宽拒绝分配攻击防护方法 |
CN115865914A (zh) * | 2022-11-26 | 2023-03-28 | 福州大学 | 车辆边缘计算中基于联邦深度强化学习的任务卸载方法 |
CN115935442A (zh) * | 2022-12-09 | 2023-04-07 | 湖南天河国云科技有限公司 | 基于多智能体深度强化学习的区块链性能优化方法 |
CN116600316A (zh) * | 2023-05-08 | 2023-08-15 | 南京航空航天大学 | 一种基于深度双q网络和联邦学习的空地一体化物联网联合资源分配方法 |
CN116795539A (zh) * | 2023-05-17 | 2023-09-22 | 南京邮电大学 | 一种基于区块链的移动边缘计算中的资源分配方法 |
CN116720593A (zh) * | 2023-05-24 | 2023-09-08 | 国网浙江省电力有限公司电力科学研究院 | 基于信誉反向拍卖的联邦学习激励方法、系统和存储介质 |
CN116737391A (zh) * | 2023-07-06 | 2023-09-12 | 南京航空航天大学 | 一种联邦模式下基于混合策略的边缘计算协作方法 |
Non-Patent Citations (5)
Title |
---|
Federated Double Deep Q-learning for Joint Delay and Energy Minimization in IoT networks;Sheyda Zarandi 等;2021 IEEE International Conference on Communications Workshops (ICC Workshops);20210709;1-6 * |
区块链辅助的多边缘服务器协作视频流缓存优化策略;郭永安 等;数据采集与处理;20231130;第38卷(第6期);1353-1368 * |
基于区块链的联邦学习研究;何柳;中国优秀硕士学位论文全文数据库信息科技辑;20230115;I138-885 * |
基于马尔科夫决策过程和区块链的边缘计算卸载关键技术研究;钟盛德;中国优秀硕士学位论文全文数据库基础科学辑;20230215;A002-1840 * |
边缘网格下多无人机协同计算和资源分配联合优化策略;郭永安 等;南京航空航天大学学报;20231031;第55卷(第5期);757-767 * |
Also Published As
Publication number | Publication date |
---|---|
CN117610644A (zh) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kang et al. | Incentive mechanism for reliable federated learning: A joint optimization approach to combining reputation and contract theory | |
Liu et al. | Cooperative offloading and resource management for UAV-enabled mobile edge computing in power IoT system | |
Nguyen et al. | Privacy-preserved task offloading in mobile blockchain with deep reinforcement learning | |
CN112202928B (zh) | 传感边缘云区块链网络可信卸载协作节点选择系统及方法 | |
CN112817653A (zh) | 一种基于云边端的联邦学习计算卸载计算系统及方法 | |
Zhan et al. | An incentive mechanism design for efficient edge learning by deep reinforcement learning approach | |
CN112367109A (zh) | 空地网络中由数字孪生驱动的联邦学习的激励方法 | |
Wang et al. | A novel reputation-aware client selection scheme for federated learning within mobile environments | |
CN111629380B (zh) | 面向高并发多业务工业5g网络的动态资源分配方法 | |
Nguyen et al. | Latency optimization for blockchain-empowered federated learning in multi-server edge computing | |
Song et al. | Adaptive federated learning for digital twin driven industrial Internet of Things | |
CN112395090B (zh) | 一种移动边缘计算中服务放置的智能混合优化方法 | |
CN114172937B (zh) | 基于深度强化学习的动态服务功能链编排方法及系统 | |
CN112637822B (zh) | 一种基于区块链的蜂窝网络安全交易平台 | |
Sethi et al. | FedDOVe: A Federated Deep Q-learning-based Offloading for Vehicular fog computing | |
CN115277689A (zh) | 一种基于分布式联邦学习的云边网络通信优化方法及系统 | |
CN113255004A (zh) | 一种安全且高效的联邦学习内容缓存方法 | |
Liu et al. | Fine-grained offloading for multi-access edge computing with actor-critic federated learning | |
CN116260871A (zh) | 一种基于本地和边缘协同缓存的独立任务卸载方法 | |
Li et al. | Learning-based hierarchical edge caching for cloud-aided heterogeneous networks | |
CN116669111A (zh) | 一种基于区块链的移动边缘计算任务卸载方法 | |
Allahham et al. | I-SEE: Intelligent, secure, and energy-efficient techniques for medical data transmission using deep reinforcement learning | |
Xiao et al. | Deep reinforcement learning for optimal resource allocation in blockchain-based IoV secure systems | |
Manzoor et al. | Federated learning empowered mobility-aware proactive content offloading framework for fog radio access networks | |
Jeong et al. | Deep reinforcement learning-based task offloading decision in the time varying channel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |