基于CNN的二决策变量优化问题离散式寻优方法及装置与流程

文档序号:14176034阅读:437来源:国知局
基于CNN的二决策变量优化问题离散式寻优方法及装置与流程

本发明涉及计算机应用技术领域,特别是涉及一种基于cnn的二决策变量优化问题离散式寻优方法及装置。



背景技术:

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

优化问题的求解有两大类方法,包括解析方法和数值方法。解析方法是通过严格的数学证明与推导,得到精确的最优解,但这仅能解决一些典型的优化问题,在实际问题上往往难以应用。数值方法是通过设计恰当的迭代算式,通过一系列迭代,得到近似最优解,对优化问题要求很低,只需要给定一个决策向量、优化问题可以反馈一个目标向量,即优化问题可以是一个黑盒问题、无需明显的表达式,适合求解实际问题。传统的数值优化方法,如牛顿法等,容易陷入问题的局部最优;而广义的进化算法(包括进化算法和群智能算法)通过模拟生物群体行为特性或是事物的发展与结构特性,设计迭代算式,全局搜索能力较强,但求解复杂的优化问题时耗时较长且近似最优解的精度不够,若模型参数设计不合理则出现求解不出近似最优解的情况,另外,对于有约束的优化问题,模型设计的难度将大大增加且模型参数难以确定,使得求解出来的解效果较差,难以满足实际问题要求。



技术实现要素:

本发明的目的是提供一种基于cnn的二决策变量优化问题离散式寻优方法及装置,以对二维函数进行快速寻优。

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

一种基于cnn的二决策变量优化问题离散式寻优方法,包括:

步骤a:确定待寻优领域db;

步骤b:在所述待寻优领域db中均匀采集待寻优目标二维函数z'=f'(x,y)的待寻优目标二维函数点云组,所述待寻优目标二维函数点云组包含n*n个待寻优目标二维函数点云,所述待寻优领域db中,x∈[a',b'],y∈[c',d'],n为正整数;

步骤c:根据预设的第一映射关系,将x值映射为x',将y值映射为y';

步骤d:选取每个待寻优目标二维函数点云的x'值及y'值作为代表相应待寻优目标二维函数点云的两个特征,并创建所述待寻优目标二维函数点云组的二维矩阵kk;其中,x'为所述二维矩阵kk的行序号,y'为所述二维矩阵kk的列序号,所述二维矩阵kk中第x'行第y'列的值为所述待寻优目标二维函数z'=f'(x,y)的z'值;

步骤e:将所述二维矩阵kk输入到预先训练获得的cnn二维函数快速寻优器中,获得所述二维矩阵kk中最值点的x'的值x1'、y'的值y1'及z'值;

步骤f:根据预设的第二映射关系,将x'值映射为x,将y'值映射为y;

步骤g:确定1/(n-1)是否满足用户精度要求,如果是,则输出优化结果为:当x取x,y取y时达到全局最优z'。

在本发明的一种具体实施方式中,在确定1/(n-1)不满足所述用户精度要求时,还包括:

令i=1,创建新领域dci,所述新领域dci中,x∈[a”,b”],y∈[c”,d”],a”=x-1/(n-1)i,b”=x+1/(n-1)i,c”=y-1/(n-1)i,d”=y+1/(n-1)i

在所述新领域dci中均匀采集所述待寻优目标二维函数z'=f'(x,y)的所述待寻优目标二维函数点云组,所述待寻优目标二维函数点云组包含n*n个待寻优目标二维函数点云,重复执行步骤c至步骤f的操作,并确定1/(n-1)i+1是否满足所述用户精度要求,如果否,则令i=i+1,重复执行所述创建新领域dci的步骤,直至确定1/(n-1)i+1满足所述用户精度要求,输出所述优化结果。

在本发明的一种具体实施方式中,通过以下步骤预先训练获得所述cnn二维函数快速寻优器:

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

步骤i:根据所述第一映射关系,将x值映射为x',将y值映射为y';

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

