刘洋,王剑,唐明,张宇栋
(1.中国民用航空飞行学院 航空电子电气学院,广汉 618307;2.清华四川能源互联网研究院,成都 610200;3.国家电网公司西南分部,成都 610095)
电力物联网是推动发电、售电、用电等多环节全时空全面互联,打造出的一个智慧电网共享平台[1]。该平台充分利用“大云物移智链边”等新技术,将所有与电相关的设备连接起来,既包含了电力能源的互联互通,又包含了通信数据的互联互通[2]。
电力物联网将会连接海量的电力实体,在感知层利用各种传感器采集与电力相关的信息与状态,可以预见数据的体量以及维度将呈爆炸增长趋势;应用层作为电力物联网的核心目标,需要从海量的数据中,及时、准确地提取出有效信息,为电力用户、售电公司、发电企业等提供控制与决策支持[3]。面对海量数据的快速存储与高效分析,需要先进的通信技术、大数据技术以及人工智能方法等作为支撑。随着电力物联网建设不断深入,应用层对用户的管理日趋精细化,从海量用电数据中挖掘电力用户的用电模式,针对普通用户提供智慧用电解决方案,有助于售电公司建立基于电力物联网的全新营销服务模式,并提升用户侧在电力市场行为交易的参与深度以及互动程度[4-5]。
用电模式提取作为负荷数据挖掘领域的一个传统研究方向,长久以来专家学者对此已开展了大量研究,并取得丰硕成果。传统方法分为无监督聚类与有监督分类,前者多采用K-means、模糊C均值(fuzzy c-means, FCM)等各种聚类方法为基础,后者较常用人工智能神经网络作为负荷分类方法[6-9]。聚类算法不适用于异常值较多的数据类型划分,且往往需要根据经验指定类别数目,缺乏有效依据;BP(back propagation)神经网络虽然具有较好的效果,但是这些分类方法仅从数学层面训练了负荷曲线与类别标签之间的映射关系,而忽略了负荷数据的时序相关性。此外,神经网络在面对海量数据的时候,分类效率将受到严重影响。
为此,采用分布式存储、并行计算方式处理电力物联网背景下的海量数据,提出一种基于Hadoop分布式计算平台的混合神经网络分类模型。考虑到负荷数据的时序特性,使用一维卷积神经网络(one-dimensional convolutional neural network,1DCNN)搭建“负荷特征提取器”,使用长短期记忆网络(long-short-term memory network,LSTM)搭建“序列分类器”,二者共同构成“混合神经网络负荷分类模型”,解决负荷分类效率低、精度低等问题,以应对爆炸式增长的电力负荷数据带来的挑战。
电力负荷数据属于时间序列数据,智能测量仪表以特定的时间间隔采集电力数据,如1 d采集24个数据或者96个数据,甚至更多。因此,负荷曲线的表示形式可以用式(1)表示,数据具有明显的时序特性。
(1)
式(1)中:xk为第k条负荷数据;上标m为一条曲线共采集m个负荷数据点;上标i为1 d中采集的第i个电力数据。
对于每一条负荷曲线,包含一个类别标签。
yi={c}
(2)
式(2)中:yi为第i条负荷曲线所属的类别;c是一个实数,表示负荷类别,取值范围是[1,n],其中n为负荷类别数。
时间序列分类是时序数据挖掘研究的热点问题。不同于传统分类研究,由于时间序列数据具有非离散性以及时序相关性等特点,时序分类研究需要考虑序列元素的前后依赖关系[10]。常规的时序数据分类方法通常需要进行复杂烦琐的特征工程处理,对提取的序列特征再进行分类。
近年来,深度学习技术发展迅猛,不少学者将卷积神经网络(convolutional neural network,CNN)与循环神经网络(recurrent neural network,RNN)进行结合,用于处理序列数据,并取得了良好的效果[11-12]。在机器学习领域,研究人员提出一种CNN-RNN网络模型,使用CNN提取图片特征,再利用RNN生成图片文字序列[13]。基于此,提出一种“1DCNN-LSTM混合神经网络分类模型”用于时序负荷数据分类。
卷积神经网络是一种用于处理具有类似网状结构数据专用的神经网络,如时间轴上进行采样形成的一维时序网格和二维图像像素网格[14-15]。卷积神经网络的一个重要应用领域为图片分类,该模型利用叠加卷积层(Conv)与池化层(Pool)提取图像特征,全连接层(FC)根据所提取的特征对图像进行分类,如图1所示。
Reshape为整形
一维与二维卷积网络类似,其主要区别在于一维卷积网络对应输入一维序列数据,使用一维卷积核,只在一个维度上进行卷积操作,如图2所示。使用1DCNN构建负荷“特征提取器”,用于提取负荷数据的分类特征,后续用于循环神经网络“分类器”,对时序负荷曲线进行分类。
图2 一维卷积操作
普通的循环神经网络在用于处理序列数据时,无法解决长期依赖问题,并且由于梯度弥散问题使得模型难以训练[16]。而为此所提出的LSTM网络,解决了此问题并且使网络容易训练[15]。
LSTM网络在普通RNN的基础上,引入了“门”机制,来选择“记住”或者“遗忘”某个时刻的状态信息。LSTM神经网络的细胞单元由“遗忘门”“输入门”和“输出门”组成[2]。
(1)遗忘门。遗忘门对前一个时刻传递进来的细胞状态进行选择性遗忘。如图3所示,根据t-1时刻的隐藏状态ht-1以及t时刻的输入向量xt计算遗忘门ft(使用σ函数获得0~1的取值,1表示“完全记忆”,0表示“彻底遗忘”),由ft控制更新t-1时刻的细胞状态Ct-1。
ft=σ[Wf(ht-1,xt)+bf]
(3)
it=σ[Wi(ht-1,xt)+bi]
(4)
(5)
遗忘门处理后的细胞状态与输入门选择后的细胞状态进行合并,作为t时刻的最终细胞状态Ct,并传递给下一时刻。
(6)
(3)输出门。LSTM细胞单元t时刻的输出ht由细胞状态Ct与输出门ot共同决定。
ot=σ[Wo(ht-1,xt)+bo]
(7)
ht=ottanhCt
(8)
式中:Wi、Wo、Wf、WC为不同门控机制对输入向量xt的权重;bi、bo、bf、bC为偏置向量。
所提的1DCNN-LSTM混合神经网络如图3所示,模型的核心为卷积层和LSTM层,卷积层与后接的全连接层组成一个“1DCNN特征提取器”,用于从原始负荷曲线中提取负荷特征;LSTM层与后接的全连接层构成一个“LSTM序列分类器”,根据提取的负荷特征进行分类,得到负荷曲线的分类结果。
图3 1DCNN-LSTM混合神经网络模型
2.3.1 1DCNN特征提取器
所用一维卷积神经结构如图4所示,输入的序列数据经过两次卷积(Conv)、最大池化(MaxPool)操作,整形(Reshape)为一维特征向量,最后使用一个全连接层(FC)进行降维处理。每个卷积步骤中,还包含了一个批量标准化(batch-normalization, BN)操作与ReLU激活函数[17-18]。
图4 1DCNN特征提取器
(1)batch-Normalization。batch-Normalization算法对中间计算数据进行标准化处理,加速网络收敛速度,降低网络对权值初始化的敏感度,算法描述如下。
输入:小批次输入X={x1,x2,…,xbatch-size}待学习的参数:γ、β输出:{yi=BNγ,β(xi)}μX←1batch-size∑batch-sizei=1xiσ2X=1batch-size∑batch-sizei=1(xi-μX)2^xi=xi-μXσ2X+εyi=γ^xi+β≡BNγ,β(xi)
(2)ReLU。为避免出现梯度消失或是梯度爆炸,采用ReLU激活函数对Batch-Normalization后的数据进行处理,ReLU激活函数可表示为
(9)
2.3.2 LSTM序列分类器
LSTM序列分类器结构示意图如图5所示,使用单层的LSTM网络结构,输入1DCNN提取的序列特征,在最后一个隐藏单元输出分类结果。
图5 LSTM序列分类器
随着电力数据体量的急剧增长,为了处理呈爆炸增长的负荷数据,特选用分布式大数据平台Hadoop作为计算框架。将混合神经网络分类算法在Hadoop平台并行化,使得所提分类算法具备更加高效的大体量数据计算能力。
3.1.1 Hadoop分布式文件系统(HDFS)
HDFS(Hadoop distributed file system)是Google文件系统(google file system,GFS)的实现,是基础分布式计算数据存储管理系统。该系统采用流式文件访问方式,具有高容错性、高可靠性、高吞吐量等特点,该系统结构如图6所示。
图6 HDFS结构
HDFS是一种主从存储结构,其NameNode管理整个系统的命名空间、管理数据块映射信息并处理Client读写请求;DataNode则负责存储数据块,并执行读/写操作。
3.1.2 MapReduce工作流程
MapReduce计算过程分为Map阶段和Reduce阶段,计算模型如图7所示。该计算框架对输入数据进行划分(split),不同的数据分块交由对应的“Map作业”进行计算处理,“Reduce作业”对“Map作业”的结果进行汇总、排序处理,得到最终计算结果(Final result)。
图7 MapReduce计算模型
将所述的混合分类模型在Hadoop平台并行化。采用随机抽样方式,将负荷数据分块存储到分布式文件系统;基于MapReduce计算模式,“Map作业”在各节点并行训练子分类模型,“Reduce作业”则根据各子分类器的分类结果,使用“多数投票方式”得到最终的负荷曲线分类结果。该分布式集成分类模型结构如图8所示。
图8 分布式集成分类模型
首先在单机实验环境对“混合神经网络”分类方法的正确性进行验证,并对比传统方法分类效果,验证该方法的优越性。其次,在分布式实验环境对基于Hadoop平台的分布式集成分类模型的有效性以及高效性进行测试。
测试环境分为单机环境以及分布式环境,单机环境为单台普通PC;分布式环境为3台虚拟机配置的Hadoop平台,所用Hadoop版本为2.9.1。实验硬件配置如表1所示。
表1 实验硬件配置
在单机模式下使用标准数据集以及少量真实负荷数据对本文所提分类模型的效果进行测试。
4.1.1 UCR时间序列分类实验
(1)UCR时间序列数据。使用带类别标签的UCR时间序列数据来验证所提混合神经网络分类模型的有效性以及高效性。UCR时间序列数据包含了多个领域的时间序列基准数据集,是时序数据分类领域的标准数据集之一,采用其中与电力负荷有关的两个数据集(ItalyPowerDemand、PowerCons)进行实验。这两个数据集的数据格式如表2所示。两个数据集的平均数据曲线如图9所示。
图9 UCR平均数据曲线
表2 UCR数据集
(2)实验结果。使用ItalyPowerDemand(简称IPD)与PowerCons(简称PC)两个标准时序数据集测试本文所提的混合分类模型,对比普通一维时序CNN和LSTM分类模型的分类精度与模型训练效率,实验结果如表3所示。
表3 UCR数据实验结果
对比CNN和LSTM分类模型,在UCR标准时序数据集上,混合神经网络模型在准确率以及模型训练迭代次数两方面都有较明显的优势。
4.1.2 爱尔兰负荷数据实验
(1)数据预处理。爱尔兰用户用电数据是由爱尔兰可持续能源管理局(Sustainable Energy Authority of Ireland, SEAI)所发布的实测用电数据。对爱尔兰负荷曲线进行标准化处理,并采取均匀采样的方式从负荷曲线中抽取24个负荷数据。由于爱尔兰开源负荷数据缺乏原类别标签,采用典型聚类方法对爱尔兰负荷数据进行划分,选取5类负荷曲线分别记为“类别1”“类别2”“类别3”“类别4”“类别5”,以此构成算例所用带标签的爱尔兰负荷数据,并按7∶3的比例划分训练集与测试集,各类别负荷曲线趋势如图10(a)所示。
使用提取的部分爱尔兰负荷数据进行实验,测试本文所提混合神经网络模型的有效性,并与普通CNN与LSTM进行对比。
(2)1DCNN负荷特征提取器。将经过预处理的爱尔兰负荷数据输入混合神经网络训练分类模型。负荷数据首先经过一个一维时序卷积神经网络处理,提取时序负荷数据的分类特征,5个类别的负荷曲线及其所对应的分类特征如图10(b)所示。
图10 负荷曲线及其分类特征
负荷曲线数据经过1DCNN处理之后,得到的特征曲线在时间维度上具有了更为明显的分类特征,有利于LSTM分类器进行分类。
(3)1DCNN-LSTM分类效果。使用1DCNN、LSTM以及所提的混合神经网络分类模型分别对提取的爱尔兰负荷数据进行分类实验。对比3种模型在模型训练迭代过程中的误差与准确率变化趋势,并使用混淆矩阵作为混合神经网络模型在测试集上的评价标准。
训练误差变化:3种分类方法训练阶段误差与迭代次数变化关系如图11所示。3种分类模型的训练误差都能在有限的步骤内收敛,其中1DCNN和混合模型网络模型的误差波动范围相较LSTM更小,混合模型具有最快的误差收敛速度。
图11 训练误差对比
训练准确率变化:3种分类方法训练过程的分类准确率与迭代次数变化关系如图12所示。3种方法经过训练都能得到非常好的分类精度,然而1DCNN与LSTM的准确率具有较大的波动性,收敛迭代次数也明显高于混合模型。
图12 训练准确率对比
测试集混淆矩阵:混淆矩阵是表示和评估分类算法准确度的一种常用形式,其对角线元素表示预测类别等于真实类别的样本数目,非对角线元素是分类算法错误标记的样本数目;对角线元素数值越大、非对角线元素数值越小则表明分类模型的分类效果越好。所提的混合神经网络分类模型应用于爱尔兰负荷数据测试集的混淆矩阵如图13所示。可以看出,分类结果中,类别1和类别3各错分一条负荷曲线,分类准确率为99%。
图13 混淆矩阵
在Hadoop平台使用海量负荷测试集成分布式分类方法的有效性。从类别1、类别2、类别3、类别4、类别5共5类负荷中选取10 000条曲线用于算法测试,其余曲线用于算法训练。在单机计算与分布式计算模式下分别进行负荷分类,测试集在单机模式下的分类准确率为94.23%,在分布式计算模式下分类准确率为95.78%。并行化方法不仅能够提高负荷数据的分类精度,并在计算效率上有着极大的提升。
4.2.1 并行训练结果
该集成分布式分类模型在计算过程分配了4个“Map作业”,训练出了4个子分类器,各分类器的分类准确率为95.28%、95.76%、95.84%、94.80%。
由于采取随机抽样将爱尔兰负荷存储到HDFS上,数据块之间的差异性不大,因此每一个“Map作业”所训练的子分类模型的误差精度差别较小,且都保持较高的分类精度。实验表明该混合神经网络分类方法在Hadoop平台并行化之后,对于海量负荷数据具有较好的分类效果。
4.2.2 计算效率对比
为了对分布式并行化计算的效率进行测试,使用等量的海量负荷数据、相同的分类模型,分别在“单机串行计算模式”与“Hadoop分布式并行计算模式”下分别进行实验,统计不同模式下计算所用时间,实验结果如图14所示。
在数据体量较小时,由于Hadoop平台存在通信延迟以及固有系统开销,两者的计算时间花销均很低且差异不大,串行计算效率甚至会高于并行计算效率;但随着数据量的扩增,并行计算效率优势逐渐显现,当数据达到一定体量时,串行计算无法继续进行;此外,通过合理设置Hadoop集群节点数量,计算效率优势将会更加明显。
提出一种基于Hadoop分布式计算平台的混合神经网络分类模型,基于1DCNN搭建“负荷特征提取器”,使用LSTM搭建“序列分类器”,提出了一种时序负荷数据分类方法;在Hadoop平台上将该分类模型并行化,为电力物联网背景下的海量负荷的快速存储与高效分析提供一种解决思路。
通过算例分析,本文所提分类方法对于时序负荷分类有着良好的效果,能够高效处理海量负荷数据,并且并行化分类结果有着较高的可信度。