基于AGN及CNN的单目标优化问题寻优方法及装置与流程

文档序号:14098393阅读:363来源:国知局

本发明涉及计算机应用技术领域,特别是涉及一种基于agn及cnn的单目标优化问题寻优方法及装置。



背景技术:

随着计算机应用技术的快速发展,对优化问题的研究也受到越来越多的关注。现实世界中有着大量的优化问题,对于优化问题的解决主要可以分为两个步骤。第一步是针对给定的一个实际优化问题,通过数学建模的方式将其转换为有着规范函数表达的优化问题,也就是定义决策空间、目标空间以及两者之间的映射关系;第二步是在上一步中获得的规范函数表达的优化问题基础上,通过计算的方式求得其最优解。

优化问题依据决策变量是否连续可以分为两大类。如果决策变量是连续的,那么优化问题是连续优化问题;如果决策变量是离散的,那么优化问题是组合优化问题。优化问题依据是否有约束,可以分为有约束的和无约束的。依据目标变量的个数,可以分为单目标优化和多目标优化。

优化问题的求解有两大类方法,包括解析方法和数值方法。

解析方法是通过严格的数学证明与推导,得到精确的最优解,仅能解决一些典型的优化问题,在实际问题上往往难以应用。数值方法是通过设计恰当的迭代算式,通过一系列迭代,得到近似最优解,对优化问题要求很低,只需要给定一个决策向量、优化问题可以反馈一个目标向量,即优化问题可以是一个黑盒问题、无需明显的表达式,适合求解实际问题。

传统的数值优化方法,如牛顿法等,容易陷入问题的局部最优;而广义的进化算法(包括进化算法和群智能算法)通过模拟生物群体行为特性或是事物的发展与结构特性,设计迭代算式,全局搜索能力较强,但求解复杂的优化问题时耗时较长且近似最优解的精度不够,若模型参数设计不合理则出现求解不出近似最优解的情况,另外,对于有约束的优化问题,模型设计的难度将大大增加且模型参数难以确定,使得求解出来的解效果较差,难以满足实际问题要求。



技术实现要素:

本发明的目的是提供一种基于agn及cnn的单目标优化问题寻优方法及装置,以对单目标连续型优化问题进行快速寻优。

为解决上述技术问题,本发明提供如下技术方案:

一种基于agn及cnn的单目标优化问题寻优方法,包括:

步骤a:根据待处理的优化问题,确定待优化函数z=g(x1,x2,x3,…,xk);其中,x1、x2、x3、……、xk为决策变量,z为优化目标,k为决策变量个数;

步骤b:在待优化领域db中采集所述待优化函数的待优化目标点云组,所述待优化目标点云组包含p个待优化目标点云;其中,所述待优化领域db中,x1∈[a1,b1],x2∈[a2,b2],…,xk∈[ak,bk];

步骤c:在k>2时,创建并训练去噪自编码器网络agn,利用所述agn的编码部分将各个决策变量x1、x2、x3、……、xk编码为y1和y2,所述agn的输入层和输出层神经元个数均为k;

步骤d:将所述待优化目标点云组对应的y1值及y2值分别按由小至大的方式进行排序,将y1值映射为其在按y1排序中的序号y1',将y2值映射为其在按y2排序中的序号y2',并创建映射表aa存储y1值与y1'的关系、y2值与y2'的关系以及对应的z值;

步骤e:选取每个待优化目标点云的y1'值及y2'值作为代表相应待优化目标点云的两个特征,创建所述待优化目标点云组的二维矩阵kk;其中,y1'为所述二维矩阵kk的行序号,y2'为所述二维矩阵kk的列序号,所述二维矩阵kk上第y1'行第y2'列的值为z;

步骤f:将所述二维矩阵kk输入到预先训练获得的cnn二决策变量寻优器中,获得所述二维矩阵kk中最值点的y1'值、y2'值及z值;

步骤g:查询所述映射表aa,将y1'值映射为y1,将y2'值映射为y2,利用所述agn的解码部分将y1和y2解码为x1、x2、x3、……、xk,输出优化结果为:当x1取x1、x2取x2、……、xk取xk时达到全局最优z。

在本发明的一种具体实施方式中,还包括:

在k=2时,令y1=x1,y2=x2,执行步骤d至步骤g的操作。

在本发明的一种具体实施方式中,所述创建并训练获得去噪自编码器网络agn,包括:

创建一个三层的去噪自编码器模型,所述去噪自编码器模型的输入层和输出层的神经元个数均为k,所述去噪自编码器模型的隐藏层神经元个数为2;

分别设置所述去噪自编码器模型的相关参数,所述相关参数包括神经元激活函数、损失函数、训练算法、学习率、批量训练样本数目ba'、噪声系数和最小误差nm';

在所述待优化领域db上采集所述待优化函数的p个待优化目标点云,构成训练集p’;

利用高斯分布随机数初始化所述去噪自编码器模型的所有权值和阈值;

对所述训练集p’中各待优化目标点云进行归一化处理;

从所述训练集p’中依次选取ba'个待优化目标点云输入到所述去噪自编码器模型进行前向传播计算,获得相应的模型输出,分别计算该ba'个待优化目标点云对应的模型输出与相应待优化目标点云自身之间的误差,并反向传播调节所述去噪自编码器模型所有权值和阈值;直至整体误差n'小于最小误差nm',结束训练。