步骤k:确定所述二维矩阵kk中z值为最值的点,并基于预设的标定方式,以该最值点的x'值、y'值和z值对所述目标二维函数点云组进行标定;

步骤l:选取nn-1个其他不同的目标二维函数z=f(x,y)或训练领域da分别重复步骤h至步骤k,得到nn-1组已标定目标二维函数点云组,共构成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不满足所述预设要求时,还包括:

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

在本发明的一种具体实施方式中,所述第一映射关系对应的映射公式为:

x'=(x-aa)*(n-1)+1,y'=(y-cc)*(n-1)+1;

其中,在任意一个领域d中,x∈[aa,bb],y∈[cc,dd]。

在本发明的一种具体实施方式中,所述第二映射关系对应的映射公式为:

x=aa+(x'-1)*(n-1),y=cc+(y'-1)*(n-1)。

一种基于cnn的二决策变量优化问题离散式寻优装置,包括:

待寻优领域确定模块,用于确定待寻优领域db;

待寻优目标二维函数点云组采集模块,用于在所述待寻优领域db中均匀采集待寻优目标二维函数z'=f'(x,y)的待寻优目标二维函数点云组,所述待寻优目标二维函数点云组包含n*n个待寻优目标二维函数点云,所述待寻优领域db中,x∈[a',b'],y∈[c',d'],n为正整数;

第一映射模块,用于根据预设的第一映射关系,将x值映射为x',将y值映射为y';

二维矩阵创建模块,用于选取每个待寻优目标二维函数点云的x'值及y'值作为代表相应待寻优目标二维函数点云的两个特征,并创建所述待寻优目标二维函数点云组的二维矩阵kk;其中,x'为所述二维矩阵kk的行序号,y'为所述二维矩阵kk的列序号,所述二维矩阵kk中第x'行第y'列的值为所述待寻优目标二维函数z'=f'(x,y)的z'值;

最值点获得模块,用于将所述二维矩阵kk输入到预先训练获得的cnn二维函数快速寻优器中,获得所述二维矩阵kk中最值点的x'的值x1'、y'的值y1'及z'值;

第二映射模块,用于根据预设的第二映射关系,将x'值映射为x,将y'值映射为y;

优化结果输出模块,用于确定1/(n-1)是否满足用户精度要求,如果是,则输出优化结果为:当x取x,y取y时达到全局最优z'。

在本发明的一种具体实施方式中,所述优化结果输出模块,还用于:

在确定1/(n-1)不满足所述用户精度要求时,令i=1,创建新领域dci,所述新领域dci中,x∈[a”,b”],y∈[c”,d”],a”=x-1/(n-1)i,b”=x+1/(n-1)i,c”=y-1/(n-1)i,d”=y+1/(n-1)i

在所述新领域dci中均匀采集所述待寻优目标二维函数z'=f'(x,y)的所述待寻优目标二维函数点云组,所述待寻优目标二维函数点云组包含n*n个待寻优目标二维函数点云,重复触发所述第一映射模块至所述第二映射模块的执行,并确定1/(n-1)i+1是否满足所述用户精度要求,如果否,则令i=i+1,重复执行所述创建新领域dci的步骤,直至确定1/(n-1)i+1满足所述用户精度要求,输出所述优化结果。

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

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

步骤i:根据所述第一映射关系,将x值映射为x',将y值映射为y';

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

步骤k:确定所述二维矩阵kk中z值为最值的点,并基于预设的标定方式,以该最值点的x'值、y'值和z值对所述目标二维函数点云组进行标定;

步骤l:选取nn-1个其他不同的目标二维函数z=f(x,y)或训练领域da分别重复步骤h至步骤k,得到nn-1组已标定目标二维函数点云组,共构成nn组已标定训练数据;

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

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

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

应用本发明实施例所提供的技术方案,将在待寻优领域中均匀采集到的待寻优目标二维函数点云,输入至预先训练成功的cnn二维函数快速寻优器中,再快速输出待寻优领域中待寻优目标二维函数高精度的全局最优结果,cnn二维函数快速寻优器的寻优计算为线性并行计算,寻优速度快,可直接找到全局最优,避免陷入局部最优的问题。另外,对于有约束的优化问题,同样简单适用。

