1.一种基于状态池网络的水质指标预测方法,步骤如下:
1)确定水质参数的输入和输出数据,通过分析,选取流域上游几个采样点的水质参数为输入,流域下游的一个采样点的水质参数为输出;进行以天为单位的连续采样和分析,得到水质参数:叶绿素a,透明度SD、总磷TP、总氮TN、高锰酸钾指数CODmn、溶解氧、PH值;
2)设计用于检测水质异常的状态池网络结构,根据输入与输出的数据,最终确定状态池的结构为:输入层即Input Layer,简称IL,递归层即Recurrent neural layer,简称RNL,输出层即Output Layer,简称OL;
输入层包含输入信号,由向量y=[P1a,P1b,…P1m,…Pna,Pnb,…Pnm]表示,y由t时刻的水质采样点的n段时间m种水质数据(Pia,Pib,...Pim)构成的时间序列;输入层与递归层由突触IL IL
向量W 连接,W 中的值从高斯分布N(0,0,5)中随机采样;
中间层为递归层;中间层包含大量的神经元节点,神经元节点由大小为N×1的向量x表RNL
示;中间层的神经元之间随机相互连接,连接用一个大小为N×N的稀疏矩阵W 表示;其中2
每一权重的非0项服从高斯分布N(0,g/pN)的随机变量随机产生;其中,g=1.5,p=0.1;
OL
递归层通过大小为N×m的输出权向量W 合并成为一个包含两个节点的输出层,由向量Z表示;其中,m为水质参数个数;网络的输出为预测目标在t时刻的水质参数;
网络的输出为z(t),通过被激活的神经元的加权和得到;网络中被激活的神经元在时刻t表示r(t),其中r(.)=tanh(.);连接神经元到输出向量的权重为W,输出表示为:状态池网络的递归过程表示为:
noise ‑6
其中,τ=0.01毫秒,I 为每一个状态池神经元的随机噪声,服从N(0,10 )的高斯分布;
3)在进行状态池网络训练之前,考虑到水质在测量中水体不稳定带来的误差以及异常,首先筛选有效的数据,剔除异常的部分;利用格拉布斯准则对样本数据进行异常值检测:
式中:Gs为Grubbs准则检验特征数据;Xi为可疑的数据,为数据集的算术平均值,S为数据集的标准差;若Gs大于临界值Gp(n),则判断该数据为异常值;Gp(n)与检出水平和检验次数有关,检出水平σ=0.05,检验次数n为数据集个数;剔除水质异常值的做法是将水质数据按照升序排列,从两端依次去除异常值,直到数据集满足要求;
4)使用最小二乘法,即Recursive Least Squares,简称RLS,对网络的输出权重进行调整;输出层权重的调整由下式确定:w(t)=w(t‑Δt)‑e_(t)P(t)r(t) (4)其中,e_(t)为时刻t网络的实际输出w(t‑Δt)与期望输出f(t)之间的差值:et=w(t‑Δt)–f(t) (5)P(t)为N×N矩阵,它控制着RNL层神经元与输出神经元之间每一个权重调整的比率;这个矩阵在每一步同样需要按下式更新:由于P在网络运行过程中需要不断更新,为此它需要设定一个初始值: 其中I为单位矩阵,α为常数;
5)状态池网络开始训练时,选取T1‑Tn时段采样点的水质数据作为输入,Tn+1时刻的水质数据作为目标,其中水质参数类型与个数可根据预期计划调整;训练结束后,用均方根误差,即Root‑Mean‑Square Error,简称RMS error,表示网络的预测误差,均方根误差的计算公式为:
其中xi、yi...mi为状态池网络输出的m类水质参数,每种参数包含i个数据;
为这些水质参数期望的输出;
6)使用状态池网络进行水质预测;保存第5)步中训练得到的状态池网络结构参数,并使用测试数据集进行网络效果测试评估;同样使用均方根误差对水质预测数据进行评价,得到RMS的值。