在本发明的一种具体实施方式中,通过以下步骤预先训练获得所述cnn二决策变量寻优器:

步骤h:选取一个目标二维函数k=f(k1,k2),在训练领域da上采集该目标二维函数的目标二维函数点云组,所述目标二维函数点云组包含n*n个目标二维函数点云,所述训练领域da中,k1∈[a,b],k2∈[c,d],n为正整数;

步骤i:将所述目标二维函数点云组对应的k1值及k2值分别按由小至大的方式进行排序,将k1值映射为其在按k1排序中的序号k1',将k2值映射为其在按k2排序中的序号k2',并创建映射表bb存储k1值与k1'的关系、k2值与k2'的关系以及对应的k值;

步骤j:选取每个目标二维函数点云的k1'值及k2'值作为代表相应目标二维函数点云的两个特征,并创建所述目标二维函数点云组的二维矩阵kk;其中,k1'为所述二维矩阵kk的行序号,k2'为所述二维矩阵kk的列序号,所述二维矩阵kk中第k1'行第k2'列的值为该目标二维函数的k值;

步骤k:确定所述二维矩阵kk中k值为最值的点,并基于预设的标定方式,以该最值点的k1'值、k2'值和k值对所述二维矩阵kk进行标定,获得一组已标定训练数据;

步骤l:选取nn-1个其他不同的目标二维函数或训练领域da分别重复步骤h至步骤k,共获得nn组已标定训练数据;

步骤m:将nn组已标定训练数据中的m组已标定训练数据构成训练集p,剩余的已标定训练数据构成测试集s;

步骤n:通过所述训练集p和所述测试集s对预先创建的cnn模型进行训练,直至训练成功,获得所述cnn二决策变量寻优器;

其中,nn、m均为正整数,且m小于nn。

在本发明的一种具体实施方式中,所述步骤n:通过所述训练集p和所述测试集s对预先创建的cnn模型进行训练,直至训练成功,获得所述cnn二决策变量寻优器,包括:

初始化预先创建的cnn模型;

分别对所述训练集p中每组已标定训练数据进行归一化处理;

从所述训练集p中,依次选取一组已标定训练数据,将该组已标定训练数据输入到所述cnn模型进行前向传播计算,获得相应的模型输出,计算该组已标定训练数据对应的模型输出与预先标定的标签之间的误差,并反向传播调节所述cnn模型的所有权值和阈值;直至整体误差n小于最小误差nm,结束训练;

将所述测试集s进行归一化处理;

将从所述测试集s中,依次选取一组已标定训练数据输入到已完成训练的所述cnn模型中进行前向传播计算,获得相应的模型输出,并与预先标定的标签进行对比,最终计算所述测试集s的整体错误率m;

确定所述整体错误率m是否满足预设要求,如果是,则确定所述cnn模型训练成功,获得所述cnn二决策变量寻优器。

在本发明的一种具体实施方式中,在确定所述整体错误率m不满足所述预设要求时,还包括:

选取其他不同的目标二维函数k=f(k1,k2)或训练领域da,重复执行步骤h至步骤k,增加所述训练集p的已标定训练数据组数,继续对所述cnn模型进行训练,直至所述整体错误率m满足所述预设要求,确定所述cnn模型训练成功,获得所述cnn二决策变量寻优器。

一种基于agn及cnn的单目标优化问题寻优装置,包括:

待优化函数确定模块,用于根据待处理的优化问题,确定待优化函数z=g(x1,x2,x3,…,xk);其中,x1、x2、x3、……、xk为决策变量,z为优化目标,k为决策变量个数;

待优化目标点云组采集模块,用于在待优化领域db中采集所述待优化函数的待优化目标点云组,所述待优化目标点云组包含p个待优化目标点云;其中,所述待优化领域db中,x1∈[a1,b1],x2∈[a2,b2],…,xk∈[ak,bk];

决策变量编码模块,用于在k>2时,创建并训练去噪自编码器网络agn,利用所述agn的编码部分将各个决策变量x1、x2、x3、……、xk编码为y1和y2,所述agn的输入层和输出层神经元个数均为k;

映射模块,用于将所述待优化目标点云组对应的y1值及y2值分别按由小至大的方式进行排序,将y1值映射为其在按y1排序中的序号y1',将y2值映射为其在按y2排序中的序号y2',并创建映射表aa存储y1值与y1'的关系、y2值与y2'的关系以及对应的z值;

二维矩阵创建模块,用于选取每个待优化目标点云的y1'值及y2'值作为代表相应待优化目标点云的两个特征,创建所述待优化目标点云组的二维矩阵kk;其中,y1'为所述二维矩阵kk的行序号,y2'为所述二维矩阵kk的列序号,所述二维矩阵kk上第y1'行第y2'列的值为z;

最值点获得模块,用于将所述二维矩阵kk输入到预先训练获得的cnn二决策变量寻优器中,获得所述二维矩阵kk中最值点的y1'值、y2'值及z值;

优化结果输出模块,用于查询所述映射表aa,将y1'值映射为y1,将y2'值映射为y2,利用所述agn的解码部分将y1和y2解码为x1、x2、x3、……、xk,输出优化结果为:当x1取x1、x2取x2、……、xk取xk时达到全局最优z。