附图说明

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

图1为本发明实施例中一种基于cnn的二决策变量优化问题离散式寻优方法的实施流程图;

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

图3为本发明实施例中一种基于cnn的二决策变量优化问题离散式寻优装置的结构示意图。

具体实施方式

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

参见图1所示,为本发明实施例所提供的一种基于cnn的二决策变量优化问题离散式寻优方法的实施流程图,该方法可以包括以下步骤:

步骤a:确定待寻优领域db。

在实际应用中,可以根据实际需求确定待寻优领域db。

步骤b:在待寻优领域db中均匀采集待寻优目标二维函数z'=f'(x,y)的待寻优目标二维函数点云组。

其中,待寻优目标二维函数点云组包含n*n个待寻优目标二维函数点云,待寻优领域db中,x∈[a',b'],y∈[c',d'],n为正整数。

在本发明实施例中,可以在待寻优领域db中均匀采集待寻优目标二维函数z'=f'(x,y)的n*n个待寻优目标二维函数点云,n*n个待寻优目标二维函数点云构成待寻优目标二维函数点云组。待寻优领域db中,x∈[a',b'],y∈[c',d'],n为正整数,可以根据用户需求进行选择,但对应cnn模型的结构需要根据n的具体改变而相应重新设计。待寻优目标二维函数z'=f'(x,y)是要进行寻优的函数。

步骤c:根据预设的第一映射关系,将x值映射为x',将y值映射为y'。

在本发明实施例中,可以预设第一映射关系。第一映射关系对应的映射公式具体可以如公式(1)所示:

x'=(x-aa)*(n-1)+1,y'=(y-cc)*(n-1)+1公式(1)

其中,在任意一个领域d中,x∈[aa,bb],y∈[cc,dd]。

根据上述公式(1),将x值映射为x',x'=(x-a')*(n-1)+1,将y值映射为y',y'=(y-c')*(n-1)+1。

步骤d:选取每个待寻优目标二维函数点云的x'值及y'值作为代表相应待寻优目标二维函数点云的两个特征,并创建待寻优目标二维函数点云组的二维矩阵kk。

其中,x'为二维矩阵kk的行序号,y'为二维矩阵kk的列序号,二维矩阵kk中第x'行第y'列的值为待寻优目标二维函数z'=f'(x,y)的z'值。

针对每个待寻优目标二维函数点云,可以选取该待寻优目标二维函数点云的x'值及y'值作为代表该待寻优目标二维函数点云的两个特征。得到每个待寻优目标二维函数点云的两个特征后,基于此,可以创建待寻优目标二维函数点云组的二维矩阵kk。

步骤e:将二维矩阵kk输入到预先训练获得的cnn二维函数快速寻优器中,获得二维矩阵kk中最值点的x'的值x1'、y'的值y1'及z'值;

在本发明实施例中,可以通过训练获得cnn二维函数快速寻优器。在步骤d中,创建待寻优二维函数点云组的二维矩阵kk后,可以将二维矩阵kk输入到cnn二维函数快速寻优器中,获得二维矩阵kk中最值点的x'的值x1'、y'的值y1'及z'值。

在实际应用中,可以对待寻优二维函数点云进行归一化后,输入到cnn二维函数快速寻优器中。

步骤f:根据预设的第二映射关系,将x'值映射为x,将y'值映射为y。

在本发明实施例中,可以预设第二映射关系,第二映射关系对应的映射公式具体可以如公式(2)所示:

x=aa+(x'-1)*(n-1),y=cc+(y'-1)*(n-1)公式(2)

根据上述公式(2),可以将x'值映射为x,x=a'+(x'-1)*(n-1),将y'值映射为y,y=c'+(y'-1)*(n-1)。

