张云雷,李子昂,马骧尧,李冬艳
(1.华北科技学院 计算机学院,北京 东燕郊 065201 2.河北省物联网监控技术创新中心,北京 东燕郊 065201)
由于高校宿舍的特殊性,其用电安全是高校安全管理工作的关键部分。而空调用电在高校宿舍用电占比较大。因此,准确预测空调用电量对于用电安全防范、预防电路过载导致安全隐患变得尤为重要。对于高校宿舍而言,如何短期预测空调用电并合理规划用电计划,避免用电安全隐患,具有极为重要的经济价值。在实际运行中,预测准确度和稳定性往往是决定预测方法好坏的重要因素。
随着深度学习的发展,循环神经网络(Recurrent Neural Networks,RNN)[1]在时间序列数据预测方面已经展现出卓越的性能。RNN是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的神经网络,其在时间维度上进行展开,处理的是序列结构信息。RNN处理时序信息,若信息之间的依赖关系时间跨度过长,则造成学习能力下降,从而造成梯度消失或梯度爆炸[2]问题。
为了解决由于信息之间的依赖关系时间跨度过长造成的梯度消失或梯度爆炸问题,长短时记忆网络(Long Short-Term Memory,LSTM)[3]对循环神经网络的隐藏层做了改进,使其能处理长期依赖关系信息,LSTM在序列预测任务中表现出优异的效果[4]。该网络通过使用门结构控制记忆单元的读写操作,可以有效地捕捉时间序列数据中的长程依赖关系,具有良好的建模能力。然而,由于LSTM网络结构本身的限制,传统的单向LSTM网络在处理时间序列数据时,只能考虑到历史信息或者未来的信息。因此,单向LSTM网络可能会遇到一些问题,例如在预测时只能考虑到已知历史数据,不能很好地预测未来的数据。为了解决上述问题,提出了双向LSTM网络(Bi-directional LSTM,Bi-LSTM)[5]。Bi-LSTM网络由两个单向LSTM网络组成,分别从正向和反向处理输入序列。这样可以在每个时间步骤上同时考虑历史和未来的信息,从而提高模型对时间序列数据的建模能力。在预测时,Bi-LSTM网络能够综合利用历史和未来信息,使得模型在进行特征提取和拟合时具有更强的鲁棒性和可解释性,提高了模型的预测精度和稳定性。该方法能够有效帮助高校宿舍等公共场所管理部门更准确地预测空调用电量,提高用电计划的制定效率。同时,该方法还有助于优化能源使用结构,提高用电安全防范,预防电路过载导致安全隐患。本文的研究成果对于推动能源智能化和建设智慧高校具有重要的意义。
本文的主要贡献在于通过采集高校宿舍空调用电数据,建立了一个用于短期用电预测的数据集并使用Bi-LSTM网络提取用电量样本中的时序信息,并在模型中加入正则化避免出现网络退化问题。在此基础上利用该模型对未来一天的用电量进行预测,提高了模型的预测准确度和稳定性,同时为短期用电预测提供了一种新的思路和方法。在实际运用中,可以根据具体场景进行模型的参数调整和结构优化,以进一步提高模型的性能表现。
本文收集了高校宿舍空调用电数据,同时涵盖了室外环境因素的测量数据。这些测量数据包括房间标识、当日空调用电量、最高气温、最低气温、湿度和降水量等,总共收集了24万条原始数据。所有数据都是通过空调用电监测传感器和天气网接口获取,记录频率为1天。但由于实际采集数据中存在噪声和异常值(见图1),因此需要进行数据预处理和特征提取。本文首先对数据进行了负值的剔除,并对数据分布进行了判断,清除了存在异常值的数据。接着使用聚类算法对宿舍进行分类,并为了将数据规范化到相同的范围内,对数据进行了归一化处理。
图1 所有宿舍的每日用电量
图2 负数剔除后的用电量数据
在图1中可以看到,电量数据集中存在负值。在实际数据处理中,这些负值可能会导致不便或产生错误的结果。因此,一种常见的预处理方法是剔除负值并使用0进行填充,只考虑数据集中的非负部分。这种方法可以使数据处理更加便捷,同时避免错误结果的产生。在本数据集中,负数代表空调电费充值,由于充值行为由用户随机发起,且充值电量远远大于用电量,这些异常值会影响预测效果。因此,需要忽略这些数据,只关注实际消耗的电量,而不考虑损耗和电费充值。这种处理方法可以提高模型的稳定性和可靠性。
宿舍每日用电量情况如图3所示。通过观察该图,可以发现每日用电量在2度以内宿舍数量最多。进一步观察每日用电量0度至0.5度范围内的宿舍数量分布直方图,如图4所示,可以看到每日用电量小于0.05度宿舍数量极高,这是由于传感器计量误差所导致的。因此,为消除误差,本文将0.05度内的电量视为0度。此外,注意到图3中每日用电量大于24度的数据点分布过于稀疏,本文将其视为异常值,使用0值将其覆盖。
图3 宿舍用电量分布直方图
图4 宿舍用电量在0度至0.5度的分布直方图
即使在相同的气象条件下,由于不同的课程安排、寝室位置和寝室成员用电行为习惯的不同,导致不同宿舍的用电量也会有很大的差异。仅当模型学习到不同寝室的用电行为习惯时,才能做出较为准确的预测。如果直接把宿舍编号输入模型,模型会难以学习寝室号与具体用电行为习惯的对应关系。因此,本文首先使用聚类算法提取用电行为习惯,再以one-hot编码的形式添加到数据集中。
聚类算法对无标签的样本数据根据数据及其信息关系,对数据对象进行分组[6]。聚类的最终目的是使组内的对象之间相似,不同组中的对象之间有区别[7]。由于不同寝室的用电习惯各不相同,本文通过将宿舍109天内的用电量数据视为其用电习惯高维表示,并利用PCA[8-9]与t-SNE[10]将其从109维降至2维,之后使用KMeans将它们分为8个簇,如图5所示。
图5 用电行为习惯聚类
数据标准化处理是指将数据按照一定的比例缩放到某个特定区间内,使得不同量级的数据能够具备可比性。这一过程在数据处理和机器学习领域中被广泛应用,原因在于数据的量纲和范围差异大会影响到算法的性能,而数据标准化可以消除这些影响。
首先,不同特征之间的取值范围不同会对机器学习算法的训练产生负面影响。如果特征之间的取值范围不同,则不同特征对距离计算的贡献大小也不同,这会导致算法对某些特征过度依赖,从而影响其分类或回归的准确性。通过将不同特征的数据进行标准化,可以使得不同特征对算法的影响程度相等,使得算法能够更好地利用所有特征信息进行训练。
其次,数据标准化还有助于提高模型的收敛速度和稳定性。在模型的训练过程中,模型需要通过梯度下降等优化算法不断更新模型参数,如果特征之间的取值范围不同,优化算法就可能需要进行更多的迭代才能找到最优解。如果数据集中存在异常值或者极端值,这些值可能会对优化算法产生过大的影响,从而导致模型不稳定。通过将数据进行标准化,可以使得优化算法更快速地找到最优解,并且减少极端值对模型的影响,从而提高模型的收敛速度和稳定性。
由于数据集中的特定数据,如聚类后的类别数据,标准化会破坏掉原始信息的语义。因此,本文对聚类信息使用One-Hot编码,并且只对特定数据,如天气数据以及用电量数据进行标准化。标准化后的数据为:
(1)
式中,μ和σ分别是数据集的均值和标准差。
为了构建可用于短期用电预测的训练数据集,我们首先将单条数据所对应的各项特征拼接成一个向量,再将多条数据组成一个时间序列。本文采用时间步长为7的窗口进行训练。由于不同寝室的数据会相互干扰,因此需要确保在同一时间窗口中只包含同一寝室的数据。在每个窗口中,将第7个时间步中的用电量使用0进行遮盖,并将真实值放入训练标签中。此外,本文会检测在前6天中填充标记的数量,如果数量大于2,则该窗口被判定为有效信息含量过低,会被剔除出训练数据。
经过上述的负值剔除、异常值剔除、聚类以及剔除信息含量较低窗口这些数据预处理步骤后,我们得到了一个包含33551条数据的数据集。这些数据将用于训练和测试后续模型的效果。为了验证不同形式的数据集对训练效果的影响,我们在原始数据集基础上准备了四种变体,分别命名为数据集1、数据集2、数据集3和数据集4(详情见表1),并使用Bi-LSTM模型进行对比试验。
表1 四种数据集的结构
本文将每个数据集根据寝室进行划分,其中90%的数据用作训练集,剩余10%的数据则用作测试集。在训练过程中,采用时间滑动窗口进行训练,每个批次使用128个样本数据。
本文首先构建了Bi-LSTM模型并进行训练,使用Adam优化器和均方误差损失函数(MSE)对每个模型进行了80个轮次的训练。随后使用基于平均绝对误差(MAE)和MSE以及均方根误差(RMSE)的评估指标,评估了模型在测试集上的性能,并与其他模型进行了比较。计算式如下:
(2)
(3)
(4)
在图6中,xt为当前时刻t的输入,xt-1为前一个时刻的输入,ht和Ct都为隐藏层状态,其中Ct一般被称为细胞状态。LSTM隐藏层的三种门控结构可以帮助LSTM模型解决梯度消失问题,即遗忘门、输入门、输出门[11]。
图6 LSTM模型结构
(1) 遗忘门
遗忘门以一定的概率选择是否将先前的细胞状态遗忘,图6中遗忘门的输入为时刻t-1的隐藏状态ht-1和时刻t的输入xt,输出ft为遗忘上一个时刻细胞状态的概率。公式表示见式(5)。
ft=σ(Wf·[ht-1,xt]+bf)
(5)
(2) 输入门
it=σ(Wi·[ht-1,xt]+bi)
(6)
(7)
(8)
(3)输出门
输出门确定时刻t需要输出的值,图6中Ot可选择细胞状态的输出信息,ht则为输出门的输出。其公式表示见式(9)、式(10)。
Ot=σ(Wt·[ht-1,xt]+b0)
(9)
ht=Ot·tanh(ct)
(10)
Bi-LSTM模型不仅关注数据的正向特性,还考虑了数据的反向特性,因为用电数据具有非常明显的周期性和季节性。该模型由正向LSTM和反向LSTM组成,如图7所示。
图7 Bi-LSTM模型结构
Bi-LSTM的预测结果由两个LSTM的预测结果共同决定,正向LSTM从t时刻到t+n时刻正向计算一遍,并保存正向LSTM每个隐藏层的输出,反向LSTM从t+n时刻到t时刻反向计算一遍,并保存反向LSTM每个隐藏层的输出,Bi-LSTM模型的输出结合正向LSTM和反向LSTM相应时刻的输出得到最终的输出结果。
在进行用电量预测时,数据之间可能存在非线性关系,同时预测结果需要保证为正值。考虑这两个限制条件,本文使用ReLU(Rectified Linear Unit)作为最后一层的激活函数,参见式(11)。
ReLU激活函数的优点在于它简单高效。相较于Sigmoid和Tanh等其他激活函数,ReLU能够更快地计算和收敛,从而更好地拟合非线性数据,提高预测的准确性。在电力需求预测任务中,ReLU截取输入信号的负值记为零,只保留正值,符合预测结果必须为正的要求。
(11)
为了找到最佳的数据集和相应的最优Bi-LSTM模型,本文预先定义了模型超参数的搜索空间,见表2。为了确保模型的表示能力逐层递增,本文规定每一层的隐藏单元数量不得少于下一层的隐藏单元数。这样做能够避免网络中信息流动时产生较大噪声,同时使搜索空间更加合理,并减少不必要的模型超参数组合的数量,从而避免了不必要的超参数搜索。
表2 Bi-LSTM模型的超参数搜索空间
超参数搜索空间各自组合成唯一的模型架构,模型的其他参数见表3。
表3 模型其他参数/环境
在数据集1、2、3和4上,对上述模型分别训练80轮次,并测量每一种模型的测试最小MSE、最小MAE和最小RMSE。图8、图9和图10展示了不同数据集对于不同模型的测试最小MSE、最小MAE和最小RMSE的变化趋势。
图8 四种数据集在不同模型上的最小MSE变化趋势图
图9 四种数据集在不同模型上的最小MAE变化趋势图
可以观察到,在所研究的四个数据集中,数据集2和数据集4与数据集1和数据集3之间差异明显,表明当日用电量为零时将当日天气因素全部置零可以使模型抽取到更多的信息,从而降低模型损失。而数据集2与数据集4之间差异显著,这表明当日用电量为零时增加填充可以使模型学习到更多的信息。
数据集1与数据集3之间的差别较小,但数据集3相较于数据集1表现出更低的最小MSE、最小MAE和最小RMSE指标。这表明模型在当日用电量为零时将当日天气因素全部置零并增加填充标志的数据集3上整体具有更好的预测性能。
在数据集3中,表4所示模型在最小MSE、最小MAE和最小RMSE方面表现最优。该Bi-LSTM模型共包含3层网络,其中包括2层Bi-LSTM和1层Dense,Bi-LSTM分别包含了128个和64个Cell单元。样本从输入层进入网络后,通过2层Bi-LSTM和1层Dense后得到样本的回归值。为了防止过拟合,在每个Bi-LSTM中都设计了Dropout层,并以0.2的概率随机对权值进行丢弃。
表4 最优Bi-LSTM模型架构
寻找到合适的数据集以及模型后,接下来将使用最佳数据集3和最优模型(表4)进行模型训练、消融实验以及多模型对比。
使用最优模型对最佳数据集3进行80个轮次的迭代训练后,图11展示了训练损失和测试损失的结果。在50个轮次的训练之后,测试集上的平均平方误差MSE下降至2.14,平均绝对值误差MAE下降至0.79,均方根误差RMSE下降至1.46。与此相比,本文通过使用前一日结果作为预测值的基准线得到的MSE为16.5,MAE为2.22,RMSE为4.06。
图11 使用最优Bi-LSTM模型在数据集3上各损失曲线
经过测试,发现该模型相比基准值,MSE下降了87%,MAE下降了64.4%,RMSE下降了64%。这表明该模型具有较强的泛化能力,能够有效地预测宿舍的能耗情况。
消融实验目的是通过针对某个研究变量或因素进行系统性排除或削减,从而验证其对实验结果的贡献或作用。为此,本文采用与表4所示架构相同的Bi-LSTM模型进行训练。
本文准备三组消融实验:①组1将使用去除天气因素(最高温、最低温、降水、湿度)后的数据集进行训练;②组2将使用去除聚类类别数据后的数据集进行训练;③组3将使用1.4节的数据标准化流程来处理数据集进行训练。并将三组消融实验的模型与使用正常数据集进行训练的模型进行对比。其中MSE、MAE与RMSE如图12、图13、图14所示。
图12 消融实验测试MSE对比
图13 消融实验测试MAE对比
图14 消融实验测试RMSE对比
结果显示,在对数据进行标准化之后最小损失相对正常数据集变化较小,且仍不如正常数据集。这是因为该数据集并非正态分布,使用Z-Score后并没有带来更好的效果。去除天气因素和聚类类别因素后,效果变差的程度比较明显。这表明天气因素和类别因素在该研究中对实验结果有显著的影响,而聚类因素对实验结果的影响更大,比天气因素更加显著。
消除天气因素后,实验结果变差可能是由于天气对空调电量的影响很大。人们会根据气温变化使用空调,这会对实验结果产生重要的解释作用,因此不能忽略它的影响。同时,去除聚类类别因素后,实验结果变差也许是由于该因素对实验结果有明显的影响,去除后可能会导致实验结果误差增加。因此,在数据预处理中加入天气因素并进行用电聚类,会大大保证预测结果的准确性和可靠性。
除此之外本文还训练了决策树回归预测模型[13]、XGBoost树模型[14]、GRU模型[15]、SimpleRNN[16]模型、单向LSTM模型、全连接网络模型以及Transformer模型[17]。其中,GRU模型、SimpleRNN模型、单向LSTM模型以及全连接网络模型,都采用了与上文中寻找最优Bi-LSTM模型相同的方法和搜索空间分别进行最优架构搜索。Transformer模型则是使用逐参数搜索来寻找最优架构,并根据训练经验确定搜索空间,以模型的训练代价为准则确定超参数搜索顺序,具体搜索空间见表5。
表5 Transformer模型的超参数搜索空间
所有模型对比效果如图15所示。图15中Bi-LSTM即本文选用的和表4架构相同的模型。观察结果表明,通过Bi-LSTM模型进行预测所得到的损失值最低,且该模型的泛化能力最强。图16 展示了使用最优模型——Bi-LSTM进行的一次宿舍电量预测。从图中可以看到,模型的预测和真实用电趋势基本相同,两者的精度相差不大。因此,该模型表现良好。
图15 多种模型对比
图16 用电量预测示意图
(1) 通过对高校空调用电的数据进行预处理和特征提取,进一步使用Bi-LSTM循环神经网络进行训练和预测,该方法在预测准确度和稳定性方面都表现出显著的提升。在实际应用中,该方法可以帮助高校宿舍管理部门更精确地预测未来一天的空调用电量,进而有效管理用电计划和设备状态,实现安全管理和优化设备使用效率的目标。
(2) 本文提出的数据预处理方法和模型在预测高校宿舍能源消耗方面具有强大的能力,即使在数据较为有限的前提下也表现出了良好的效果,充分证明了该方法在实际应用中可行可靠,并具有广泛的应用前景。未来将进一步研究:如何将该模型方法应用于更广泛的场景,并结合其他方法进行更准确的电力预测;扩大数据集规模并优化模型参数和结构,以提高模型的预测能力和性能。