在本发明的一种具体实施方式中,所述决策变量编码模块,具体用于通过以下步骤创建并训练获得去噪自编码器网络agn:

创建一个三层的去噪自编码器模型,所述去噪自编码器模型的输入层和输出层的神经元个数均为k,所述去噪自编码器模型的隐藏层神经元个数为2;

分别设置所述去噪自编码器模型的相关参数,所述相关参数包括神经元激活函数、损失函数、训练算法、学习率、批量训练样本数目ba'、噪声系数和最小误差nm';

在所述待优化领域db上采集所述待优化函数的p个待优化目标点云,构成训练集p’;

利用高斯分布随机数初始化所述去噪自编码器模型的所有权值和阈值;

对所述训练集p’中各待优化目标点云进行归一化处理;

从所述训练集p’中依次选取ba'个待优化目标点云输入到所述去噪自编码器模型进行前向传播计算,获得相应的模型输出,分别计算该ba'个待优化目标点云对应的模型输出与相应待优化目标点云自身之间的误差,并反向传播调节所述去噪自编码器模型所有权值和阈值;直至整体误差n'小于最小误差nm',结束训练。

在本发明的一种具体实施方式中,还包括cnn二决策变量寻优器获得模块,用于通过以下步骤预先训练获得所述cnn二决策变量寻优器:

步骤h:选取一个目标二维函数k=f(k1,k2),在训练领域da上采集该目标二维函数的目标二维函数点云组,所述目标二维函数点云组包含n*n个目标二维函数点云,所述训练领域da中,k1∈[a,b],k2∈[c,d],n为正整数;

步骤i:将所述目标二维函数点云组对应的k1值及k2值分别按由小至大的方式进行排序,将k1值映射为其在按k1排序中的序号k1',将k2值映射为其在按k2排序中的序号k2',并创建映射表bb存储k1值与k1'的关系、k2值与k2'的关系以及对应的k值;

步骤j:选取每个目标二维函数点云的k1'值及k2'值作为代表相应目标二维函数点云的两个特征,并创建所述目标二维函数点云组的二维矩阵kk;其中,k1'为所述二维矩阵kk的行序号,k2'为所述二维矩阵kk的列序号,所述二维矩阵kk中第k1'行第k2'列的值为该目标二维函数的k值;

步骤k:确定所述二维矩阵kk中k值为最值的点,并基于预设的标定方式,以该最值点的k1'值、k2'值和k值对所述二维矩阵kk进行标定,获得一组已标定训练数据;

步骤l:选取nn-1个其他不同的目标二维函数或训练领域da分别重复步骤h至步骤k,共获得nn组已标定训练数据;

步骤m:将nn组已标定训练数据中的m组已标定训练数据构成训练集p,剩余的已标定训练数据构成测试集s;

步骤n:通过所述训练集p和所述测试集s对预先创建的cnn模型进行训练,直至训练成功,获得所述cnn二决策变量寻优器;

其中,nn、m均为正整数,且m小于nn。

在本发明的一种具体实施方式中,所述cnn二决策变量寻优器获得模块,具体用于:

初始化预先创建的cnn模型;

分别对所述训练集p中每组已标定训练数据进行归一化处理;

从所述训练集p中,依次选取一组已标定训练数据,将该组已标定训练数据输入到所述cnn模型进行前向传播计算,获得相应的模型输出,计算该组已标定训练数据对应的模型输出与预先标定的标签之间的误差,并反向传播调节所述cnn模型的所有权值和阈值;直至整体误差n小于最小误差nm,结束训练;

将所述测试集s进行归一化处理;

将从所述测试集s中,依次选取一组已标定训练数据输入到已完成训练的所述cnn模型中进行前向传播计算,获得相应的模型输出,并与预先标定的标签进行对比,最终计算所述测试集s的整体错误率m;

确定所述整体错误率m是否满足预设要求,如果是,则确定所述cnn模型训练成功,获得所述cnn二决策变量寻优器。

应用本发明实施例所提供的技术方案,通过训练完成的去噪自编码器网络agn的编码部分将决策变量个数k不为2的优化问题模型转换为决策变量个数为2的优化问题模型,并将转换后的两个决策变量输入到已训练成功的cnn二决策变量寻优器中快速输出全局最优结果,最终通过训练完成的去噪自编码器网络的解码部分将所述cnn二决策变量寻优器输出的全局最优结果中两个决策变量转换为原来决策变量个数为k的空间,输出最终该优化问题的全局最优结果。基于训练成功的所述cnn二决策变量寻优器实现了输出优化问题的全局最优结果,所述cnn二决策变量寻优器的寻优计算为线性并行计算,寻优速度快,可直接找到全局最优,不存在陷入局部最优的情况。另外,对于有约束的优化问题,同样简单适用。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种基于agn及cnn的单目标优化问题寻优方法的实施流程图;

图2为本发明实施例中一种去噪自编码器的结构示意图;

图3为本发明实施例中一种cnn模型的结构示意图;

图4为本发明实施例中一种基于agn及cnn的单目标优化问题寻优装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1所示,为本发明实施例所提供的一种基于agn及cnn的单目标优化问题寻优方法的实施流程图,该方法可以包括以下步骤:

步骤a:根据待处理的优化问题,确定待优化函数z=g(x1,x2,x3,…,xk)。

其中,x1、x2、x3、……、xk为决策变量,z为优化目标,k为决策变量个数。

在实际应用中,可以根据具体待处理的优化问题,建立该具体优化问题的数学模型,确定待优化函数z=g(x1,x2,x3,…,xk),表明该具体优化问题的决策变量分别为:x1、x2、x3、……、xk,决策变量个数为k,优化目标为z,通过待优化函数可表示决策变量与优化目标的关系。待优化函数z=g(x1,x2,x3,…,xk)中的g可以是未知的函数映射关系。

步骤b:在待优化领域db中采集待优化函数的待优化目标点云组。

待优化目标点云组包含p个待优化目标点云。其中,待优化领域db中,x1∈[a1,b1],x2∈[a2,b2],…,xk∈[ak,bk]。

可根据实际需要确定待优化领域db。在待优化领域db上采集待优化函数z=g(x1,x2,x3,…,xk)的p个待优化目标点云,p可根据实际应用情况获得,若p>n*n,则从p个待优化目标点云中随机选取n*n个待优化目标点云构成待优化目标点云组。待优化领域db中,x1∈[a1,b1],x2∈[a2,b2],…,xk∈[ak,bk]。

步骤c:在k>2时,创建并训练去噪自编码器网络agn,利用agn的编码部分将各个决策变量编码为y1和y2。

agn的输入层和输出层神经元个数均为k。

在本发明实施例中,在k>2时,可以创建并训练一个agn(denosingautoencodernetwork,去噪自编码器网络),该agn的输入层和输出层神经元个数均为k。利用agn的编码部分可以将各个决策变量x1、x2、x3、……、xk编码为y1和y2。

在本发明的一种具体实施方式中,可以通过以下步骤创建并训练去噪自编码器网络agn:

步骤一:创建一个三层的去噪自编码器模型,去噪自编码器模型的输入层和输出层的神经元个数均为k,去噪自编码器模型的隐藏层神经元个数为2;

步骤二:分别设置去噪自编码器模型的相关参数,相关参数包括神经元激活函数、损失函数、训练算法、学习率、批量训练样本数目ba'、噪声系数和最小误差nm';

步骤三:在待优化领域db上采集待优化函数的p个待优化目标点云,构成训练集p’;

步骤四:利用高斯分布随机数初始化去噪自编码器模型的所有权值和阈值;

步骤五:对训练集p’中各待优化目标点云进行归一化处理;

步骤六:从训练集p’中依次选取ba'个待优化目标点云输入到去噪自编码器模型进行前向传播计算,获得相应的模型输出,分别计算该ba'个待优化目标点云对应的模型输出与相应待优化目标点云自身之间的误差,并反向传播调节去噪自编码器模型所有权值和阈值;直至整体误差n'小于最小误差nm',结束训练。

为便于描述,将上述六个步骤结合起来进行说明。

在本发明实施例中,首先创建一个三层的去噪自编码器模型,定义该去噪自编码器模型的输入层的神经元个数为决策变量个数k,该去噪自编码器模型的隐藏层的神经元个数为2,该去噪自编码器模型的输出层的神经元个数为决策变量个数k。如图2所示,l1为该去噪自编码器模型的输入层,l2为该去噪自编码器模型的隐藏层,l3为该去噪自编码器模型的输出层。

分别设置去噪自编码器模型的相关参数,相关参数包括神经元激活函数、损失函数、训练算法、学习率、批量训练样本数目ba'、噪声系数和最小误差nm'。

在实际应用中,上述相关参数可以根据用户实际需要灵活选取,本发明实施例对此不做限制,如隐藏层l2所有神经元的激活函数可以为softplus,输入层l1和输出层l3所有神经元均不使用激活函数,损失函数采用平方误差,学习率设置为0.01,批量训练样本数目ba'设置为50,训练算法可采用sgd随机梯度下降算法,最小误差nm'为0.001,噪声系数设置为0.01。

创建去噪自编码器模型后,可以对去噪自编码器模型进行训练,获得去噪自编码器网络agn。对去噪自编码器模型的具体训练过程如下:

在待优化领域db上采集待优化函数z=g(x1,x2,x3,…,xk)的p个待优化目标点云,构成训练集p’。利用高斯分布随机数初始化去噪自编码器模型的所有权值和阈值。p可根据实际应用情况获得,若p>n*n,则从p个待优化目标点云中随机选取n*n个待优化目标点云构成训练集p’。

对训练集p’中各待优化目标点云进行归一化处理,并从训练集p’中依次选取ba'个待优化目标点云,如ba'为50,即随机选取50个待优化目标点云,将ba'个待优化目标点云输入到去噪自编码器模型进行前向传播计算,获得相应的模型输出,分别计算该ba'个待优化目标点云输入到去噪自编码器模型后的模型输出和相应待优化目标点云自身之间的误差,并反向传播调节去噪自编码器模型所有权值和阈值;

一次训练完成后,计算整体误差n',若整体误差n'小于最小误差nm',则去噪自编码器模型训练结束,否则按照上述训练过程继续训练去噪自编码器模型,直至整体误差n'小于最小误差nm'时,结束训练。