步骤g:确定1/(n-1)是否满足用户精度要求,如果是,则输出优化结果为:当x取x,y取y时达到全局最优z'。

确定1/(n-1)是否满足用户精度要求,如果是,则输出优化结果为:当x取x,y取y时达到全局最优z'。如果否,令i=1,创建新领域dci,新领域dci中x∈[a”,b”],y∈[c”,d”],a”=x-1/(n-1)i,b”=x+1/(n-1)i,c”=y-1/(n-1)i,d”=y+1/(n-1)i

在新领域dci中均匀采集待寻优目标二维函数z'=f'(x,y)的待寻优目标二维函数点云组,待寻优目标二维函数点云组包含n*n个待寻优目标二维函数点云,重复执行步骤c至步骤f的操作,并确定1/(n-1)i+1是否满足用户精度要求,如果否,则令i=i+1,重复执行创建新领域dci的步骤,直至确定1/(n-1)i+1满足用户精度要求,输出优化结果。

通过不断细化待寻优领域,可以得到任意高精度的全局最优结果。

应用本发明实施例所提供的方法,将在待寻优领域中均匀采集到的待寻优目标二维函数点云,输入至预先训练成功的cnn二维函数快速寻优器中,再快速输出待寻优领域中待寻优目标二维函数高精度的全局最优结果,cnn二维函数快速寻优器的寻优计算为线性并行计算,寻优速度快,可直接找到全局最优,避免陷入局部最优的问题。另外,对于有约束的优化问题,同样简单适用。

在本发明的一个实施例中,可以通过以下步骤预先训练获得cnn二维函数快速寻优器:

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

步骤i:根据第一映射关系,将x值映射为x',将y值映射为y';

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

步骤k:确定二维矩阵kk中z值为最值的点,并基于预设的标定方式,以该最值点的x'值、y'值和z值对该目标二维函数点云组进行标定;

步骤l:选取nn-1个其他不同的目标二维函数z=f(x,y)或训练领域da分别重复步骤h至步骤k,得到nn-1组已标定目标二维函数点云组,共构成nn组已标定训练数据;

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

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

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

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

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

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

根据上述的第一映射关系,将x值映射为x',x'=(x-a)*(n-1)+1,将y值映射为y',y'=(y-c)*(n-1)+1。

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

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

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

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

通过训练集p和测试集s对预先创建的cnn模型进行训练,直至训练成功,获得cnn二维函数快速寻优器。

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

以在同一训练领域下选取6200个不同的目标二维函数为例,在同一训练领域下,针对6200个不同的目标二维函数,可以获得6200组已标定训练数据。从6200组已标定训练数据中随机选取6000组已标定训练数据归一化后可构成训练集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可以根据用户实际需要灵活选取,本发明实施例对此不做限制。

如图2所示,为本发明实施例中一种cnn模型的结构示意图。该cnn模型包括四个卷积层c1、c3、c5、c7,四个池化层s2、s4、s6、s8,以及三个全连接层f9、f10及输出层,神经元个数分别为80、35和3,输入层为101×101的二维矩阵数据,输出层3个神经元的输出结果由左至右依次代表x’值、y’值及z’值,卷积核包括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中从上至下依次选取一组已标定训练数据输入到已完成训练的cnn模型中进行前向传播计算,获得相应的模型输出,并与对应人工标定的标签进行对比,计算测试集s的整体错误率m。若整体错误率m满足预设要求,则该cnn模型训练成功,可获得cnn二维函数快速寻优器,否则该cnn模型训练失败,需再次不断人工选取其他不同的目标二维函数z=f(x,y)或训练领域da,重复执行步骤h至步骤k,增加训练集p的已标定训练数据组数,继续对cnn模型进行训练,直至整体错误率m满足预设要求,确定cnn模型训练成功,获得cnn二维函数快速寻优器。

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

相应于上面的方法实施例,本发明实施例还提供了一种基于cnn的二决策变量优化问题离散式寻优装置,下文描述的一种基于cnn的二决策变量优化问题离散式寻优装置与上文描述的一种基于cnn的二决策变量优化问题离散式寻优方法可相互对应参照。

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

