一、BP神经网络二、徽章的分类三、光催化臭氧氧化处理自来水BP神经网络在分类与预测中的应用三层BP网络的拓扑结构BP神经网络模型(1)激活函数(传输函数)必须处处可导一般都使用S型函数-2-112-1-0.50.51221()1xxefxeSigmoid函数-2-1120.20.40.60.821()1xfxe对数Sigmoid函数1.2.3BP神经网络模型(2)使用S型激活函数时BP网络输入与输出关系1.2.3BP神经网络模型kx1xnx2x()yfnety输出端net传输函数()f输入端kw1wnw2w1122...nnnetxwxwxwb输入1()1netyfnete输出(2)使用S型激活函数时BP网络输入与输出关系1.2.3BP神经网络模型输出的导数-211'()(1)1(1)netnetfnetyyee根据S型激活函数的图形可知,对神经网络进行训练,应该将net的值尽量控制在收敛比较快的范围内.1122...nnnetxwxwxwb输入1()1netyfnete输出例下表为某药品的销售情况,月份123456销量205623952930229816341600月份789101112销量187314781900150020461556BP网络学习算法的MATLAB实现现构建一个如下的三层BP神经网络对药品的销售进行预测:输入层有三个结点,隐含层结点数为5,隐含层的激活函数为tansig;输出层结点数为1个,输出层的激活函数为logsig,并利用此网络对药品的销售量进行预测,预测方法采用滚动预测方式,即用前三个月的销售量来预测第四个月的销售量,如用1、2、3月的销售量为输入预测第4个月的销售量,用2、3、4月的销售量为输入预测第5个月的销售量.如此反复直至满足预测精度要求为止。–%以每三个月的销售量经归一化处理后作为输入•P=[0.51520.81731.0000;0.81731.00000.7308;1.00000.73080.1390;0.73080.13900.1087;0.13900.10870.3520;0.10870.35200.1065;]';–%以第四个月的销售量归一化处理后作为目标向量•T=[0.73080.13900.10870.35200.10650.3761];–%创建一个BP神经网络,每一个输入向量的取值范围为[0,1],隐含层有5个神经%元,输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活函数为%logsig,训练函数为梯度下降函数.•net=newff([01;01;01],[5,1],{'tansig','logsig'},'traingd');•net.trainParam.epochs=15000;•net.trainParam.goal=0.01;–%设置学习速率为0.1•LP.lr=0.1;•net=train(net,P,T);1.2.4BP网络学习算法的MATLAB实现(2)实例1.2.4BP网络学习算法的MATLAB实现BP网络应用于药品预测对比图(2)实例由对比图可以看出预测效果与实际存在一定误差,此误差可以通过增加运行步数和提高预设误差精度使其进一步缩小徽章问题是一个典型的分类问题。我们可以用一个具体的例子描述:在某个国际会议上,参加会议的280名代表每人收到会议组织者发给一枚徽章,徽章的标记为“+”或“-”。会议的组织者声明:每位代表得到徽章“+”或“-”的标记只与他们的姓名有关,并希望代表们能够找出徽章“+”与“-”的分类方法。由于客观原因,有14名代表没能参加此次会议。按照代表们找出的方法判断,如果他们参加会议将得到的徽章类型。徽章问题的背景BP神经网络在分类与预测中的应用二、徽章的分类徽章代表姓名徽章代表姓名+NaokiAbe-MyriamAbramson+DavidW.Aha+KamalM.Ali-EricAllender+DanaAngluin+MinoruAsada-ChidanandApte+LarsAsker+JavedAslam+PeterBartlett+JoseL.Balcazar+PeterBartlett+JoseL.BalcazarBP神经网络在分类与预测中的应用徽章问题的背景二、徽章的分类徽章代表姓名徽章代表姓名+WeltonBecket+MichaelW.Barley-CristinaBaroglio+HaralabosAthanassiou…………-EricBaum+TimothyP.BarberBP神经网络在分类与预测中的应用徽章问题的背景二、徽章的分类徽章代表姓名徽章代表姓名MerrickL.FurstJeanGabrielGanasciaWilliamGasarchRicardGavaldaYolandaGilMelindaT.GervasioDavidGillmanAttilioGiordanaKateGoelzPaulW.GoldbergSallyGoldmanDianaGordonGeoffreyGordonJonathanGratch14名未参加会议的代表BP神经网络在分类与预测中的应用徽章问题的背景二、徽章的分类徽章代表姓名徽章代表姓名?MerrickL.Furst?JeanGabrielGanascia?WilliamGasarch?RicardGavalda?YolandaGil?MelindaT.Gervasio?DavidGillman?AttilioGiordana?KateGoelz?PaulW.Goldberg?SallyGoldman?DianaGordon?GeoffreyGordon?JonathanGratchBP神经网络在分类与预测中的应用徽章问题的背景二、徽章的分类14名未参加会议的代表Y初始化给定导师信号计算个节点网络输出计算反向误差权值学习学习结束?对测试样本分类结束NBP神经网络在分类与预测中的应用模型一我们先做第一种尝试,将人名的前五个字母进行编号,a~z分别对应0~25,即每个人名的特征值是一个长度为5的一维列向量,总共280个人名就是个5*280的矩阵p,作为网络输入。将题目中的徽章问题量化,假设徽章为+则为1,徽章为-则为0,就形成一个1*280的矩阵t,作为目标输出。BP神经网络在分类与预测中的应用将这些特征值作为训练样本,通过Matlab的工具箱对BP分类算法进行训练,并确定权值,具体程序,注释及结果如下:模型一BP神经网络在分类与预测中的应用net=newff([025;025;025;025;025],[100,1],{'logsig','purelin'},'trainlm');//创建一个神经网络,每个字母所对应的量化值的输入范围0~25,神经网络有2层,第一层有100个神经元,第二层1个,传递函数分别是S型和线性,训练方式trainlm。net=init(net);//初始化神经网络net.trainParam.min_grad=1e-020;//设定最小梯度值,提高训练效果net=train(net,p,t);TRAINLM,Epoch0/100,MSE4.78695/0,Gradient4628.35/1e-020TRAINLM,Epoch25/100,MSE0.000969475/0,Gradient4.93588/1e-020TRAINLM,Epoch50/100,MSE6.16266e-005/0,Gradient4.48141/1e-020TRAINLM,Epoch72/100,MSE4.00219e-031/0,Gradient1.53435e-013/1e-020TRAINLM,MaximumMUreached,performancegoalwasnotmet.模型一BP神经网络在分类与预测中的应用训练次数与训练精度的关系图BP神经网络在分类与预测中的应用将用于训练的输入数据p代入训练后的神经网络,输出结果为a矩阵模型一a=sim(net,p)a=Columns1through91.00000.00001.00001.00000.00001.0000-0.00001.00001.0000Columns10through181.00001.00001.00001.00001.0000-0.00001.0000-0.00001.0000(后面数据略)将它和用于训练的目标输出矩阵t对比可以看出,吻合得很好BP神经网络在分类与预测中的应用模型一a=sim(net,n)a=Columns1through81.38890.85041.00000.9551-0.0006-0.05151.0000-0.7714Columns9through141.07760.99772.06550.46730.47941.0000将14个待分类的人名的前五个字母编码输入神经网络,得到的结果如下:可以看到,这个结果不是很好,由很多介于0和1之间的数字,从这里的分析可以看出,选取字母的编码作为特征值是合理的,但需要对特征值的选取方案进行细化。BP神经网络在分类与预测中的应用模型二对所给出的280个人名取特征值,我们将人名的第一个字母的进行编号,a~z分别对应0~25,并将这些特征值带入到BP网络中去进行训练,具体程序如下:net=newff([025],[100,1],{'logsig','purelin'},'trainlm');net=train(net,p,t);TRAINLM,Epoch0/100,MSE36.4541/0,Gradient10111.3/1e-010TRAINLM,Epoch6/100,MSE0.115783/0,Gradient7.80296e-013/1e-010TRAINLM,Minimumgradientreached,performancegoalwasnotmet.net.trainParam.min_grad=1e-020;net=train(net,p,t);TRAINLM,Epoch0/100,MSE0.115783/0,Gradient7.80296e-013/1e-020TRAINLM,Epoch3/100,MSE0.115783/0,Gradient1.18794e-012/1e-020TRAINLM,MaximumMUreached,performancegoalwasnotmet.BP神经网络在分类与预测中的应用模型二从训练情况可以看出,在误差值比较大的时候训练就停止了,将输入p带入训练后的矩阵,发现输出结果与t很不一致,说明这里找不到分类的规律。BP神经网络在分类与预测中的应用模型三对所给出的280个人名取特征值,我们将人名的第二个字母的进行编号,a~z分别对应0~25,并将这些特征值带入到BP网络中去进行训练,具体程序如下:BP神经网络在分类与预测中的应用模型三net=newff([025],[100,1],{'logsig','purelin'},'trainlm');net=init(net);net.trainParam.epochs=100;net.trainParam.min_grad=1e-020;net=train(net,p,t);TRAINLM,Epoch0/100,MSE1.33712/0,Gradient889.071/1e-020TRAINLM,Epoch7/100,MSE0.00352734/0,Gradient2.11219e-012/1e-020TRAINLM,MaximumMUreached,performancegoalwasnotmet.a=sim(net,p)训练后的BP神经网络,输入参加训练的数据p,验证数据,可以看出,和所给人名所对应的徽章满足的很好,所得到的数据如下:BP神经网络在分类与预测中的应用模型三a=Columns1thr