通过创建并训练去噪自编码器模型,可获得去噪自编码器网络agn,利用agn的编码部分可以将各个决策变量编码为y1和y2,并继续执行以下步骤的操作。

在本发明的一个实施例中,在k=2时,可以直接令y1=x1,y2=x2,并继续执行以下步骤的操作。

步骤d:将待优化目标点云组对应的y1值及y2值分别按由小至大的方式进行排序,将y1值映射为其在按y1排序中的序号y1',将y2值映射为其在按y2排序中的序号y2',并创建映射表aa存储y1值与y1'的关系、y2值与y2'的关系以及对应的z值。

在本发明实施例中,每个待优化目标点云均对应一个y1值及y2值,将待优化目标点云组对应的y1值及y2值按由小至大的方式分别进行排序,可得到相应序号。将y1值映射为其在按y1排序中的序号y1',将y2值映射为其在按y2排序中的序号y2',并可创建映射表存储y1值与y1'的关系、y2值与y2'的关系及对应的z值。

步骤e:选取每个待优化目标点云的y1'值及y2'值作为代表相应待优化目标点云的两个特征,创建待优化目标点云组的二维矩阵kk。

其中,y1'为二维矩阵kk的行序号,y2'为二维矩阵kk的列序号,二维矩阵kk上第y1'行第y2'列的值为z。

针对每个待优化目标点云,可以选取该待优化目标点云的y1'值及y2'值作为代表该待优化目标点云的两个特征。得到每个待优化目标点云的两个特征后,基于此,可以创建待优化目标点云组的二维矩阵kk。y1'为二维矩阵kk的行序号,y2'为二维矩阵kk的列序号,二维矩阵kk上第y1'行第y2'列的值为z。

其中,z的计算方式为:若决策变量个数k=2,则x1=y1,x2=y2,将x1及x2带入z=g(x1,x2,x3,…,xk)中计算出z;否则,利用去噪自编码器网络agn的解码部分将y1和y2解码为x1、x2、x3、……、xk,并将x1、x2、x3、……、xk带入z=g(x1,x2,x3,…,xk)中计算出z。

步骤f:将二维矩阵kk输入到预先训练获得的cnn二决策变量寻优器中,获得二维矩阵kk中最值点的y1'值、y2'值及z值。

在本发明实施例中,可以通过训练获得cnn二决策变量寻优器。在步骤e中,创建待优化目标点云组的二维矩阵kk后,可以将二维矩阵kk输入到cnn二决策变量寻优器中,获得二维矩阵kk中最值点的y1'值、y2'值及z值。

cnn二决策变量寻优器中所要寻找的最值点,可以是最大值点,也可以是最小值点,可由用户根据具体实际需要选定。

在实际应用中,可以先对待优化目标点云进行归一化后,再输入到cnn二决策变量寻优器中。

步骤g:查询映射表aa,将y1'值映射为y1,将y2'值映射为y2,利用agn的解码部分将y1和y2解码为x1、x2、x3、……、xk,输出优化结果为:当x1取x1、x2取x2、……、xk取xk时达到全局最优z。

映射表aa中存储有y1值与y1'的关系、y2值与y2'的关系以及对应的z值,查询映射表aa,可以将y1'值映射为y1,将y2'值映射为y2,利用agn的解码部分将y1和y2解码为x1、x2、x3、……、xk,从而可以输出优化结果为:当x1取x1、x2取x2、……、xk取xk时达到全局最优z。

应用本发明实施例所提供的方法,通过训练完成的去噪自编码器网络agn的编码部分将决策变量个数k不为2的优化问题模型转换为决策变量个数为2的优化问题模型,并将转换后的两个决策变量输入到已训练成功的cnn二决策变量寻优器中快速输出全局最优结果,最终通过训练完成的去噪自编码器网络的解码部分将cnn二决策变量寻优器输出的全局最优结果中两个决策变量转换为原来决策变量个数为k的空间,输出最终该优化问题的全局最优结果。基于训练成功的cnn二决策变量寻优器实现了输出优化问题的全局最优结果,cnn二决策变量寻优器的寻优计算为线性并行计算,寻优速度快,可直接找到全局最优,不存在陷入局部最优的情况。另外,对于有约束的优化问题,同样简单适用。

在本发明的一个实施例中,可以通过以下步骤预先训练获得cnn二决策变量寻优器:

步骤h:选取一个目标二维函数k=f(k1,k2),在训练领域da上采集该目标二维函数的目标二维函数点云组,目标二维函数点云组包含n*n个目标二维函数点云,训练领域da中,k1∈[a,b],k2∈[c,d],n为正整数;

步骤i:将所述目标二维函数点云组对应的k1值及k2值分别按由小至大的方式进行排序,将k1值映射为其在按k1排序中的序号k1',将k2值映射为其在按k2排序中的序号k2',并创建映射表bb存储k1值与k1'的关系及k2值与k2'的关系以及对应的k值;

步骤j:选取每个目标二维函数点云的k1'值及k2'值作为代表相应目标二维函数点云的两个特征,并创建目标二维函数点云组的二维矩阵kk;其中,k1'为二维矩阵kk的行序号,k2'为二维矩阵kk的列序号,二维矩阵kk中第k1'行第k2'列的值为该目标二维函数的k值;