待寻优领域确定模块310,用于确定待寻优领域db;

待寻优目标二维函数点云组采集模块320,用于在待寻优领域db中均匀采集待寻优目标二维函数z'=f'(x,y)的待寻优目标二维函数点云组,待寻优目标二维函数点云组包含n*n个待寻优目标二维函数点云,待寻优领域db中,x∈[a',b'],y∈[c',d'],n为正整数;

第一映射模块330,用于根据预设的第一映射关系,将x值映射为x',将y值映射为y';

二维矩阵创建模块340,用于选取每个待寻优目标二维函数点云的x'值及y'值作为代表相应待寻优目标二维函数点云的两个特征,并创建待寻优目标二维函数点云组的二维矩阵kk;其中,x'为二维矩阵kk的行序号,y'为二维矩阵kk的列序号,二维矩阵kk中第x'行第y'列的值为待寻优目标二维函数z'=f'(x,y)的z'值;

最值点获得模块350,用于将二维矩阵kk输入到预先训练获得的cnn二维函数快速寻优器中,获得二维矩阵kk中最值点的x'的值x1'、y'的值y1'及z'值;

第二映射模块360,用于根据预设的第二映射关系,将x'值映射为x,将y'值映射为y;

优化结果输出模块370,用于确定1/(n-1)是否满足用户精度要求,如果是,则输出优化结果为:当x取x,y取y时达到全局最优z'。

应用本发明实施例所提供的装置,将在待寻优领域中均匀采集到的待寻优目标二维函数点云,输入至预先训练成功的cnn二维函数快速寻优器中,再快速输出待寻优领域中待寻优目标二维函数高精度的全局最优结果,cnn二维函数快速寻优器的寻优计算为线性并行计算,寻优速度快,可直接找到全局最优,避免陷入局部最优的问题。另外,对于有约束的优化问题,同样简单适用。

在本发明的一种具体实施方式中,优化结果输出模块370,还用于:

在确定1/(n-1)不满足用户精度要求时,令i=1,创建新领域dci,新领域dci中x∈[a”,b”],y∈[c”,d”],a”=x-1/(n-1)i,b”=x+1/(n-1)i,c”=y-1/(n-1)i,d”=y+1/(n-1)i

在新领域dci中均匀采集待寻优目标二维函数z'=f'(x,y)的待寻优目标二维函数点云组,待寻优目标二维函数点云组包含n*n个待寻优目标二维函数点云,重复触发第一映射模块至第二映射模块的执行,并确定1/(n-1)i+1是否满足用户精度要求,如果否,则令i=i+1,重复执行创建新领域dci的步骤,直至确定1/(n-1)i+1满足用户精度要求,输出优化结果。

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

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

步骤i:根据第一映射关系,将x值映射为x',将y值映射为y';

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

步骤k:确定二维矩阵kk中z值为最值的点,并基于预设的标定方式,以该最值点的x'值、y'值和z值对该目标二维函数点云组进行标定;

步骤l:选取nn-1个其他不同的目标二维函数z=f(x,y)或训练领域da分别重复步骤h至步骤k,得到nn-1组已标定目标二维函数点云组,共构成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不满足预设要求时,选取其他不同的目标二维函数z=f(x,y)或训练领域da,重复执行步骤h至步骤k,增加训练集p的已标定训练数据组数,继续对cnn模型进行训练,直至整体错误率m满足预设要求,确定cnn模型训练成功,获得cnn二维函数快速寻优器。

在本发明的一种具体实施方式中,第一映射关系对应的映射公式为:

x'=(x-aa)*(n-1)+1,y'=(y-cc)*(n-1)+1;

其中,在任意一个领域d中,x∈[aa,bb],y∈[cc,dd]。

在本发明的一种具体实施方式中,第二映射关系对应的映射公式为:

x=aa+(x'-1)*(n-1),y=cc+(y'-1)*(n-1)。

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

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

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

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

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