本发明涉及人工智能技术领域,具体涉及一种神经网络优化方法、装置、计算机设备及存储介质。
背景技术:
工艺过程中的工况是由控制器进行闭环反馈控制的。设备的老化、环境的变动以及原料成分的变动等诸多因素形成的对工艺过程的慢扰动,从而需要根据某些指标规定不断地去改变控制器的设定值,使工业过程保持在最优状况,来增加产量,减少原材料和能源消耗,并且还能够提高产品质量,这是工艺过程优化的目的。随着工艺生产的大规模集成化、自动化,人们对控制系统的性能要求不断提高,已不满足生产装置的稳定运行。另外,人们对环保意识的逐步增强,以及原材料的价格上涨致使的生产成本的不断提高,因此希望可以寻得一种有效的方法,在尽可能保持原有设备的前提下,可以借助改善操作过程来实现成本和能耗的降低,并且保持高质量、高产量和高生产效率。
国内外的专家学者提出了众多方法来改进工艺过程。诸如采用静态多级优化方法、稳态递阶优化控制方法、集成研究方法isope等,这些优化方法在解决过程大规模、变量关联方面取得了不少成果。但总的来说,这些方法所采取的优化策略仍然是基于传统的线性规划或非线性规划方法。而实际上,工艺工程是异常复杂的,尽管通过系统分解,可以使每个子系统的变量维数大幅减少,但并不能消除系统本身所具有的非线性。并且在实际工业过程中,变量间的非线性关系往往不是用简单的非线性模型能描述的,或者说,即便可以描述,但要通过不断的补偿和修正来获取次优解,从而导致整个工艺闭环优化监测效果较差。
目前,在人工智能技术领域,神经网络是一类新的知识表达体系,具有知识的分布存储、并行处理、强容错性、非线性映射能力及很强的自学习、自适应能力等。由于神经网络具有寻优精确的特点,因此,可以利用神经网络来对工艺过程中的参数进行优化改进,但是由于神经网络训练过程中,容易陷入局部最小点等缺陷,导致工艺过程的优化失败。
技术实现要素:
本发明要解决现有技术中由于神经网络在工艺过程优化的应用中,容易陷入局部最小值导致工艺过程优化失败的问题,从而提供一种神经网络优化方法、装置、计算机设备及存储介质。
本发明的一方面,提供了一种神经网络优化方法,所述神经网络用于优化工艺过程,方法包括:建立所述工艺过程对应的神经网络,所述神经网络包括输入层、隐含层和输出层,其中,所述输入层的节点与所述工艺过程的参数一一对应,所述输出层节点与所述工艺过程的优化指标参数对应;利用遗传算法对所述神经网络的权值和阈值的分布进行优化,得到所述神经网络的权值和阈值的搜索区间;对所述神经网络进行训练以从所述搜索区间中确定出权值和阈值的最优解,得到训练后的神经网络。
可选地,利用遗传算法对所述神经网络的权值和阈值的分布进行优化,包括:随机生成若干个个体,每个个体包括对应的神经网络的权值和阈值;计算每个个体的适应度;根据计算得到的适应度选择一部分个体作为父代个体;对所述父代个体进行遗传操作得到子代个体,计算所述子代个体的适应度;将所述子代个体中适应度高于父代个体的适应度的子代个体作为新的父代个体,替换掉父代个体中适应度低的个体。
可选地,还包括:计算父代个体中所有个体的在遗传算法中的误差平方和;判断每个父代个体的误差平方和是否小于目标误差;将误差平方和小于所述目标误差的父代个体对应的权值和阈值,作为所述搜索区间的一个要素,用于进行所述神经网络的训练。
可选地,在计算每个个体的适应度之前,还包括:利用实数编码对所述神经网络的权值和阈值进行编码。
可选地,编码长度s为:
s=r*s1+s1*s2+s1+s2
其中,r表示所述输入层的节点个数,s1表示所述隐含层的节点个数,s2表示输出层的节点个数。
可选地,还包括:获取所述工艺过程的训练样本;将所述训练样本归一化处理到[-2,2]。
可选地,还包括:根据所述输入层的节点数量和所述输出层的节点数量计算得到所述隐含层的节点数量区间,所述神经网络的隐含层的节点在该区间可变;通过对比所述神经网络在不同隐含层节点的训练结果的误差,确定出最优的隐含层节点数。
本发明的另一方面,提供了一种神经网络优化装置,所述神经网络用于优化工艺过程,所述装置包括:建立单元,用于建立所述工艺过程对应的神经网络,所述神经网络包括输入层、隐含层和输出层,其中,所述输入层的节点与所述工艺过程的参数一一对应,所述输出层节点与所述工艺过程的优化指标参数对应;优化单元,用于利用遗传算法对所述神经网络的权值和阈值的分布进行优化,得到所述神经网络的权值和阈值的搜索区间;训练单元,用于对所述神经网络进行训练以从所述搜索区间中确定出权值和阈值的最优解,得到训练后的神经网络。
本发明的另一方面,提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述方法的步骤。
本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序:所述计算机程序被处理器执行时实现所述方法的步骤。
本发明实施例,先利用遗传算法对神经网络的初始权值和阈值分布进行优化,寻找出权值和阈值的合适的搜索区间,然后再利用神经网络训练以在该搜索区间寻找最优解,从而可以避免神经网络训练过程中陷入局部最小点,可以更加有效的优化工艺生产线。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中神经网络优化方法的流程图;
图2为本发明实施例中bp神经网络的结构图;
图3为本发明实施例中焚烧工艺线的架构图;
图4为本发明实施例中焚烧工艺线的工艺流程图;
图5为本发明实施例中对焚烧工艺线建立的神经网络结构图;
图6为本发明实施例中神经网络优化装置的示意图;
图7为本发明实施例计算机设备的硬件结构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明所述的神经网络,是指人工神经网络,属于人工智能领域。
遗传算法(geneticalgorithm,ga)是一种基于自然选择和基因遗传学原理的群体寻优的搜索算法,是模拟达尔文的遗传选择和自然淘汰的生物进化过程建立的数学进化模型。
本发明实施例提供了一种神经网络优化方法,其中,神经网络用于优化工艺过程,例如环保处理工艺线优化等,如图1所示,方法包括:
步骤s101,建立所述工艺过程对应的神经网络,所述神经网络包括输入层、隐含层和输出层,其中,所述输入层的节点与所述工艺过程的参数一一对应,所述输出层节点与所述工艺过程的优化指标参数对应。
本发明实施例中所述神经网络可以选择bp(backpropagation)神经网络,bp网络是一种单向传播的多层前向网络,其结构如图2所示。神经网络除输入层节点(x1-xn)和输出层节点(y1-yn)外,还有一层或多层的隐层层节点,同层节点中没有任何耦合。输入信号从输入层节点依次传过各隐含层节点,然后传到输出层节点,每一层节点的输出只影响下一层节点的输出。其节点各单元的传递函数通常为sigmoid型f(x)=1/[(1+exp(-bx))](b>0)但在输出层中,节点的单元传递函数采用线性处理。
在构建神经网络的过程中,具体需要构建节点输出模型、激励函数、误差计算函数以及网络学习过程模型等内容,后续将进行具体举例说明。需要说明的是,本发明实施例并不限于bp神经网络,本领域技术人员可以根据不同工艺需求,选择合适的神经网络,本发明不做限定。
步骤s102,利用遗传算法对所述神经网络的权值和阈值的分布进行优化,得到所述神经网络的权值和阈值的搜索区间。
步骤s103,对所述神经网络进行训练以从所述搜索区间中确定出权值和阈值的最优解,得到训练后的神经网络。
神经网络构建完成之后,主要用于进行训练调整其权值和阈值,已达到输出最优解的目的,但是由于神经网络在训练过程中,容易陷入局部最小点,本发明实施例,则先利用遗传算法对神经网络的初始权值和阈值分布进行优化,寻找出权值和阈值的合适的搜索区间,然后再利用神经网络训练以在该搜索区间寻找最优解,从而可以避免神经网络训练过程中陷入局部最小点,可以更加有效的优化工艺生产线。
作为一种可选实施方式,上述步骤s102,利用遗传算法对所述神经网络的权值和阈值的分布进行优化,包括:
步骤s1021,随机生成若干个个体,每个个体包括对应的神经网络的权值和阈值。这里所述的若干个个体也即是随机生成的权值或阈值。
步骤s1022,计算每个个体的适应度。根据遗传算法计算每个个体的适应度,具体地,可以先计算出每个个体对应的误差平方和se,进而得到优化网络的适应度val=1/se。在计算每每个个体的适应度之前,可以先利用实数编码对所述神经网络的权值和阈值进行编码,编码长度s为:
s=r*s1+s1*s2+s1+s2
其中,r表示所述输入层的节点个数,s1表示所述隐含层的节点个数,s2表示输出层的节点个数。
步骤s1023,根据计算得到的适应度选择一部分个体作为父代个体。优先选择适应度高的个体作为父代个体,例如,按照适应度的大小,选择排名靠前的50%的个体作为父代个体,参与到后续的遗传操作。
步骤s1024,对所述父代个体进行遗传操作得到子代个体,计算所述子代个体的适应度。可以依据旋轮法从两个个体进行交换运算产生两个子代,或从中选择一个个体进行变异运算产生一个子代。
步骤s1025,将所述子代个体中适应度高于父代个体的适应度的子代个体作为新的父代个体,替换掉父代个体中适应度低的个体。若子代的适合度比父代的适合度高,则将父代中的个体去掉,形成新的父代,保存父代中的个体数不变。
可以根据需要设置遗传的迭代的次数,重复执行上述步骤s1024和s1025。直到所有父代个体依据遗传算法的误差平法和小于目标误差时,停止迭代,将该父代个体作为上述搜索区间,用于神经网络的训练。
可选地,可以再每个父代产生之后,进行相应的判断,具体地,还包括:计算父代个体中所有个体的在遗传算法中的误差平方和;判断每个父代个体的误差平方和是否小于目标误差;将误差平方和小于所述目标误差的父代个体对应的权值和阈值,作为所述搜索区间的一个要素,用于进行所述神经网络的训练。
作为本发明实施例的另一方面,如果在对神经网络进行训练结束之后,如果判断出神经网络的误差平方和仍不能满足要求,则表示可能陷入局部极小点,因此,需要再次返回执行上述遗传算法的优化流程,也即是重复上述步骤s1021-1025,直到神经网络的误差平方和满足精度要求为止。
作为一种可选实施方式,由于本发明实施例中,采用遗传算法来寻找神经网络的搜索区间,降低了神经网络对训练样本数据的极大依赖性,本发明实施例通过对神经网络的训练样本数据进行处理以提高网络的收敛速度。具体地,神经网络优化方法还包括:获取所述工艺过程的训练样本;将所述训练样本归一化处理到[-2,2]。这样在进行神经网络训练时,由于训练样本数据归一化到[-2,2],相对于现有技术中归一化到[0,1]的方式而言,收敛速度大大提升。
由于原始样本中各向量的数量级差别很大,为方便计算及防止部分神经元达到过饱和状态,所以对样本进行归一化处理,本发明采用premnmx函数进行处理,其处理过程如下:
从而将样本数据归一化到[-2,2],提高网络的收敛速度。其中,p为原始数据;pd为归一化后的数据;minp和maxp分别表示p的最小值和最大值。
作为一种可选的实施方式,本发明实施例中对于神经网络模型的节点输出模型为:
oj=f(∑wij×xi-qj)
yk=f(∑tjk×oj-qk)
其中,oj表示中间层节点输出,yk表示输出层节点输出,f为非线性函数,wij和tij为权值,xi为输入,q为对应神经单元(节点)的阈值。
作为一种可选实施方式,本发明实施例的神经网络的隐含层的传递函数可以选取双曲正切型函数:
f1(x)=(1-ex)/(1+ex)
输出层的传递函数可以选取线性函数:
f2(x)=x
作为一种可选实施方式,本发明实施例的神经网络的期望输出与计算输出之间的误差计算函数为:
ep=1/2×(∑tpi-opi)2
其中,tpi为及诶单的期望输出值,opi为节点的计算输出值。
作为本发明的一种可选实施方式,本发明实施例中,对神经网络的训练过程中包括信息正向传播和误差反向传播。其中,正向传播过程中,输入信息从输入层经过隐含层逐层助理,传向输出层。若输出层的实际输出与期望的输出不符,则转入误差的反向传播。神经网络的训练过程也就是连接下层节点和上层节点之间的权值矩阵的设定和误差修正过程,其模型为:
δwij(n)=η×φi×oj
其中,η为学习因子,φi为输出节点i的计算误差,oj输出节点j的计算输出。未使用遗传算法优化前所建立的网络模型权值和阈值均为随机生成的随机数。网络中加入了固定的动量项mc和固定的学习率lr,网络的训练函数为trainmodel,性能函数为mse,目标误差设定为1e-4。
以图3的环保处理工艺线作为示例对本发明实施例的进行举例说明。图3示出了焚烧工艺线的全貌,包括了上料、回转窑、二燃等10余个流程,其具体工艺流程如图4所示。
根据对影响工艺流程的因素分析,并考虑到工艺过程中的各测点的布置情况,建立bp神经网络,如图5所示。
输入层:共8个节点,分别为主蒸汽流量、炉温、排烟温度、烟气含氧量、一次风量、二次风量、过热器入口烟温、主蒸汽压力。
输出层:一个节点,为工艺过程中,烟囱的排出量差。
隐含层:隐含层节点数的确定方法有很多种。
作为一种可选实施方式,本发明实施例所述的方法还包括:根据所述输入层的节点数量和所述输出层的节点数量计算得到所述隐含层的节点数量区间,所述神经网络的隐含层的节点在该区间可变;通过对比所述神经网络在不同隐含层节点的训练结果的误差,确定出最优的隐含层节点数。
具体地,本发明实施例设计了一个隐含层个数可变的bp神经网络,通过误差对比,确定出最佳的隐含层神经元个数,并检验隐含层神经元个数对网络性能的影响。
对于上述工艺流程示例而言,由于网络的输入层神经元个数为8,输出层的神经元个数为1,根据经验公式:
式中:m和n分别为输入层和输出层的节点个数;a的取值范围为[1,10]。该神经网络隐含层的神经元个数(也即是节点数)应该为4~13。根据kolmogorov定理可知,若输入层有n个节点数,隐含层的节点数为2n+1。故隐含层神经元个数选为[4,18],不同隐含层节点数所对应的训练误差和步数。采用本发明实施例的神经网络训练结果对比之后,将网络隐含层的神经元数目设定为12。
本发明实施例中所述的上述焚烧工艺流程,在进行优化的过程中,设计了上述的神经网络模型,并采用本发明所述的优化方法,训练过程中根据某客户的环保处理工艺线上的实际运行资料,选用了20组数据,其中15组数据作为预测样本,5组数据作为检验网络性能的检验样本。
对所有设备数据、包括了压力、温度、流量、浓度等数据。基于这些海量工艺数据,将业务专家的行业知识,通过基于遗传算法优化后的bp神经网络的技术手段,得到最优的工艺控制模型,实现了分钟级甚至秒级工艺流程的决策分析。通过这些技术手段,回转窑积灰结焦情况明显好转,停炉清灰有原有每月一次,提高到三月一次;在后续工艺不需要尿素喷淋脱销情况下就可以达到国家排放标准;另外,也极大地提高了燃烧效率,减少了各种有害气体的处理成本。
本发明实施例还提供了一种神经网络优化装置,该装置可以用于执行本发明上述实施例所述的神经网络优化方法,如图6所述,所述装置包括:
建立单元601,用于建立所述工艺过程对应的神经网络,所述神经网络包括输入层、隐含层和输出层,其中,所述输入层的节点与所述工艺过程的参数一一对应,所述输出层节点与所述工艺过程的优化指标参数对应。
优化单元602,用于利用遗传算法对所述神经网络的权值和阈值的分布进行优化,得到所述神经网络的权值和阈值的搜索区间。
训练单元603,用于对所述神经网络进行训练以从所述搜索区间中确定出权值和阈值的最优解,得到训练后的神经网络。
可选地,所述优化单元602包括:生成模块,用于随机生成若干个个体,每个个体包括对应的神经网络的权值和阈值;第一计算模块,用于计算每个个体的适应度;选择模块,用于根据计算得到的适应度选择一部分个体作为父代个体;遗传模块,用于对所述父代个体进行遗传操作得到子代个体,计算所述子代个体的适应度;替换模块,用于将所述子代个体中适应度高于父代个体的适应度的子代个体作为新的父代个体,替换掉父代个体中适应度低的个体。
可选地,所述优化单元602还包括:第二计算模块,用于计算父代个体中所有个体的在遗传算法中的误差平方和;判断模块,用于判断每个父代个体的误差平方和是否小于目标误差;将误差平方和小于所述目标误差的父代个体对应的权值和阈值,作为所述搜索区间的一个要素,用于进行所述神经网络的训练。
可选地,所述优化单元602还包括:编码模块,用于利用实数编码对所述神经网络的权值和阈值进行编码。
可选地,编码长度s为:
s=r*s1+s1*s2+s1+s2
其中,r表示所述输入层的节点个数,s1表示所述隐含层的节点个数,s2表示输出层的节点个数。
可选地,所述装置还包括:获取单元,用于获取所述工艺过程的训练样本;处理单元,用于将所述训练样本归一化处理到[-2,2]。
可选地,所述装置还包括:计算单元,用于根据所述输入层的节点数量和所述输出层的节点数量计算得到所述隐含层的节点数量区间,所述神经网络的隐含层的节点在该区间可变;确定单元,用于通过对比所述神经网络在不同隐含层节点的训练结果的误差,确定出最优的隐含层节点数。
关于装置部分的具体描述和技术效果,可以参见上述方法实施例,这里不再赘述。
本实施例还提供一种计算机设备,如可以执行程序的台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图7所示。需要指出的是,图7仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储单元,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作系统和各类应用软件,例如实施例所述的神经网络优化装置的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行神经网络优化装置,以实现实施例的神经网络优化方法。
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储神经网络优化装置,被处理器执行时实现实施例的神经网络优化方法。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本申请的保护范围之中。