“具有分布式能源资源的多个智能家庭的能源管理的联邦强化学习”文章学习四——基于联邦深度学习的多智能家居能源管理

一、用于家庭能源管理的 FRL 算法

在本节中,我们将阐述提出的FRL算法(算法1),该算法以分布式方式调度多个智能家庭的能量消耗。在提出的FRL框架中,LHEMS和GS相互迭代并有效训练LHEMS的模型。我们考虑了由LHEMS控制的空调、WM和ESS的三个DRL智能体。我们考虑的是在连续动作空间中由相应的智能体安排空调、WM和ESS的能量消耗的情况。为此,我们在每个智能体的学习过程中采用了A2C方法,该方法在第二节B部分中介绍过。假设所有智能体同时启动学习过程。每个智能体都从由神经网络(即演员网络)产生的均值和方差中选取其行动,并从由此产生的分布中采样随机行动。此外,智能体增加了神经网络,即批评家网络,以接收Q(st, at)并计算A(st, at)以提高模型性能。在完成本地训练过程后,每个智能体将其训练过的模型发送到GS。需要注意的是,智能体们共享他们自己的训练模型(例如神经网络的权重),但并不共享用于训练的私有数据。在将本地训练的模型传递到GS之后,它们被存储在GS中的一批数据中。GS利用存储在一批中的所有LHEMS的智能体训练模型生成全局模型。在本研究中,我们采用了FedSGD算法[15]以及自适应矩估计(ADAM)优化算法[26]来构建全局模型。最后,产生的全局模型同时分发给所有LHEMS中的智能体。智能体们同步重新启动使用给定的全局模型的学习过程。

最后,在算法1中,多个智能家居的能源管理总体学习过程可以描述如下:

首先,基于每个家庭环境的家电能源需求和不满参数被初始化(第1行)。

第二,Q值Q(st, at)、优势A(st, at)、行动概率p(st, at)以及演员和评论家网络的权重θ被初始化(第2行)。

第三,GS的全局模型ωG以及共享批次φ被初始化。它们被用于生成和广播最优全局模型给LHEMSs(第3行)。

第四,对于每个通信回合和本地训练剧集,每个设备的智能体重复以下过程,从初始时间步(t = 1)找到其最优能源消耗计划直到最终时间步(t = 24)(第7-12行)。

a)对于设备智能体的状态st,根据演员网络产生的均值和方差产生的分布,从样本行动中找出行动at(第8行)。

b)计算上一步选择的行动at,从行动中获得奖励Rt,并用Q(st, at)和状态V(st)的值计算A(st, at),以更新演员网络(第9行)。

c)估计TD目标值TDt,它是V(st)的目标估计,通过TD方法(第10行)。

d)计算演员和评论家网络的损失函数,并使用ADAM优化器ϕ更新LHEMSn的模型ωn(第11,12行)。

第五,每个LHEMSn发送其在每个本地训练剧集期间生成的本地方案模型ωnnew给GS, GS将其存储在φ中(第15行)。

第六,GS通过使用存储在批次中的模型权重执行FedSGD来生成新的全局模型ωGnew(第17,18行)。

第七,新生成的全局模型ωGnew被分配给所有的LHEMSs,它们根据ωGnew训练自己的本地模型(第19,20行)。

二、仿真设置

我们考虑了四户家庭,他们有工作机械(WM)、空调(AC)和储能系统(ESS),规格各不相同,如表II所示。在图3(a)的TOU关税以及图3(b)的预测室外温度和图3(c)的光伏发电能量下,工作机械、空调和储能系统的操作由提出的HEMS控制24小时,1小时调度解析度。在每个家庭中,假定工作机械在一天内连续运行2小时。最初的、最低的和最大的SOE值分别设定为SOEmax的50%、10%和100%。工作机械和储能系统的不满意成本惩罚分别为(δ=80, δ=80)和(τ=150, τ=150)。提出的A2C模型包括一个带有256个神经元的公共主体网络的三个隐藏层,即每个演员和评论家网络带有128个神经元的单个隐藏层。提出的A2C方法体系结构如图4所示。使用双曲正切函数作为传递函数。此外,使用ADAM优化算法[26]训练基于深度学习的本地HEMS模型,学习率为0.00001。我们假设在本地HEMS的训练每100次迭代后,发生一次本地HEMS和全局HEMS服务器之间的通信。使用Python 3.7.0和ML包pytorch 1.1.0进行模拟研究。

相关推荐
深度学习实战训练营37 分钟前
基于CNN-RNN的影像报告生成
人工智能·深度学习
秃头佛爷2 小时前
Python学习大纲总结及注意事项
开发语言·python·学习
dayouziei4 小时前
java的类加载机制的学习
java·学习
dsywws7 小时前
Linux学习笔记之vim入门
linux·笔记·学习
孙同学要努力8 小时前
全连接神经网络案例——手写数字识别
人工智能·深度学习·神经网络
晨曦_子画8 小时前
3种最难学习和最容易学习的 3 种编程语言
学习
城南vision8 小时前
Docker学习—Docker核心概念总结
java·学习·docker
ctrey_9 小时前
2024-11-1 学习人工智能的Day20 openCV(2)
人工智能·opencv·学习
十年之少9 小时前
由中文乱码引来的一系列学习——Qt
学习
sniper_fandc10 小时前
深度学习基础—循环神经网络的梯度消失与解决
人工智能·rnn·深度学习