主权项 |
1.一种污水处理过程中生化需氧量BOD软测量的方法,其特征在于,包括以下步骤:(1)设计的污水水质BOD软测量动态神经网络拓扑结构;网络分为三层:输入层、隐含层、输出层;输入为污水调节池进水水质指标,输出为生化需氧量BOD;初始化神经网络:确定神经网络p-n-1的连接方式,即输入层神经元为p个,隐含层神经元为n个,输出层神经元为1个;对神经网络的权值进行随机赋值;神经网络的输入表示为x<sub>1</sub>,x<sub>2</sub>,…,x<sub>p</sub>,神经网络的期望输出表示为y<sub>d</sub>;设共有m个训练样本,则第k个训练样本为x<sub>1</sub>(k),x<sub>2</sub>(k),…,x<sub>p</sub>(k),y<sub>d</sub>(k),用第k个训练样本训练神经网络时,神经网络各层的计算功能是:输入层,该层由p个神经元组成:<maths num="0001"><![CDATA[<math><mrow><msubsup><mi>In</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><msubsup><mi>Out</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mi>In</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><mrow><mo>(</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><mi>p</mi><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths> (1)<img file="A200810224496C00022.GIF" wi="152" he="50" /><img file="A200810224496C00023.GIF" wi="152" he="50" />分别表示输入层的输入和输出;隐含层,该层由n个神经元组成:<maths num="0002"><![CDATA[<math><mrow><msubsup><mi>In</mi><mi>j</mi><mn>2</mn></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>p</mi></munderover><msubsup><mi>w</mi><mrow><mi>j</mi><mo>,</mo><mi>i</mi></mrow><mn>2</mn></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><msubsup><mi>Out</mi><mi>j</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>f</mi><mi>j</mi></msub><mrow><mo>(</mo><msubsup><mi>In</mi><mi>j</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>,</mo><mrow><mo>(</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><mi>p</mi><mo>.</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><mi>n</mi><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths> (2)<img file="A200810224496C00025.GIF" wi="157" he="56" /><img file="A200810224496C00026.GIF" wi="158" he="56" />分别表示隐含层的输入和输出,<img file="A200810224496C00027.GIF" wi="116" he="55" />表示第i个输入层神经元与第j个隐含层神经元之间的联结权值,f(·)为sigmoid函数,其形式为:<maths num="0003"><![CDATA[<math><mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mn>1</mn><mo>+</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>x</mi></mrow></msup></mrow></mfrac></mrow></math>]]></maths> (3)输出层,该层只有1个神经元:<maths num="0004"><![CDATA[<math><mrow><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>Out</mi><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msubsup><mi>w</mi><mi>j</mi><mn>3</mn></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><msubsup><mi>Out</mi><mi>j</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><mrow><mo>(</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><mi>n</mi><mo>)</mo></mrow></mrow></math>]]></maths> (4)Out<sup>(3)</sup>(k)表示输出层的输出,<img file="A200810224496C000210.GIF" wi="99" he="55" />表示第j个隐含层神经元与输出层神经元之间的联结权值,y(k)为神经网络的实际输出;定义误差函数为<maths num="0005"><![CDATA[<math><mrow><mi>E</mi><mo>=</mo><mfrac><mn>1</mn><mi>m</mi></mfrac><munderover><mi>Σ</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msup><mrow><mo>(</mo><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>y</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>)</mo></mrow><mi>T</mi></msup><mrow><mo>(</mo><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>y</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow></math>]]></maths> (5)T为(y(k)-y<sub>d</sub>(k))的转置,m为训练样本总数,训练神经网络的目的是使得式(5)定义的误差函数达到期望值E<sub>d</sub>;(2)对样本数据进行校正;设t个数据样本x(<sub>1</sub>),x(<sub>2</sub>),…,x(t),均值为x,每一个样本的偏差为D(q)=x(q)-x,q=1,2,…,t,按照Bessel公式计算出标准偏差:<maths num="0006"><![CDATA[<math><mrow><mi>σ</mi><mo>=</mo><msqrt><munderover><mi>Σ</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>t</mi></munderover><mfrac><msup><mrow><mo>(</mo><mi>x</mi><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow><mo>-</mo><mover><mi>x</mi><mo>‾</mo></mover><mo>)</mo></mrow><mn>2</mn></msup><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></mfrac></msqrt></mrow></math>]]></maths> (6)若某一个样本x(q)的偏差满足:|D(q)|≥3σ,q=1,2,…,t; (7)则认为样本x(q)是异常数据,应予以剔除,得到校正后的数据,该数据作为神经网络的训练样本和测试样本;(3)用校正后的部分数据训练神经网络,在训练过程中利用快速OBS修剪算法对神经网络的冗余隐神经元进行修剪;具体为:①训练给定神经网络至较小误差;②进行结构调整,利用递归公式计算Hessian矩阵的逆矩阵H<sup>-1</sup>,矩阵中的元素H<sub>j,j</sub>的计算公式如(8);<maths num="0007"><![CDATA[<math><mrow><msub><mi>H</mi><mrow><mi>j</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><munderover><mi>Σ</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mrow><mo>(</mo><mfrac><mrow><mo>∂</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>r</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow><msub><mrow><mo>∂</mo><mi>r</mi></mrow><mi>j</mi></msub></mfrac><mo>)</mo></mrow><msup><mrow><mo>(</mo><mfrac><mrow><mo>∂</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>r</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow><msub><mrow><mo>∂</mo><mi>r</mi></mrow><mi>j</mi></msub></mfrac><mo>)</mo></mrow><mi>T</mi></msup></mrow></math>]]></maths> (8)<maths num="0008"><![CDATA[<math><mrow><msub><mi>r</mi><mi>j</mi></msub><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msubsup><mi>w</mi><mi>ij</mi><mn>2</mn></msubsup><mo>·</mo><msub><mi>x</mi><mi>i</mi></msub></mrow></math>]]></maths> (9)其中,f(·)为sigmoid函数,其形式如(3),x<sub>i</sub>是输入样本;③计算每个隐含层神经元的显著性S<sub>j</sub>;利用与第j个神经元相连的所有p个权值的均值w<sub>j</sub>计算S<sub>j</sub>,令:<maths num="0009"><![CDATA[<math><mrow><msub><mover><mi>w</mi><mo>‾</mo></mover><mi>j</mi></msub><mo>=</mo><mfrac><mrow><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>p</mi></munderover><msubsup><mi>w</mi><mi>ij</mi><mn>2</mn></msubsup></mrow><mi>p</mi></mfrac></mrow></math>]]></maths> (10)<img file="A200810224496C00035.GIF" wi="41" he="55" />表示隐含层间第j个神经元与输入层第i个神经元之间的联结权值;第j个神经元的显著性为:<maths num="0010"><![CDATA[<math><mrow><msub><mi>S</mi><mi>j</mi></msub><mo>=</mo><mfrac><msubsup><mover><mi>w</mi><mo>‾</mo></mover><mi>j</mi><mn>2</mn></msubsup><mrow><mn>2</mn><msub><mrow><mo>[</mo><msup><mi>H</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>]</mo></mrow><mrow><mi>j</mi><mo>,</mo><mi>j</mi></mrow></msub></mrow></mfrac></mrow></math>]]></maths> (11)H<sup>-1</sup>为Hessian矩阵的逆矩阵,[H<sup>-1</sup>]<sub>j,j</sub>是这个逆矩阵的第(j,j)个元素;④如果显著性S<sub>j</sub>远小于误差值,那么删除相应的神经元j,并转第⑤步;否则,转第⑥步;⑤通过应用如下调整校正网络中所有的突触权值:<maths num="0011"><![CDATA[<math><mrow><mi>Δw</mi><mo>=</mo><mo>-</mo><mfrac><msub><mover><mi>w</mi><mo>‾</mo></mover><mi>j</mi></msub><msub><mrow><mo>[</mo><msup><mi>H</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>]</mo></mrow><mrow><mi>j</mi><mo>,</mo><mi>j</mi></mrow></msub></mfrac><msup><mi>H</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mn>1</mn><mi>j</mi></mrow></math>]]></maths> (12)w=w+Δw (13)w′为训练后的联结权值,w为训练钱的联结权值;其中H<sup>-1</sup>是Hessian矩阵H的逆矩阵,[H<sup>-1</sup>]<sub>j,j</sub>是这个逆矩阵的第(j,j)个元素,I<sub>j</sub>是除了第j个元素等于单位1之外其他所有元素均为零的单位向量;Δw是权值增长变量,w<sub>j</sub>是与隐含层中第j个神经元相连的所有p个权值的均值,其形式如(10);⑥当不再有神经元被删除时停止神经网络结构调整计算,否则转第②步继续进行神经网络结构调整;如果不再有神经元被删除,重新训练神经网络;判断神经网络当前误差是否小于期望误差E<sub>d</sub>;如果前误差小于期望误差E<sub>d</sub>则神经网络停止训练,否则对神经网络进行重新训练;(4)对预测样本进行预测:将预测样本数据作为训练好的神经网络的输入,神经网络的输出即为出水BOD的预测结果。 |