《武汉工程大学学报》 2009年09期
55-58
出版日期:2009-09-28
ISSN:1674-2869
CN:42-1779/TQ
基于BP网络的超滤膜分离中药成分的分析与实现
0引言超滤膜分离技术原理近似机械筛,当溶液体系经由水泵进入超滤器时,在滤器内的超滤膜表面发生分离,溶剂和其它小分子量溶质透过具有不多长微孔的滤膜,大分子溶质和微粒(如蛋白、病毒、细菌、胶体、鞣质等)被滤膜阻留,从而达到分离,提纯和浓缩产品的目的. 超滤膜分离是一个不规则的、复杂的非线性系统,操作压力,平均膜通量,膜管型号等原因都会影响中药的分离率.传统的分离技术虽然应用广泛,效果也不错,但是难以处理超滤膜中药分离这一复杂的非线形关系,而人工神经网络的优良自学习能力以及非线性映射能力使其成为超滤膜分离中药有效活性成分工艺参数,膜型号选择以及解决超滤膜截留有效活性成分等问题的强有力手段.目前已经有一些文献提出用BP神经网络来解决超滤膜分离中药成分的问题,但是因为采用经典算法,存在收敛速度慢、易陷入局部极小值等不足.本文采用LM优化方法对BP算法进行改进,应用于超滤膜分离中药成分的实现,并对其效果进行了实验比较.1人工神经网络及BP网络1.1概述人工神经网络ANN (Artificial Neural Network)是一个由大量简单处理单元(神经元)广泛连接组成的人工网络,它揭示数据样本中蕴含的非线性关系,是一个由大量处理单元组成的非线性自适应动态系统[1].一般来说,人工神经网络可以定义为由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应.神经网络按网络结构可分为前馈型和反馈型,BP网络是目前应用最广泛的一种人工神经网络,是基于BP误差反向传播算法的多层前馈神经网络,一个典型的BP网络一般包括输入层、中间(隐藏)层、输出层,每一层由若干个神经元组成.相邻两层的每一个神经元之间均有权值联系.权值的大小反映了这两个神经元之间的联接强度[2].1.2BP网络结构分析多层BP网络不仅有输人节点和输出节点,而且还有一层或多层隐含节点,3层BP网络的拓扑结构如图1所示,包括输入层、输出层和一个隐含层.各神经元与下一层所有的神经元连接,同层各神经元之间无连接,用箭头表示信息的流动[3].大量实践表明,增加隐含层的数目可以提高BP网络的非线性映射能力,但是隐含层的数目超过一定值,反而会使网络的性能降低.1989 年,HechtNi Elsoh 证明了对于任何闭区间内的一个连续函数都可以用一个隐含层的BP网络来逼近.BP网络的输入与输出层的神经元数目完全由使用者的要求来决定.通过增加隐含层神经元个数的方法,可以提高网络的训练精度[4].图1BP神经网络模型
Fig.1Network structural drawing of BP1.3BP网络算法分析BP算法的基本思路是:输入信号从输入层输入,经隐层的函数作用后到达输出层得到输出信号.若实际输出的信号与期望值不符,则以此误差做反向传播,反复修改各层间的权值和阈值,直到达到期望输出,即网络全局误差最小.由此可见,BP算法的网络学习过程是由信号的正向传播和误差的反向传播组成的.在神经网络的实际应用中,BP神经网络是最有效和最活跃的一种方法,80%~90%的神经网络模型都是采用BP网络及其变化形式[5].经典BP算法使用梯度下降算法,因此具有收敛速度慢、易陷入局部极小值等缺点.常用的改进方法主要分两类:一类是采用启发式学习方法,如动量法、自适应调整学习速率算法;另一类采用更有效的数值优化方法,如LM优化方法[6].1.4BP网络的训练步骤首先,连接权初始化.开始时连接权值为未知数,一般用较小的随机数作为各层连接权值的初值.其次,计算各层神经元的输出值.yi=f1(∑ni=0wjixi+bi)(j=1,2,…….p)yt=f2(∑pj=0wjtxj+bj)(t=1,2,…… q)
其中:f1,f2——激活函数,为sigmoid函数或者线性函数;
wji,wjt——输入层与隐含层和隐含层与输出层之间的连接值;
bi,bj——输入层和隐含层的阈值;
yi,yt——隐含层的输出值以及输出层的输出值.连接权值的修正采用梯度下降法.每一次连接权值的修正量与误差函数的梯度成正比,从输出层反向传递到各层.各层的连接权修正量为
Δwij=-η∑pEpwij
其中:Ep——网络目标函数;
wij——神经元i到神经元j的连接权值;
η——学习速率.将初始权值与对应的调整量相加,计算出新的权值,如此循环直至输出层误差的平方和达到设定值为止.由实践证明,对于任意闭合区间连续函数都可以用含有一个隐含层的BP网络来逼近.采用3层BP网络对中药成分的分离进行考察,可以有效的刻画其具有的不确定,多输入和复杂的非线性特征[3].第9期沈斌,等:基于BP网络的超滤膜分离中药成分的分析与实现
武汉工程大学学报第31卷
2BP网络的设计与实现2.1确定输入层、隐含层和输出层的神经元数目输入层的神经元数由影响因素确定,本文以不同分子量膜管单独分离淫羊藿有效成分受外界影响(膜管类型,操作压力,平均膜通量)为例,输入层节点为3,输出层节点为2(总黄酮透过率,淫羊藿苷透过率; 总黄酮纯度,淫羊藿苷纯度),隐层节点数为c+d+a,c:输入节点数,d:输出节点数,a:一个常数,一般取9,本文中隐层节点树为11[7].2.2输入输出数据的预处理在神经网络的训练中,由于输入各因素样本数据内部各个采样点之间的数据有较大的差别,而且输入样本数据与输出样本数据的量纲不同,为了有效地训练网络,使其收敛,使网络能达到预期的效果,往往需要对训练样本做一些事先和事后的处理,以便于更好地利用MATLAB神经网络工具箱中的传递函数和训练函数.在文中,采用的是对输入输出样本进行数学算式归一化和反归一化处理[8],如表1、表2所示.
表1未归一化前数据
Table 1Not prenormalized data
膜管分子
类型(以
分子量分)透过率纯度实验条件总黄酮淫羊
藿苷 总黄酮淫羊
藿苷操作
压力平均
膜通量1×10599.8%99.9%19.58%2.49%894.935×10468.66%87.94%21.63%3.15%723.612×10482.2%87.7%25.86%3.42%1029.511×10473.8%82.9%19.42%2.15%937.145×10355.29%56.23%18.63%2.32%1016.66表2 归一化后数据
Table 2Normalized data
膜管分
子类型透过率纯度实验条件总黄酮淫羊
藿苷 总黄酮淫羊
藿苷操作
压力平均
膜通量1110.130.27110.470.30.730.410.7900.090.160.60.721110.160.050.420.610.100.670.2600000.13102.3BP网络训练函数的确定sigmoid型函数由于其连续和可微的性质,得到了广泛的应用.常用的sigmoid函数(s型函数)有两种,即单曲正切函数f(x)=11+e-x和双曲正切函数f(x)=1-e-2x1+e-2x.由于对输入样本进行归一化处理之后输入样本的值域在[0,1]之间,而线性函数可以为任意值,所以在隐含层和输出层均采用S型传递函数.在训练函数的选择上经过对不同训练函数训练速度和所得的收敛结果比较,决定采用 LevenbergMarquardt BP 训练函数 (trainlm)[9].2.4BP网络程序设计的MATLAB实现在MATLAB环境下,BP网络学习训练的程序设计主要是调用一些相应的函数[10].其算法的程序设计如下.2.4.1网络的初始化 P=[样本输入向量] t=[样本输出向量] t=newff(minmax(P)),[输入层单元数,隐含层单元数,输出层单元数],{第一层传递函数,第二层传递函数,第三层传递函数}BP网络训练函数)newff语句的作用是创建一个3层的BP网络.2.4.2训练参数初始化net.trainParam.show=50设定显示频率net.trainParam.epochs=1000训练次数net.trainParam.goal:le一12 期望误差网络训练[net,tr]=train(net,P,t)调用train函数,利用输入样本P和目标输出t训练网络net.
2.4.3程序运行结果及分析程序运行结果如下:
y=
0.13000.41001.00000.10000.0000
0.00000.79001.00000.00000.1300
图2透过率输出结果及误差曲线图
Fig.2Transmittance output and error curvesy=0.13000.41000.99980.10000.0002
0.27000.79000.99990.00010.1300图3纯度输出结果及误差曲线图
Fig.3Puritys output and error curves分析:以上不同分子量膜管并联实验数据中,1×105分子量膜淫羊藿透过率较大,5×103千分子量膜淫羊藿透过率在顶洗后达到56.3%,若选择单管分离,5×103分子量的膜管有效成分截留率与透过率相差不大,显然不是淫羊藿药材成分分离的最佳膜管;截留分子量小的膜管在单管分离中纯度没有提高,反而降低(有效成分被截留).在总体方面1×105分子量透过率>5×104>2×104>1×104分子量透过液,2×104分子量膜在没有经过顶洗较5×104分子量膜透过率明显较低;1×105分子量的透过率高于5×104分子量的透过率,如果在调配前的粗分离可以选择1×105分子量的;若透过率及纯度综合评价,2×104分子量的膜分离为最适合选择,且由误差曲线图可知,完全达到精度要求.3结语以上分析了一般BP网络的结构,确定了各层神经元个数的方法、网络学习速率和连接权初始值的选取,分析了BP网络的学习规则和计算方法,借助MATLAB神经网络工具箱作为后台数据处理,完成了MATLAB程序设计,提出了适合本系统的计算方法.结果表明,系统可以达到实际的要求.系统设计的神经网络模型具有通用性、客观性和科学性的特点,可对不同条件下对不同中药的分离进行预测预报,对指导超滤膜中药分离有很高的应用价值.