步骤k:确定二维矩阵kk中k值为最值的点,并基于预设的标定方式,以该最值点的k1'值、k2'值和k值对二维矩阵kk进行标定,获得一组已标定训练数据;

步骤l:选取nn-1个其他不同的目标二维函数或训练领域da分别重复步骤h至步骤k,共获得nn组已标定训练数据;

步骤m:将nn组已标定训练数据中的m组已标定训练数据构成训练集p,剩余的已标定训练数据构成测试集s;

步骤n:通过训练集p和测试集s对预先创建的cnn模型进行训练,直至训练成功,获得cnn二决策变量寻优器;

其中,nn、m均为正整数,且m小于nn。

为便于描述,将上述几个步骤结合起来进行说明。

首先选取一个目标二维函数k=f(k1,k2),具体可以通过人工选取方式选取。在预先确定的训练领域da上采集该目标二维函数k=f(k1,k2)的n*n个目标二维函数点云,构成目标二维函数k=f(k1,k2)的目标二维函数点云组。训练领域da中,k1∈[a,b],k2∈[c,d]。目标二维函数k=f(k1,k2)是作为训练所用到的函数。

需要说明的是,在训练领域da上采集的目标二维函数k=f(k1,k2)的目标二维函数点云的个数与cnn模型具体结构相关,如n可以为101。

将所述目标二维函数点云组对应的k1值及k2值分别按由小至大的方式进行排序,将k1值映射为其在按k1排序中的序号k1',将k2值映射为其在按k2排序中的序号k2',并创建映射表bb存储k1值与k1'的关系及k2值与k2'的关系以及对应的k值。

选取每个目标二维函数点云的k1'值及k2'值作为代表相应目标二维函数点云的两个特征,并创建目标二维函数点云组的二维矩阵kk。

确定二维矩阵kk中k值为最值的点,并基于预设的标定方式,以该最值点的k1'值、k2'值和k值对该目标二维函数点云组进行标定,得到一组已标定训练数据。

再选取nn-1个其他不同的目标二维函数k=f(k1,k2)或训练领域da分别重复上述步骤,可得到nn-1组已标定训练数据,从而共构成nn组已标定训练数据。具体的,可以通过人工标定方式找出二维矩阵kk中z值为最大值或最小值的点,并以该最值点的k1'值、k2'值和k值对每个目标二维函数点云进行标定,构成一组已标定训练数据。最值点可以是最大值的点,还可以是最小值的点,可由用户根据实际需要选定。

将nn组已标定训练数据中的m组已标定训练数据构成训练集p,剩余的已标定训练数据构成测试集s。nn、m均为正整数,且m小于nn。具体取值可根据实际情况进行设定和调整,本发明实施例不做限制。

通过训练集p和测试集s对预先创建的cnn模型进行训练,直至训练成功,获得cnn二决策变量寻优器。

在实际应用中,可以在同一训练领域下选取nn个不同的目标二维函数进行训练,还可以在同一目标二维函数下选取nn个不同的训练领域进行训练,或者两种方式结合,以获得nn组已标定训练数据进行训练。

以在同一训练领域下选取8200个不同的目标二维函数为例,在同一训练领域下,针对8200个不同的目标二维函数,可以获得8200组已标定训练数据。从8200组已标定训练数据中随机选取8000组已标定训练数据归一化后可构成训练集p,剩余的200组已标定训练数据归一化后可构成测试集s,通过训练集p和测试集s对预先创建的cnn模型进行训练,直至训练成功,获得cnn二决策变量寻优器。

在本发明的一种具体实施方式中,步骤n:通过训练集p和测试集s对预先创建的cnn模型进行训练,直至训练成功,获得cnn二决策变量寻优器,可以包括以下步骤:

第一个步骤:初始化预先创建的cnn模型;

第二个步骤:分别对训练集p中每组已标定训练数据进行归一化处理;

第三个步骤:从训练集p中,依次选取一组已标定训练数据,将该组已标定训练数据输入到cnn模型进行前向传播计算,获得相应的模型输出,计算该组已标定训练数据对应的模型输出与预先标定的标签之间的误差,并反向传播调节cnn模型的所有权值和阈值;直至整体误差n小于最小误差nm,结束训练;

第四个步骤:将测试集s进行归一化处理;

第五个步骤:将从测试集s中,依次选取一组已标定训练数据输入到已完成训练的cnn模型中进行前向传播计算,获得相应的模型输出,并与预先标定的标签进行对比,最终计算测试集s的整体错误率m;

第六个步骤:确定整体错误率m是否满足预设要求,如果是,则确定cnn模型训练成功,获得cnn二决策变量寻优器。

为便于描述,将上述六个步骤结合起来进行说明。

在实际应用中,可根据实际需要设计cnn模型的所有参数,创建cnn模型,并初始化其所有参数。

在本发明实施例中,cnn模型采用lenet结构并且最后3层使用mlp,cnn模型中所有激活函数采用relu函数。随机初始化cnn模型中所有权值和阈值,学习率初始化为0.01,批量训练样本数目设置为50,最小误差nm设置为0.001。cnn模型中的所有激活函数、学习率、批量训练样本数目及最小误差nm可以根据用户实际需要灵活选取,本发明实施例对此不做限制。

