-
1982年提出的灰色理论是通过累加原始数据系列,形成单调上升的线性或指数型的序列,通过拟合值找出规律,克服数据的随机性[10]。
获取数据样本X(0)={X(0)(1), X(0)(2), …, X(0)(n)},原始数据满足条件X(0)(i)≥0, (i=1, 2, …, n)。使用此数据样本建立GM(1, 1)模型[11]。根据数据样本累加生成序列X(1)={X(1)(1), X(1)(2), …, X(1)(n)},其中,$ {X^{(1)}}\left( i \right) = \sum\limits_1^i {{X^{(0)}}} (i)$。此累加序列的白化方程为$ \frac{{{\rm{d}}{\mathit{\boldsymbol{X}}^{(1)}}}}{{dn}} + a{\mathit{\boldsymbol{X}}^{(1)}} = b $,a为发展灰数,b为内生控制灰数[12]。
根据白化微分方程写成矩阵:
$ \mathit{\boldsymbol{A}} = \mathit{\boldsymbol{B}}a' $
(1) 式中,a′为a的演化值。
$ \mathit{\boldsymbol{B = }}\left[ {\begin{array}{*{20}{c}} { - {Z^{(1)}}(2)}&1\\ { - {Z^{(1)}}(3)}&1\\ \vdots&\vdots \\ { - {Z^{(1)}}(n)}&1 \end{array}} \right], \mathit{\boldsymbol{A = }}\left[ {\begin{array}{*{20}{c}} {{X^{(0)}}(2)}\\ {{X^{(0)}}(3)}\\ {{X^{(0)}}(4)}\\ \vdots \\ {{X^{(0)}}(n)} \end{array}} \right] $
(2) $ {Z^{(1)}}\left( k \right) = \frac{{\left[ {{X^{\left( 1 \right)}}\left( k \right) + {X^{\left( 1 \right)}}\left( {k - 1} \right)} \right]}}{2} $
(3) 根据最小二乘法,估计原始数据的拟合值:
$ \begin{array}{c} {X^{(0)}}'\left( {i + 1} \right) = (1 - {e^a}) \times \\ \left[ {\left( {{X^{(0)}}\left( 1 \right) - \frac{b}{a}} \right)} \right]{e^{ - ai}} \end{array} $
(4) 式中,e为误差。建立模型之后对其精度进行检验。
残差是原始数值与拟合数值的差:
$ {e^{(0)}}\left( i \right) = {X^{(0)}}\left( i \right) - {X^{(0)}}'(i) $
(5) 后验差比值C是残差方差Se2和数据方差SX2之比:
$ C = \frac{{{S_e}^2}}{{{S_X}^2}} $
(6) ${S_e}^2 = \frac{1}{n}\sum\limits_{i = 1}^n {{{[{e^{(0)}}\left( i \right) - \bar e]}^2}} $
(7) $ {S_X}^2 = \frac{1}{n}\sum\limits_{k = 1}^n {{{[{X^{(1)}}\left( k \right) - \bar X]}^2}} $
(8) 式中,e为误差的期望值, X为输入序列的期望值[13]。可以明显看出,残差方差越小,控制精度越高。数值大小与原始样本的数值有关,为了标准化,故而使用后验差比值。
灰色模型需要的控制数据量较少,样本分布可以是随机性的、计算简便,结果较准确。灰色算法是使用拟合的思想解白化方程来进行数据控制,其计算值具有单调性,对于具有波动性和随机性的风场数据而言,不能简单地满足单一的函数条件,因此控制数据结果并不理想。
-
BP神经网路是一种监督式的学习方法[14],根据输入的样本使用反向传播的思想对网络的权值、阈值和误差不断进行训练,使输出向量在误差允许范围内尽可能的接近期望向量,并保存网络权值和阈值。
神经网络训练过程如下。
(1) 初始化神经网络。输入集合X=(X1, X2, …, Xn),输出集合Y=(Y1, Y2, …, Ym), 隐层节点数为k, 输入层节点数为n, 输出层节点数为m, 初始化神经元之间的连接权值[15],输入层与隐层和隐层与输出层的连接权值分别为vih和who, 初始化隐层阈值和输出层阈值分别为ah和bo,初始化学习速率和神经元激励函数。
(2) 隐层输出。根据输入集合X和输入隐层的权值vih以及隐层阈值ah, 得出隐层的输出计算公式:
$ {P_h} = f\left( {\sum\limits_{i = 1}^n {{v_{ih}}{X_i} - {a_h}} } \right) $
(9) 式中,f为隐层激励函数[16];h=1, 2, …, k;i=1, 2, …, n。
(3) 输出层输出。根据Ph和隐层与输出层的权值who以及输出层的阈值bo, 得出输出层的输出计算公式:
$ {Q_o} = \sum\limits_{h = 1}^k {{w_{ho}}{P_h} - {b_o}} $
(10) 式中,o=1, 2, …, m;h=1, 2, …, k。
(4) 计算误差。根据预测输出量Qo和期望输出量Yo得出误差计算公式:
$ {e_o} = {Y_o} - {Q_o} $
(11) (5) 权值更新。根据网络预测的误差向量eo更新输入层与隐层、隐层与输出层之间权值vih和who:
$ \begin{array}{c} {v_{ih}} = {v_{ih}} + \theta {P_h}\left( {1 - {P_h}} \right){\rm{ }}{X_i}\sum\limits_{o = 1}^m {{w_{ho}}{e_o}} , \\ (i = 1, 2, \cdots , n;h = 1, 2, \cdots , k) \end{array} $
(12) $ \begin{array}{c} {w_{ho}} = {w_{ho}} + \theta {P_h}{e_o}, \\ (h = 1, 2, \cdots , k;o = 1, 2, \cdots , m) \end{array} $
(13) 式中,θ为学习速率。
(6) 阈值更新。根据误差向量eo更新输入层与隐层、隐层与输出层之间的阈值:
$ \begin{array}{c} {a_h} = {a_h} + \theta {P_h}(1 - {P_h})\sum\limits_{o = 1}^m {{w_{ho}}{e_o}} , \\ \left( {h = 1, 2, \cdots , k} \right) \end{array} $
(14) $ {b_o} = {b_o} + {e_o}, \left( {o = 1, 2, \cdots , m} \right) $
(15) 根据网络允许的最大误差判断算法迭代是否结束,否则继续更新隐层输出和阈值。
BP神经网络是常用的非线性拟合工具,具有广泛的适应能力、学习能力和映射能力。通过对历史的风场数据学习,网络能从无规律性的数据中获取各自的依存关系。BP神经网络也存在局部极小和收敛慢的问题,其运算参量和结构参量要根据经验来选择,缺乏理论上的指导。
-
优化数据控制算法的本质是求解残差函数的最小值问题[17]。灰色算法对贫数据具有良好计算控制能力,但是灰色算法对平滑度不够的数据集的残差通常会不能满足需求[18]。BP神经网络算法对非线性的数据有着强大的学习能力,理论上3层BP神经网络就能拟合任意的函数,但神经网络需要大量的数据进行训练才能保持原数据的特性,而且数据量不够时神经网络的误差也会很大[19]。为了使用这两种算法的优势,弥补各自的不足,现使用BP神经网络对灰色算法残差的多次修正[20-23],最终更新灰色算法的拟合值。
灰色理论与BP神经网络融合的风廓线控制算法过程如下。
(1) 获取数据样本,使用灰色算法预处理数据,计算残差集e(0)(i)。原始时间数据集X(0)(i),原数据的预拟合值X(0)′(i),则残差集为:
$ {e^{(0)}}\left( i \right) = {X^{(0)}}\left( i \right) - {X^{(0)}}'(i) $
(16) (2) 使用BP神经网络训练残差集。以残差集e(0)(i)作为BP神经网络的输入值训练网络,理想的残差为0,之后使用训练后的各权值和阈值对残差进行数据调整,得到调整后的残差集e(0)′(i)。
(3) 通过e(0)′(i)修正灰色算法中的值,得到XBP-GM(0)(i),其计算公式为:
$ {X_{{\rm{BP - GM}}}}^{(0)}\left( i \right) = {e^{(0)}}'\left( i \right) + {X^{(0)}}'\left( i \right) $
(17) (4) 为了尽可能地降低残差,使用修正后的值, 获取残差集eBP-GM(0)(i):
$ {e_{{\rm{BP - GM}}}}^{(0)}\left( i \right) = {X^{(0)}}\left( i \right) - {X_{{\rm{BP - GM}}}}^{(0)'}(i) $
(18) 通过神经网络训练eBP-GM(0)(i),理想的eBP-GM(0)(i)对应的输出量是元素为0的集合。使用训练好的网络残差eBP-GM(0)′(i),最后更新出灰色算法的值:
$ {X_{{\rm{BP - GM}}}}^{{{(0)}'}}\left( i \right) = {e_{{\rm{BP - GM}}}}^{{{(0)}'}}\left( i \right) + {X_{{\rm{BP - GM}}}}^{(0)'}\left( i \right) $
(19) 灰色算法的残差是无规律性的,使用BP神经网络强大的学习、适应能力能有效地获取残差值的依存关系。两次使用BP修正,使得灰色算法的残差值能得到有效的控制,但是BP训练花费的时间比较长,两次使用BP也会增加残差的训练时间,整个灰色预测时间变得更长。
基于修正灰色残差算法的风廓线质量控制
Wind profile quality control based on modified grey residual algorithm
-
摘要: 为了研究时间域上风廓线数据的质量控制问题,采用后向传播神经网络修正灰色算法残差的方法(BP-GM),进行了理论分析和实验验证。使用反向传播神经网络训练历史风廓线数据的灰色残差,取得了风廓线质量控制数据。结果表明,当相对误差和后验差比值越小、精度越接近1时,质量控制效果越好;BP-GM法能有效地降低风廓线数据控制残差,提高精度。这一结果对风廓线质量控制是有帮助的。Abstract: In order to study quality control problem of wind profile data in time domain, a method of neural network was used to correct residual error of grey algorithm. Back propagation neural network was used to train grey residual error of historical wind profile data, and the quality control data of wind profile was obtained. After theoretical analysis and experimental verification, the results show that the algorithm can effectively reduce residual error and improve the accuracy of wind profile data. The result is helpful for quality control of wind profile.
-
Key words:
- laser technique /
- quality control /
- back propogation neural network /
- grey method
-