基于TensorFlow 框架的改进BP 户变关系识别方法
2021-09-05孙志达吴栋萁李海波
杨 涛,孙志达,唐 明,吴栋萁,王 剑,李海波,雷 一
(1.国网浙江省电力公司电力科学研究院,杭州 310014;2.清华四川能源互联网研究院,成都 610200)
0 引言
精确的户变关系是电网公司实现营销精细化、降损增效的基础,也是保证线损准确计算的前提。电力系统配电网环节的用户供电档案和台区供电关系错乱,会导致台区线损率分析、故障定位等一系列应用无法有效开展。目前电网公司梳理台区户变关系的主要方式依旧是人工巡查或借助台区贯通仪等专用设备[1-4]来识别台区信息,由于载波信号仍可耦合到其他变压器产生跨台区通信等难题,使得台区识别准确度较低,此外需要在线路上加装采集器等硬件,全面部署受成本条件限制。
部分学者利用智能电表量测数据开展户变关系研究。文献[5]基于用户电压数据与变压器低压测量数据的相似度,利用灰色关联方法识别用户所属台区及相别。文献[6]利用电压时空相关性,对用户所属台区进行分类判别。文献[7]提出基于台区相线相位差异的统计特征判定用户台区归属。上述研究指出相同户变关系的电压数据在时空上的相关性,表明通过数据层面识别户变关系的可行性,但在适用性方面还需继续研究。此外,上述研究所使用的电压数据在维度上和体量上各不相同,但总体数据样本不大,如何利用积累的海量电压数据,挖掘有用信息以准确识别户变关系还未见相关报道。
随着数据挖掘和机器学习技术的不断发展,人工智能神经网络算法被广泛用于模式识别、聚类和分类等场景,其中BP(反向传播)神经网络具有极强的函数逼近与模式分类能力,广泛用于负荷预测、负荷分类[8-10]等领域。文献[11]采用并行集成BP 算法对海量负荷数据进行高效分类;文献[12]采用BP 算法将台区样本分类,解决了台区线损率数值分散的问题;文献[13]提出一种基于模糊聚类与改进BP 算法的负荷特性曲线分类方法;文献[14]选取隐藏层节点数为6 的前向BP神经网络作为跨台区用户识别模型进行识别。然而传统BP 算法使用梯度下降方法优化神经网络参数最小化损失函数loss,虽然实现简单,但是容易收敛到局部最小值点,并且在处理高维度数据集时速度慢、效率低。同时,由于多隐含层、多节点BP 算法的复杂性,构建BP 算法的计算过程需要耗费大量时间,BP 算法的运行效率较低,一般采用优化算法对传统BP 神经网络进行改进,例如MOBP,VLBP,CGBP,LMBP[15],IGRA-BABP[16],MPSO-BP[17],IFOA-BP[18],主要集中在学习参数的选取、网络结构、收敛性方面的改进,总体上取得了一定的效果,但仍存在计算复杂、增加较多额外计算量的问题。
Adam(自适应矩估计)优化算法通过计算梯度的一阶矩估计和二阶矩估计为不同的参数设计独立的自适应性学习率[19],Adam 算法有很高的计算效率和较低的内存需求。同时,针对电压数据全正的特性,可以进一步采用零均值化优化[20],使网络参数的更新方向不再仅决定于梯度的符号,可在一定程度上加速神经网络迭代收敛速度,从而提高效率。
TensorFlow[21]是目前使用广泛的深度学习框架之一,可简化深层神经网络的构造过程,在一个非均匀分布的计算环境下加速学习过程,有助于大规模求逆问题和局部差分求解。TensorFlow采用数据流图来表示和组织计算,在TensorFlow 框架上部署BP 可显著加速求解过程,提高运行效率。
本文提出一种基于TensorFlow 框架的改进BP 户变关系识别方法,旨在从电压数据层面挖掘潜在的户变关系。通过基于形态相似指标的K-means 算法对历史用户电压数据形态聚类,将各类簇与其所对应的变压器相别匹配,添加类别标签构建BP 的电压数据训练样本;在TensorFlow框架上实现零均值优化和Adam 优化对BP 改进,通过对部分训练样本学习,进而对当前的用户日电压曲线进行分类,识别所属变压器和相别。
1 台区电压数据的相关性
典型的低压配电系统变压器和用户连接关系如图1 所示。10 kV 等级线路经过接入的10/0.4 kV 配电变压器降压到380 V,配电变压器的低压出口相分别连接到各个用户,三相负荷总体平衡,一个供电台区根据负荷的大小可能有多个配电变压器供电。
由图1 可知,户变关系由用户和变压器的连接关系唯一确定。图2 为相同户变关系的变压器-用户连接等效电路图,设变压器出口相电压为u0,则用户n 的电压un可表示为:
图1 变压器和用户连接关系示意图
图2 同一变压器出口相线上等效电路
式中:Z0为变压器至用户的线路阻抗(R0和X0分别为电阻和电抗);Zn为用户等效阻抗(Rn和Xn分别为等效电阻和等效电抗)。
相对于高压和特高压输电线路,低压配电线路的电抗参数远小于电阻参数,即R0≫X0,Rn≫Xn,故式(1)可进一步表示成:
根据式(2),同一变压器出口相线上各用户之间的电压近似线性关系,具有相同的变化趋势。
图3 展示了某小区2 个供电台区A 相10 个用户电压数据,数据采集间隔为30 min,可以明显看到同一供电台区、同一相线上的电压数据变化趋势相同,而不同台区间电压数据变化趋势没有较强的相关性。因此,通过分析电压数据的变化趋势、形态相似性等特征,可以挖掘出对应的户变从属关系。
图3 电压数据的时间相关性
2 基于形态相似性的历史用户电压数据聚类
BP 算法具有较强的模式识别能力,但需要大量训练样本的支持。为了能对各个变压器所连接的所有用户进行区分,首先对部分历史数据聚类,由聚类结果匹配变压器相序,从而构建出BP算法的训练样本。
聚类算法大多以ED(欧式距离)为相似性指标对数据向量进行聚类[22-25]。然而,随着配电线路长度不同,变压器与用户间的阻抗大小不同,变压器出口电压值与用户电压数据存在偏差,而电压数值的高低变化和增减趋势却十分一致。提出一种基于Spearman 形态相似性指标的K-means聚类算法,对用户历史日电压数据进行形态相似性聚类,并对类簇匹配变压器及相别,为分类算法提供训练样本。
2.1 形态相似性
Spearman 相关系数是统计学中利用单调方程评价两个统计变量的相关性指标,表示两个独立变量的相关方向,Spearman 系数表明独立变量X 和依赖变量Y 的相关方向。若当X 增加时,Y趋向于增加,则Spearman 系数为正;若当X 增加时,Y 趋向于减少,则Spearman 系数为负。Spearman 系数为零,表明当X 变化时Y 没有任何趋向性。当X 和Y 越接近完全的单调相关时,Spearman 系数的绝对值会增大;X 和Y 完全单调相关时,Spearman 系数的绝对值为1。其计算公式为:
式中:ρ 表示任意两向量间的Spearman 系数;D为向量维度;dt为两向量中元素排序差分集合。
2.2 基于Spearman 互相关系数的K-means聚类
K-means 聚类具有对少量数据聚类收敛速度快、聚类复杂度低及可扩展性好的优点,通常以ED 作为样本间相似性评价指标来进行簇中心初始化、簇划分、簇中心点更新与收敛判断。本文将处于同时刻具有相同上升或下降趋势的用户日电压曲线分为同一类别,以Spearman 互相关系数作为相似性评价指标,代替ED 对用户历史电压曲线进行聚类,具体步骤如下:
(1)步骤1:簇中心初始化。为防止初始类簇中心随机选取存在偏差,将各变压器出口电压曲线作为初始类中心M={M1,M2,…,MK}。
(2)步骤2:簇划分。按照式(3)计算每个用户日电压曲线与类中心的Spearman 互相关系数,并将各对象分配给相似性更高的类中心,形成K个类簇。
(3)步骤3:簇中心点更新。按照式(4)计算各类簇中每个电压曲线与其所在类内所有数据向量的相似度之和,选取与类内其他所有数据向量相似度最高的电压曲线作为类簇中心。
注:ρ∑为某一电压曲线与其所在类所有数据向量相似度之和;N 为该类向量个数。
(4)重复步骤2、步骤3,直到类簇中心不在发生变化或达到最大迭代次数时结束。
3 基于TensorFlow 的改进BP 分类算法
3.1 TensorFlow 架构
TensorFlow 是谷歌公司于2015 年11 月开源的深度学习框架,同时也是目前广泛应用的跨平台框架,它既是一个实现机器学习算法的接口,也是执行机器学习算法的框架。该框架具有快速、灵活、易于开发等特点,适合大规模数据应用。
TensorFlow 计算图示例如图4 所示,Tensor-Flow 以计算图作为框架的基本计算节点,计算图描述了网络数据的计算流程,并负责维护和更新节点状态。
图4 TensorFlow 计算图模型
考虑到工程实用性与编写程序的简易性,本文在TensorFlow 框架上对BP 算法加以改进,通过对历史形态相似性聚类样本学习,进而实现对台户关系的辨识。
3.2 BP 神经网络
BP 模型结构包含输入层、隐藏层和输出层,其典型结构如图5 所示。
图5 BP 典型结构
BP 训练流程由前向传播和反向传播两个过程组成,前向传播将输入数据X={x1,x2,…,xn}通过各层网络计算得到一个输出值(预测值)Y={y1,y2,…,yn},其计算公式为:
式中:W={w11,w12,…,wij}为各个节点的连接权值矩阵;b={b1,b2,…,bj}为偏置矩阵;g 为激活函数,一般取Sigmod。
反向传播过程利用损失函数loss 计算输出值Y 与目标值Y_之间的损失值J,当J=loss(Y,Y_)时,根据神经网络的具体目的选择网络优化函数作为模型优化器,优化器根据损失值来更新网络参数W 和b,使模型参数向着损失值减小的方向更新。基于TensorFlow 的神经网络训练流程如图6 所示。
图6 TensorFlow 神经网络训练流程
3.3 改进BP 方法
3.3.1 零均值化
鉴于输入电压数据具有全正的特性,可通过对输入数据进行零均值化处理,得到以0 为中心的标准化输入数据,进而加速网络收敛速度。零均值化过程如下:
(2)采用boardcast 方法相减,也就是先将Vmean扩充到与V 相同规模,再进行数据相减,按照公式(7)计算。
式中:V,Vmean,Vcent分别表示输入日电压向量矩阵、平均值、零均值矩阵。
3.3.2 Adam 优化方法
传统BP 使用各参数的梯度负值乘以固定学习率来优化网络参数,这种方法实现简单,但是容易收敛到局部最小值点,并且在处理大型数据集时速度较慢。本文使用Adam 优化方法作为改进BP 的优化器。Adam 方法利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的更新步长,计算公式见式(8)—(10)。
式中:gt表示第t 时间步的梯度值;μ 为指数衰减率,控制梯度权重分配,一般取0.9;v 为指数衰减率,控制梯度平放权重分配,一般取0.999;分别是对梯度的一阶矩估计和二阶矩估计;是对mt,nt的校正。
最终网络参数更新公式为:
3.4 算法步骤
基于TensorFlow 框架的改进BP 户变关系识别算法流程如图7 所示,主要步骤如下:
图7 户变关系识别流程
(1)用户日电压数据预处理:删除包含空缺值的用户日电压数据,并按照式(12)对各条曲线进行归一化处理。
式中:vt,,vmin,vmax分别表示日电压曲线任意时刻t 的电压值、t 时刻归一化后电压值、日最小电压值和日最大电压值。
(2)历史用户日电压曲线聚类:对部分历史日电压数据进行K-means 聚类,以Spearman 系数为相似性指标代替ED,聚类数K 值选择所有变压器的总相别数,初始聚类中心选择各变压器相别出口日电压曲线,防止初始聚类中心由于随机选取导致的聚类效果变差。
(3)日电压类别匹配:将聚类结果与各变压器相别按照形态相似度进行匹配,将匹配结果的类簇作为BP 的日电压曲线训练样本。
(4)零均值化处理:对日电压数据按照式(6)和式(7)进行零均值化处理。
(5)Adam 方法优化的BP 对训练样本进行学习,通过正向传播和反向传播过程不断调整网络参数。
(6)通过BP 正向传播过程对输入的用户日电压曲线进行变压器相别类型识别。
4 算例分析
本文算例在TensorFlow 1.12 上实现,实验数据为模拟10 类用户日电压数据和某试验区实际10 个变压器各3 个相别的总共446 个用户电压数据,通过国网用户信息采集系统每15 min 同步读取智能电表的电压数据,日电压曲线采样96个数据点。
由于用户电压随所连接变压器出口电压的高低而波动,具有一定的随机性,所以模拟数据不是简单的单峰和双峰曲线,而是[0,1]之间变化随机的96 维数据,并在各类模拟日电压数据中添加10%的噪声曲线,防止神经网络训练过程的“过拟合”现象。算例模拟数据和实际数据的基本信息如表1 所示。
表1 算例数据基本信息
4.1 模拟数据类别辨识实验
模拟数据集是随机生成的10 类具有趋势差异性的96 维日电压曲线,每种类型的日电压曲线为200 条,并在其中添加10%的噪声曲线。假设训练数据与测试数据的比例为1:1,分别设置聚类相似性指标为ED 或Spearman 相关系数、分类算法为传统BP 神经网络或改进BP 神经网络,得到不同类型的组合。对比各种情况下模拟用户日电压曲线的识别正确率如表2 所示,采用“Kmeans(Spearman)+改进BP 算法”对模拟曲线的识别结果如图8 所示(此处仅例举4 种类型日电压曲线),所列出实验结果均为5 次实验取平均值。
表2 模拟用户日电压曲线分类结果
可以看出,基于Spearman 相关系数和改进BP 的训练迭代次数明显少于传统BP,同时提高了BP 分类精度。由4 台变压器A 相别识别结果可以看出,同一供电台区和相别的电压曲线具有较高的形态相似性,且由图8(d)可知,同类型的电压曲线之间距离相差较远,但在微观波动上具有同升同降的特点。
图8 模拟用户日电压曲线辨识结果
为测试本文所提“K-means(Spearman)+改进BP 算法”的稳定性,通过10 次实验记录各类型电压曲线数量,并与“K-means(ED)+传统BP 算法”10 次实验的识别结果进行对比。由图9 可知,基于形态相似样本提取的改进BP 算法对于电压曲线的类型辨识更稳定。
图9 算法稳定性对比
4.2 实际电压数据户变关系识别实验
K-means 聚类提取训练样本的电压曲线条数取总电压条数的30%,并保证每个台区的不同相别均能覆盖至少100 条电压曲线。在TensorFlow中训练BP 后,对剩下的70%数据进行分类,由于实际数据已知所属类别标签,因此,采用识别精度可客观评价算法分类性能。与模拟数据分类的4 种算法对比类似,实际用户日电压曲线的识别精度率如表3 所示,所列出实验结果均为5 次实验取的平均值。
表3 实际用户日电压曲线识别结果
可以看出,本算法针对实际日电压数据的迭代次数、识别精度均优于模拟数据的识别效果,这是由于模拟数据的同台区电压数据之间加入了较大幅度的噪声数据,而实际的同台区用户电压数据之间趋势差异性较弱。采用“K-means(Spearman)+改进BP 算法”对实际用户电压曲线的识别结果见图10(仅例举4 种类型台区用户日电压曲线),可以看出,结合形态相似性聚类提取训练样本的改进BP 算法对同台区同相别的用户电压数据具有显著的识别效果,识别出的用户电压曲线形态趋势保持高度一致,总体识别效果良好。
图10 用户日电压曲线户变关系识别结果
4.3 计算效率分析
为了分析改进BP 的计算效率,分别对比了无优化、仅采用零均值优化、仅采用Adam 优化、结合零均值和Adam 优化4 种方式在不同数据体量下的计算时间。采用实际的电压数据,按数据总量20%为间隔分5 组,每种优化方法各测试5次,取计算时间平均值。图11 为BP 优化方法的计算效率对比。
图11 BP 计算效率对比
由图11 可知:当数据量较小时(小于40%),Adam 优化的效果不佳,零均值优化的效果较好,总体上优化后计算时间与无优化的计算时间没有明显改变;随着数据量增大(大于80%),无论是零均值优化还是Adam 改进后的BP,计算时间增长速度都较无优化的BP 慢,结合零均值和Adam 优化后的BP 计算耗时最短。这是由于BP网络的迭代速度是限制计算效率提升的关键因素,在小数据量时,BP 迭代次数较少,而Adam动态调节参数迭代步长,增加了网络参数大量计算步骤,由此带来了额外的计算耗时;零均值优化则在数据预处理阶段增加额外的计算耗时。当数据量增大时,BP 网络的迭代次数显著增加,Adam 优化和零均值优化带来的额外计算耗时几乎不变,优化后的BP 网络收敛速度更快,迭代次数显著减小,因此优化后的BP 计算效率显著提升。
5 结语
本文提出一种基于TensorFlow 框架的改进BP 户变关系识别方法,模拟数据和实际电压数据测试表明:基于形态趋势相似性对用户日电压曲线归类,相比于以距离为相似性指标划分类别更适用于户变关系识别,可有效提高训练样本质量,保证户变识别算法的稳定性;结合TensorFlow 框架,采用零均值化和Adam 优化方法对BP 网络进行优化,有效提高了网络的收敛速度。
随着智能电表对电压采样频次的提高,用户日电压曲线的数据维度会越来越高,本文算法的数据维度仅为96 维,针对144 维、288 维等高维电压数据的识别效果还需进一步验证。