cnn模型的构建方式有多种,可根据实际需要进行构建,本发明实施例以采用lenet结构,且最后3层为mlp为例。如图3所示,为本发明实施例中一种cnn模型的结构示意图。该cnn模型包括四个卷积层c1、c3、c5、c7,四个池化层s2、s4、s6、s8,以及三个全连接层f9、f10及输出层,神经元个数分别为80、36和3,输入层为101×101的二维矩阵数据,输出层3个神经元的输出结果由左至右依次代表k1'值、k2'值及k值,卷积核包括8×8、7×7及6×6三个模板,stride=1,池化核均是2×2的模板,激活函数均是relu函数。

分别对训练集p中每组已标定训练数据进行归一化处理。从训练集p中从上至下依次选取50组已标定训练数据输入到cnn模型进行前向传播计算,获得相应的模型输出。计算出该组已标定训练数据输入到cnn模型后模型输出和预先标定的标签之间的误差,并反向传播调节cnn模型所有权值和阈值。可以通过人工方式预先标定。

可以理解的是,在目标二维函数点云组中,第一维数据和第二维数据可能存在数量级相差较大的情况,若该情况下将原始数据直接输入至cnn模型中,则可能导致数量级较小的那一维数据对模型的影响被完全忽略,整个模型的最终结果只受数量级较大的那一维数据影响。鉴于此,在本发明实施例中,在将训练集p中的二维点云数据输入cnn模型之前,对训练集p中的目标二维函数点云数据进行归一化处理。通过归一化处理使得第一维和第二维的数据在一个数量等级上,即0-1之间,解决了上述两cnn模型输入量因数量级不同而产生的数据信息丢失问题,而且能够大大提高后续计算的速度。

一次训练完成后,计算整体误差n,若整体误差n<最小误差nm,则cnn模型训练结束,否则按照上述cnn模型训练步骤继续训练cnn模型,直至整体误差n<最小误差nm结束训练。

可以理解的是,如果当前的整体误差n>最小误差nm,说明当前的cnn模型中权值和阈值还没有达到理想值,因此,需要继续训练,直至当前的整体误差n<最小误差nm为止。

最后,将测试集s进行归一化处理,并从该测试集s中从上至下依次选取一组,如50个已标定训练数据输入到已完成训练的cnn模型中进行前向传播计算,获得相应的模型输出,并与对应人工标定的标签进行对比,计算测试集s的整体错误率m。若整体错误率m满足预设要求,则该cnn模型训练成功,可获得cnn二决策变量寻优器,否则该cnn模型训练失败,需再次不断人工选取其他不同的目标二维函数k=f(k1,k2)或训练领域da,重复执行步骤h至步骤k,增加训练集p的已标定训练数据组数,继续对cnn模型进行训练,直至整体错误率m满足预设要求,确定cnn模型训练成功,获得cnn二决策变量寻优器。

通过测试集s对训练完成的cnn模型进行测试,如果该cnn模型能够使得测试集s的整体错误率满足设定要求,则说明该cnn模型可以作为cnn二决策变量寻优器正常使用,否则说明该cnn模型训练仍未足够,训练样本数量不够,需要获取更多的训练样本满足该cnn模型的训练。

相应于上面的方法实施例,本发明实施例还提供了一种基于agn及cnn的单目标优化问题寻优装置,下文描述的一种基于agn及cnn的单目标优化问题寻优装置与上文描述的一种基于agn及cnn的单目标优化问题寻优方法可相互对应参照。

参见图4所示,该装置包括以下模块:

待优化函数确定模块410,用于根据待处理的优化问题,确定待优化函数z=g(x1,x2,x3,…,xk);其中,x1、x2、x3、……、xk为决策变量,z为优化目标,k为决策变量个数;

待优化目标点云组采集模块420,用于在待优化领域db中采集待优化函数的待优化目标点云组,待优化目标点云组包含p个待优化目标点云;其中,待优化领域db中,x1∈[a1,b1],x2∈[a2,b2],…,xk∈[ak,bk];

决策变量编码模块430,用于在k>2时,创建并训练去噪自编码器网络agn,利用agn的编码部分将各个决策变量编码为y1和y2,agn的输入层和输出层神经元个数均为k;

映射模块440,用于将待优化目标点云组对应的y1值及y2值分别按由小至大的方式进行排序,将y1值映射为其在按y1排序中的序号y1',将y2值映射为其在按y2排序中的序号y2',并创建映射表aa存储y1值与y1'的关系、y2值与y2'的关系以及对应的z值;

二维矩阵创建模块450,用于选取每个待优化目标点云的y1'值及y2'值作为代表相应待优化目标点云的两个特征,创建待优化目标点云组的二维矩阵kk;其中,y1'为二维矩阵kk的行序号,y2'为二维矩阵kk的列序号,二维矩阵kk上第y1'行第y2'列的值为z;

最值点获得模块460,用于将二维矩阵kk输入到预先训练获得的cnn二决策变量寻优器中,获得二维矩阵kk中最值点的y1'值、y2'值及z值;

优化结果输出模块470,用于查询映射表aa,将y1'值映射为y1,将y2'值映射为y2,利用agn的解码部分将y1和y2解码为x1、x2、x3、……、xk,输出优化结果为:当x1取x1、x2取x2、……、xk取xk时达到全局最优z。

