基于改进BP神经网络算法的短期负荷预测
潘雪涛
【摘 要】摘 要:分析了BP神经网络的特点,从学习速率的角度讨论了BP算法的改进方法,并用加州负荷数据进行24 h负荷预测及算例分析.仿真结果表明,改进BP神经网络算法预测的平均误差比常规算法降低了0.445%,并且克服了当接近最优解时易产生波动和振荡现象的问题,训练速度也有所提高. 【期刊名称】上海电力学院学报 【年(卷),期】2012(028)004 【总页数】4
【关键词】关键词:BP神经网络;短期负荷预测;学习率;混沌算法
准确的短期负荷预测是电力调度部门的重要工作之一.目前,短期负荷预测方法大致可分为传统方法和智能方法两大类.传统的短期负荷预测方法以趋势时间序列法、外推法、灰色模型法等为主,这些算法原理简单、速度快,但难以表达负荷与其影响因素的非线性关系,从而限制了其在短期负荷预测中的应用[1-3].智能方法主要包括专家系统、人工神经网络和支持向量机等,其中,人工神经网络以其强大的自主学习能力、非线性处理能力等特性,较好地克服了传统方法中的某些缺点[4,5],但在实际运用中还存在着网络结构选择困难、泛化能力较差、易陷入局部极小、收敛慢等缺陷[6,7].
本文进行了改进BP神经网络算法的研究,并利用基于Matlab语言的优化计算程序,结合某电网负荷数据进行短期电力负荷预测仿真,比较分析了改进方法在计算速度与预测误差方面的优势.
1 BP神经网络
1.1 BP神经网络的特点
BP学习算法的前向网络是当前应用最为广泛的人工神经网络之一,可以解决神经网络面临的许多问题.BP神经网络算法一般可描述为正向的信号输入过程和误差信号反向传播过程.反向传播算法通常采用梯度法修正权值,因此要求输出函数可微,通常可选择Sigmoid型函数作为激励函数.
给定任意一组输入样本数据,采用BP网络进行训练,各层之间的映射关系存储在连接权值和阈值上.网络的实际输出与期望输出之间的差值即为误差信号,误差信号从输出端开始逐层向前传播,在误差信号反向传播的过程中,网络的权值由误差反馈进行调节.通过权值的不断修正使网络的实际输出逐渐接近期望输出.该算法类似梯度下降法,不同的是BP神经网络算法是将人为选取的一个常数作为学习率,这样处理虽然便于简化计算,但也带来一些问题.如果步长较小,可能会造成计算效率低,收敛速度慢;如果步长较大,向前一步可能跨过了最优点,而后退一步又可能回到原点,这样就会产生振荡现象.因此,BP网络学习率的大小对学习算法具有重要影响[8,9]. 1.2 BP神经网络算法的改进
基于上述问题,目前已有很多研究提出了有效的BP网络算法的改进,主要有以下两种.
(1)变步长法 该方法权值的修正方法为:
这里的权值修正方法与连续两次迭代的梯度有关.若连续两次迭代的梯度方向相同,表明下降太慢,这时可将步长加倍;若连续两次迭代的梯度方向相反,表明下降过头,这时可将步长减半.该方法的不足之处是步长调整幅度太大容易引起振荡.
(2)变尺度法 常规BP算法采用的是一阶梯度法,因而其收敛速度较慢.若采用二阶梯度法则收敛速度会有较大的提高,但二阶梯度法计算很复杂.变尺度法是对二阶梯度法的简化计算,但其计算相对来说还是较为复杂[10-12].
本文采用变步长的改进BP算法,采用批处理方式,即每一个样本对网络并不立即产生作用,而是等到一个训练周期的全部输入样本都依次输入后,将全部误差求和累加求出总的误差,然后集中修改权值.置各权值或阈值的初始值为小的随机数值,具体步骤如下.
(1)设置初始权值W(0)和V(0)为较小的随机非零值,并输入其他网络参数,误差E置0,学习率η设为0~1内的小数,网络训练后达到的精度Emin设为一小的正数.
(2)提供训练样本,输入向量为X=(x1,x2,…,xn)T,期望输出向量为 d=(d1,d2,…,dn)T,然后对每个输入样本进行步骤(3)到步骤(5)的迭代. (3)计算网络的实际输出及隐层单元的状态. (4)分别计算输出层和隐含层的训练误差.
(5)保存当前样本的训练误差Ek,到步骤(2)继续迭代,直到本次样本结束. (6)计算样本训练的总误差,并加以判断,若E(t)>E(t-1),则按η=η/2减小学习步长.根据总误差E=∑kEk,修正BP网络的权值,否则转至步骤(7). (7)按η=2η增加学习步长.
(8)根据总误差E=∑kEk,计算 BP网络的权值.
(9)判断误差是否满足要求,不满足转至步骤(2),满足则结束.
2 负荷预测改进BP网络设计
2.1 输入变量的选取
基于改进BP神经网络算法的短期负荷预测
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)