主权项: |
1.一种基于自组织RBF神经网络的出水BOD软测量方法,其特征在于,包括:步骤1:确定出水BOD辅助变量;采集污水处理厂实际水质参数数据,记O={op|k=1,2,...,P}为出水BOD浓度, 为初步选择的可能与出水BOD相关的第j个水质变量,其中J为水质变量个数,P为水质变量的样本个数,fjp为第j个水质变量的第p个样本值;步骤1.1:计算各变量Fj与输出变量O之间的归一化互信息NI(Fj;O),计算公式为: 其中,H(Fj)与H(O)分别为变量Fj与输出变量O的熵,I(Fj;O)为变量Fj与输出变量O的互信息;步骤1.2:设置阈值δ∈[0,1],选取满足NI(Fj;O)>δ的特征变量,个数记为I,所形成的相关特征集合记为SR;步骤1.3:初始化参数i1=1,i2=i1+1;步骤1.4:根据NI(Fj;O)大小将SR中所有特征进行降序排列,选取SR中第i1个特征 如果 执行步骤1.5;否则跳至步骤1.8;步骤1.5:选取特征集合SR中第i2个特征 如果 计算两特征间的归一化互信息 以衡量所选取变量之间的相关性,计算公式为: 其中, 与 分别为变量 与 的熵, 为变量 与 的互信息;否则,跳至步骤1.7;步骤1.6:若 认为变量 与 之间存在较大的冗余性,将特征 从特征集合SR中删除,返回步骤1.5;否则,令i2=i2+1,返回步骤1.5;步骤1.7:令i1=i1+1,返回步骤1.4;步骤1.8:令S=SR,S为选取的辅助变量集合,结束;经步骤1,得到出水BOD的辅助变量,个数记为M;步骤2:设计出水BOD的RBF神经网络预测模型结构;步骤2.1:将由步骤1获取的M个辅助变量按照公式(3)归一化至[‑1,1],输出变量出水BOD按照公式(4)归一化至[0,1]:![]() 其中,Fm表示第m个辅助变量,O表示输出变量,xm和y分别表示归一化后的第m个辅助变量和输出变量;步骤2.2:设计出水BOD软测量模型结构包括三层:输入层、隐含层和输出层,确定其拓扑结构为M‑H‑1,即输入层包含M个神经元,分别对应步骤2.1中归一化后的M个辅助变量,隐含层包含H个神经元,输出层包含1个神经元,对应出水BOD变量;步骤2.3:设共有P个训练样本,对第p个样本(p=1,2,…,P),神经网络输入为xp=[xp,1,xp,2,...,xp,M],其中xp,m(m=1,2,…,M)表示第m个辅助变量的第p个样本;此时,神经网络的输出层神经元的输出为: 其中,wh为第h个(h=1,2,…,H)隐含层神经元与输出层神经元的连接权值,φh(xp)为RBF神经网络第h个隐含层神经元的激活函数,定义如公式(6)所示: 其中,ch、σh分别为第h个隐含层神经元的中心和宽度;步骤2.4:选取均方误差函数为性能指标,由下式定义: 其中,dp为第p个样本的期望输出,yp为第p个样本的网络输出,P为训练样本数;步骤3:出水BOD软测量模型结构自组织设计步骤3.1:神经网络隐含层神经元个数H初始化为0,神经元变化次数n初始化为0;步骤3.2:计算当前第p个样本的网络输出误差:ep=dp‑yp (8)其中p=1,2,…,P;对所有训练样本,寻找误差最大的训练样本,如公式(9): 其中e=[e1,e2,...,eP]T;新增加一个RBF神经元,神经元个数H=H+1,按照公式(10)‑(12)设置神经元初始参数;cH=xpmax (10)σH=1 (11)wH=1 (12)其中,cH=[cH,1,cH,2,...,cH,10]、σH分别为第H个隐含层神经元的中心和宽度,wH为第H个隐含层神经元与输出层神经元的连接权值,xpmax为第pmax个输入样本;设置参数n=n+1;步骤3.3:在当前网络结构下,令向量Δ包含所有需要更新的参数,即: 更新规则如下:Δ(k+1)=Δ(k)‑(Q(k)+μ(k)I)‑1g(k) (14)其中,k表示迭代步数,Q为类海森矩阵,g为梯度向量,I为单位矩阵,μ为学习率参数;类海森矩阵及梯度向量分别根据公式(15)和(16)计算得到:![]() 其中,ep为第p个样本的网络输出误差,根据式(8)计算,jp为对应样本的雅可比矩阵行向量,定义如下: 根据公式(5)‑(8),求得:![]() ![]() 通过公式(18)‑(20),可得到雅可比矩阵的行向量jp,当将所有训练样本遍历一遍后,则可得到类海森矩阵Q和梯度向量g,进而根据参数更新公式(14)对各参数进行更新;在训练过程中,当E(k+1)≤E(k)时,μ(k+1)=μ(k)/10,神经网络当前参数保留;反之,μ(k+1)=μ(k)×10,神经网络参数恢复至参数调整前,基于当前μ对网络参数进行更新;设最大迭代步数为Tmax,Tmax∈[100,500],期望误差值为Ed,Ed∈(0,0.01];神经网络参数学习过程经过不断迭代,当迭代步数T=Tmax或当前训练误差E≤Ed时,对当前网络训练停止;若训练停止时训练误差E>Ed,当mod(n,N)≠0时,返回步骤3.2,当mod(n,N)=0时,执行步骤3.4,这里 为求余操作,N为[3,10]范围内的整数;否则,跳至步骤3.5;步骤3.4:在当前网络结构下,计算第h个隐含层神经元的敏感度: 其中, 用于计算标准差;为了便于神经元删减时选取阈值,将敏感度进行归一化: 定义隐含层神经元的删减规则为:当NSIh<γNSImean时,神经元个数H=H‑R,将隐含层对应神经元删除,这里NSImean为当前所有隐含层神经元的归一化敏感度均值,R为满足删减条件的隐含层神经元个数,γ在[0,0.5]范围内取值;选择与所删除神经元欧式距离最近的神经元,其中心和宽度不变,对其与输出神经元的连接权值进行更新,更新规则如下: 其中,ws为所删除神经元s与输出神经元之间的连接权值,wt和wt'分别为在删除神经元s前后与神经元s欧式距离最近的神经元t与输出神经元之间的连接权值;令n=n+1,返回步骤3.3;步骤3.5:设最大总迭代次数为Ttmax,Ttmax∈[1000,2000];当训练误差E≤Ed或总迭代次数Ttotal=Ttmax时,训练停止,得到训练后的神经网络结构及对应参数;步骤4:将测试样本数据作为训练后的自组织RBF神经网络的输入,得到自组织RBF神经网络的输出,将其进行反归一化得到出水BOD浓度的预测值。 |