应用本发明实施例所提供的装置,通过训练完成的去噪自编码器网络agn的编码部分将决策变量个数k不为2的优化问题模型转换为决策变量个数为2的优化问题模型,并将转换后的两个决策变量输入到已训练成功的cnn二决策变量寻优器中快速输出全局最优结果,最终通过训练完成的去噪自编码器网络的解码部分将cnn二决策变量寻优器输出的全局最优结果中两个决策变量转换为原来决策变量个数为k的空间,输出最终该优化问题的全局最优结果。基于训练成功的cnn二决策变量寻优器实现了输出优化问题的全局最优结果,cnn二决策变量寻优器的寻优计算为线性并行计算,寻优速度快,可直接找到全局最优,不存在陷入局部最优的情况。另外,对于有约束的优化问题,同样简单适用。

在本发明的一种具体实施方式中,还包括触发模块,用于:

在k=2时,令y1=x1,y2=x2,触发映射模块至优化结果输出模块。

在本发明的一种具体实施方式中,决策变量编码模块430,具体用于通过以下步骤创建并训练获得去噪自编码器网络agn:

创建一个三层的去噪自编码器模型,去噪自编码器模型的输入层和输出层的神经元个数均为k,去噪自编码器模型的隐藏层神经元个数为2;

分别设置去噪自编码器模型的相关参数,相关参数包括神经元激活函数、损失函数、训练算法、学习率、批量训练样本数目ba'、噪声系数和最小误差nm';

在待优化领域db上采集待优化函数的p个待优化目标点云,构成训练集p’;

利用高斯分布随机数初始化去噪自编码器模型的所有权值和阈值;

对训练集p’中各待优化目标点云进行归一化处理;

从训练集p’中依次选取ba'个待优化目标点云输入到去噪自编码器模型进行前向传播计算,获得相应的模型输出,计算该ba'个待优化目标点云对应的模型输出与相应待优化目标点云自身之间的误差,并反向传播调节去噪自编码器模型所有权值和阈值;直至整体误差n'小于最小误差nm',结束训练。

在本发明的一种具体实施方式中,还包括cnn二决策变量寻优器获得模块,用于通过以下步骤预先训练获得cnn二决策变量寻优器:

步骤h:选取一个目标二维函数k=f(k1,k2),在训练领域da上采集该目标二维函数的目标二维函数点云组,目标二维函数点云组包含n*n个目标二维函数点云,训练领域da中,k1∈[a,b],k2∈[c,d],n为正整数;

步骤i:将所述目标二维函数点云组对应的k1值及k2值分别按由小至大的方式进行排序,将k1值映射为其在按k1排序中的序号k1',将k2值映射为其在按k2排序中的序号k2',并创建映射表bb存储k1值与k1'的关系及k2值与k2'的关系以及对应的k值;

步骤j:选取每个目标二维函数点云的k1'值及k2'值作为代表相应目标二维函数点云的两个特征,并创建目标二维函数点云组的二维矩阵kk;其中,k1'为二维矩阵kk的行序号,k2'为二维矩阵kk的列序号,二维矩阵kk中第k1'行第k2'列的值为该目标二维函数的k值;

步骤k:确定二维矩阵kk中k值为最值的点,并基于预设的标定方式,以该最值点的k1'值、k2'值和k值对二维矩阵kk进行标定,获得一组已标定训练数据;

步骤l:选取nn-1个其他不同的目标二维函数或训练领域da分别重复步骤h至步骤k,共获得nn组已标定训练数据;

步骤m:将nn组已标定训练数据中的m组已标定训练数据构成训练集p,剩余的已标定训练数据构成测试集s;

步骤n:通过训练集p和测试集s对预先创建的cnn模型进行训练,直至训练成功,获得cnn二决策变量寻优器;

其中,nn、m均为正整数,且m小于nn。

在本发明的一种具体实施方式中,cnn二决策变量寻优器获得模块,具体用于:

初始化预先创建的cnn模型;

分别对训练集p中每组已标定训练数据进行归一化处理;

从训练集p中,依次选取一组已标定训练数据,将该组已标定训练数据输入到cnn模型进行前向传播计算,获得相应的模型输出,计算该组已标定训练数据对应的模型输出与预先标定的标签之间的误差,并反向传播调节cnn模型的所有权值和阈值;直至整体误差n小于最小误差nm,结束训练;

将测试集s进行归一化处理;

将从测试集s中,依次选取一组已标定训练数据输入到已完成训练的cnn模型中进行前向传播计算,获得相应的模型输出,并与预先标定的标签进行对比,最终计算测试集s的整体错误率m;

确定整体错误率m是否满足预设要求,如果是,则确定cnn模型训练成功,获得cnn二决策变量寻优器。

在本发明的一种具体实施方式中,cnn二决策变量寻优器获得模块,还用于:

在确定整体错误率m不满足预设要求时,选取其他不同的目标二维函数k=f(k1,k2)或训练领域da,重复执行步骤h至步骤k,增加训练集p的已标定训练数据组数,继续对cnn模型进行训练,直至整体错误率m满足预设要求,确定cnn模型训练成功,获得cnn二决策变量寻优器。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1