1.一种面向城市分级协同供水的多区域需水量预测方法,其特征在于,包括以下步骤:S1,构造HFL模型:基于水务公司整体的供水管网分布以及地理特征,采用聚类算法将整个区域下的各节点划分为L层对象:顶层为中心参数服务器CPS、中间若干层为区域参数服务器RPS、底层为客户client;顶层只有一个节点CPS,其余每层均包含若干个节点,上下层级的节点之间是一对多的关系;
S2,将水务公司的用水数据输入HFL模型进行训练,所述用水数据为时序数据:S2‑1,提取出各client节点数据的公共特征,初始化一个全局模型参数w0;
S2‑2,将w0广播至RPS,各RPS节点将w0下发至对应的client,各client节点基于本地数据集和w0会立即开始本地模型训练;
S2‑3,当client完成训练后,将基于Lora无线传输协议将本地模型参数上传至RPS,RPS端按照接收参数的先后顺序,将来自client的本地模型参数存放在本地的缓存区;
S2‑4,当client完成设定的本地迭代训练次数时满足聚合条件,RPS将采用FedAvg算法聚合得到区域模型 当RPS所执行的区域聚合次数达到设定的区域聚合次数时,RPS将开始基于自身的用水量数据迭代训练区域的LSTM模型,当训练次数达到设定的区域迭代训练次数时,得到区域更新;
S2‑5,RPS每一回合的迭代训练执行完成后,RPS仍需将自身的模型参数上传至上级节点CPS,当RPS完成设定的迭代训练次数时满足聚合条件,在CPS中聚合得到全局模型;
S3,将待测数据输入训练好的HFL模型,得到预测结果。
2.根据权利要求1所述的一种面向城市分级协同供水的多区域需水量预测方法,其特征在于,所述本地迭代训练用以下公式表示:其中H interations表示H次本地迭代;
表示索引为k的client节点在第r轮经过H次本地迭代后得到的本地模型参数;
η是学习率;
表示梯度值;
w0表示初始模型参数。
3.根据权利要求1所述的一种面向城市分级协同供水的多区域需水量预测方法,其特征在于,所述采用FedAvg算法聚合得到区域模型 的公式如下:其中 表示索引为s的RPS节点,在第r轮的初始模型参数;
αc表示被选择参与第r次聚合任务的clients比例,K表示clients的总量;
Dk表示客户端k的数据集大小;
表示第r次聚合任务,αcK个客户端的总数据集大小;
表示索引为k的client节点在第r轮经过H次本地迭代后得到的本地模型参数。
4.根据权利要求1所述的一种面向城市分级协同供水的多区域需水量预测方法,其特征在于,所述聚合还包括:在RPS针对client和CPS针对RPS执行聚合操作时会根据无线IoT网络的连接状态,选择同步聚合或异步聚合,具体操作如下:由AM监控层次间最近一次通信时延Q,当Q大于设定的时延阈值T时,则表示当前的通信质量欠佳,采用异步聚合,反之采用同步聚合。
5.根据权利要求4所述的一种面向城市分级协同供水的多区域需水量预测方法,其特征在于,当使用所述异步聚合时,每个被服务端接收的节点模型参数 将按照公式(6)的方式进行修正后,再执行参数聚合,以减缓时效性较差的节点对聚合模型的影响;
其中, 表示索引值为k的设备在第r轮经过H次本地迭代后得到的本地模型参数;
为用于衡量索引值为k的设备所对应的模型参数在第r次聚合的时效性参数;
表示第r‑1次区域聚合后的区域模型。
6.根据权利要求1所述的一种面向城市分级协同供水的多区域需水量预测方法,其特征在于,所述RPS的训练过程中还包括:采用MSE损失函数用于衡量设备自身在模型训练过程中的预测值与真实值之间的差异,其中全局损失函数为:其中w表示任一RPS节点本地模型的参数;
αs表示被选择参与聚合任务的RPS比例,S表示RPS的总量;
Ds表示索引值为s的RPS拥有的数据集大小;
t
D表示第t轮多个RPS所拥有数据集的并集的大小;
Fs(w)表示索引值为s的RPS对应的本地损失值。
7.根据权利要求1所述的一种面向城市分级协同供水的多区域需水量预测方法,其特征在于,当HFL模型为3层时,client k的本地权重 在整个HFL模型中的变化过程如下所示:其中, 为索引值为k的设备在第r轮经过i次本地迭代后得到的本地模型参数;
为索引值为k的设备在第r轮经过i‑1次本地迭代后得到的本地模型参数;
η是学习率;
表示梯度值;
r|κ1≠0表示κ1无法整除r,即当前应继续在本地进行迭代训练;
αc表示被选择参与第r次聚合任务的clients比例,K表示clients的总量;
Dk表示客户端k的数据集大小;
表示索引值为k的设备在第r轮经过H‑1次本地迭代后得到的本地模型参数;
Γs表示αcK个客户端数据集的并集大小;
r|κ1=0表示κ1可整除r;
αs表示被选择参与聚合任务的RPS比例,S表示RPS的总量;
Ds表示索引值为s的RPS拥有的数据集大小;
D表示所有RPS数据集大小的总和;
r|κ1*κ2=0表示κ1*κ2可整除r;
t|κ3=0表示κ3可整除t,t表示RPS所经历的训练轮次;
κ1表示client的迭代训练次数;
κ2表示RPS需要完成区域聚合次数;
κ3表示RPS的迭代训练次数。