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

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

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



背景技术:

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

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

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

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

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



技术实现要素:

本发明的目的是提供一种基于cnn的二决策变量优化问题连续式寻优方法及装置,以对二决策变量连续型优化问题进行快速准确寻优。

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

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

步骤a:根据待处理的二决策变量单目标连续型优化问题,确定待优化函数r=g(x1,x2);其中,x1、x2为决策变量,r为优化目标;

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

步骤c:将p个待优化目标点云的x1值及x2值按由小至大的方式分别进行排序,将x1值映射为其在排序中的序号x1',将x2值映射为其在排序中的序号x2',并创建映射表存储x1值与x1'的关系,x2值与x2'的关系,x1、x2与r的关系;

步骤d:选取每个待优化目标点云的x1'值及x2'值作为代表相应待优化目标点云的两个特征,创建所述待优化目标点云组的二维矩阵kk;其中,x1'为所述二维矩阵kk的行序号,x2'为所述二维矩阵kk的列序号,所述二维矩阵kk上第x1'行第x2'列的值为查所述映射表所得的r值;

步骤e:将所述二维矩阵kk输入到预先训练获得的cnn二决策变量连续式寻优器中,获得所述二维矩阵kk中最值点的x1'值为x01'、x2'值为x02'及r值;

步骤f:按照预设的第一映射关系,将x1'值映射为x1,将x2'值映射为x2;

步骤g:输出优化结果为:当x1取x1,x2取x2时达到全局最优r。

在本发明的一种具体实施方式中,所述步骤b:在待优化领域db中,获取所述待优化函数的待优化目标点云组,包括:

在待优化领域db中,采集p个所述待优化函数的待优化目标点云;

如果p大于n*n,则在采集到的待优化目标点云中选取n*n个待优化目标点云,构成待优化目标点云组,并令p等于n*n;

如果p不大于n*n,则采集到的待优化目标点云直接构成所述待优化目标点云组。

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

步骤h:选取一个目标二维函数z=f(x,y),在训练领域da上均匀采集该目标二维函数的目标二维函数点云组,所述目标二维函数点云组包含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:确定该目标二维函数z=f(x,y)在所述训练领域da中z值为最值的点,将该最值点的x值和y值按照预设的第二映射关系分别映射为x'和y',并以该最值点的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二决策变量连续式寻优器。

在本发明的一种具体实施方式中,所述按照预设的第一映射关系,将x1'值映射为x1,将x2'值映射为x2,包括:

a1'=[x1'],a2'=[x2'],b1'=a1'+1,b2'=a2'+1,查询所述映射表将a1'映射为a01,a2'映射为a02,b1'映射为b01,b2'映射为b02,则x1=a01+(x01′-a1′)×(b01-a01),x2=a02+(x02'-a2')×(b02-a02)。

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

x'=(x-a)×(n-1)+1,y'=(y-c)×(n-1)+1。

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

待优化函数确定模块,用于根据待处理的二决策变量单目标连续型优化问题,确定待优化函数r=g(x1,x2);其中,x1、x2为决策变量,r为优化目标;

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

第一映射模块,用于将p个待优化目标点云的x1值及x2值按由小至大的方式分别进行排序,将x1值映射为其在排序中的序号x1',将x2值映射为其在排序中的序号x2',并创建映射表存储x1值与x1'的关系,x2值与x2'的关系,x1、x2与r的关系;

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

最值点获得模块,用于将所述二维矩阵kk输入到预先训练获得的cnn二决策变量连续式寻优器中,获得所述二维矩阵kk中最值点的x1'值为x01'、x2'值为x02'及r值;

第二映射模块,用于按照预设的第一映射关系,将x1'值映射为x1,将x2'值映射为x2;

优化结果输出模块,用于输出优化结果为:当x1取x1,x2取x2时达到全局最优r。

在本发明的一种具体实施方式中,所述待优化目标点云组获取模块,具体用于:

在待优化领域db中,采集p个所述待优化函数的待优化目标点云;

如果p大于n*n,则在采集到的待优化目标点云中选取n*n个待优化目标点云,构成待优化目标点云组,并令p等于n*n;

如果p不大于n*n,则采集到的待优化目标点云直接构成所述待优化目标点云组。

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

步骤h:选取一个目标二维函数z=f(x,y),在训练领域da上均匀采集该目标二维函数的目标二维函数点云组,所述目标二维函数点云组包含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:确定该目标二维函数z=f(x,y)在所述训练领域da中z值为最值的点,将该最值点的x值和y值按照预设的第二映射关系分别映射为x'和y',并以该最值点的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二决策变量连续式寻优器,可以将输入cnn二决策变量连续式寻优器的二维离散点拟合为连续光滑的二维曲面,并从该连续光滑的二维曲面中快速准确地找出全局最优结果。cnn二决策变量连续式寻优器的寻优计算为线性并行计算,寻优速度快,可直接找到优化问题的全局最优,不存在陷入局部最优的情况。另外,对于有约束的优化问题,输入cnn二决策变量连续式寻优器的所有离散点均属于约束范围内,在cnn二决策变量连续式寻优器的寻优二决策变量单目标连续型优化问题精确全局最优结果过程中无需额外单独考虑。

附图说明

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

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

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

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

具体实施方式

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

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

步骤a:根据待处理的二决策变量单目标连续型优化问题,确定待优化函数r=g(x1,x2)。

其中,x1、x2为决策变量,r为优化目标。

在实际应用中,可以根据具体待处理的二决策变量单目标连续型优化问题,建立该具体优化问题的数学模型,确定待优化函数r=g(x1,x2),表明该具体优化问题的决策变量分别为:x1、x2,优化目标为r,通过待优化函数可表示决策变量与优化目标的关系。

待优化函数r=g(x1,x2)可以是未知的。

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

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

在本发明实施例中,可根据实际需要确定待优化领域db,在待优化领域db中,尽可能多的获取待优化函数r=g(x1,x2)的待优化目标点云。

具体的,在待优化领域db中,可以采集到p个待优化函数的待优化目标点云;如果p大于n*n,则在采集到的待优化目标点云中选取n*n个待优化目标点云,构成待优化目标点云组,并令p等于n*n;如果p不大于n*n,则采集到的所有待优化目标点云直接构成待优化目标点云组。具体选取方式可以是随机选取,或者按照其他预设规则选取。

即获取到的待优化函数r=g(x1,x2)的待优化目标点云组包含p个待优化目标点云。p最大为n*n。

n为正整数,可以根据用户需求进行选择,但对应cnn模型的结构需要根据n的具体改变而相应重新设计。

步骤c:将p个待优化目标点云的x1值及x2值按由小至大的方式分别进行排序,将x1值映射为其在排序中的序号x1',将x2值映射为其在排序中的序号x2',并创建映射表存储x1值与x1'的关系,x2值与x2'的关系,x1、x2与r的关系。

获取到p个待优化目标点云,每个待优化目标点云均有对应的x1值及x2值,将p个待优化目标点云的x1值及x2值按由小至大的方式分别进行排序,可得到相应序号,将x1值映射为其在排序中的序号x1',将x2值映射为其在排序中的序号x2',并可创建映射表存储x1值与x1'的关系,x2值与x2'的关系,x1、x2与r的关系。

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

其中,x1'为二维矩阵kk的行序号,x2'为二维矩阵kk的列序号,二维矩阵kk上第x1'行第x2'列的值为查映射表所得的r值。

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

步骤e:将二维矩阵kk输入到预先训练获得的cnn二决策变量连续式寻优器中,获得二维矩阵kk中最值点的x1'值为x01'、x2'值为x02'及r值。

在本发明实施例中,可以通过训练获得cnn二决策变量连续式寻优器。在步骤d中,创建待优化目标点云组的二维矩阵kk后,可以将二维矩阵kk输入到cnn二决策变量连续式寻优器中,获得二维矩阵kk中最值点的x1'值为x01'、x2'值为x02'及r值。

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

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

步骤f:按照预设的第一映射关系,将x1'值映射为x1,将x2'值映射为x2。

具体的,a1'=[x01'],a2'=[x02'],b1'=a1'+1,b2'=a2'+1,查询映射表将a1'映射为a01,将a2'映射为a02,将b1'映射为b01,将b2'映射为b02,则x1=a01+(x01'-a1')*(b01-a01),x2=a02+(x02'-a2')*(b02-a02)。

步骤g:输出优化结果为:当x1取x1,x2取x2时达到全局最优r。

通过上述步骤的操作,可输出优化结果为:当x1取x1,x2取x2时达到全局最优r。

应用本发明实施例所提供的方法,将获得的具体二决策变量单目标优化问题的待优化目标点云,转化为对应二维矩阵,并输入至已训练成功的cnn二决策变量连续式寻优器中,快速准确地输出优化问题的全局最优结果。基于训练成功的cnn二决策变量连续式寻优器,可以将输入cnn二决策变量连续式寻优器的二维离散点拟合为连续光滑的二维曲面,并从该连续光滑的二维曲面中快速准确地找出全局最优结果。cnn二决策变量连续式寻优器的寻优计算为线性并行计算,寻优速度快,可直接找到优化问题的全局最优,不存在陷入局部最优的情况。另外,对于有约束的优化问题,输入cnn二决策变量连续式寻优器的所有离散点均属于约束范围内,在cnn二决策变量连续式寻优器的寻优二决策变量单目标连续型优化问题精确全局最优结果过程中无需额外单独考虑。

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

步骤h:选取一个目标二维函数z=f(x,y),在训练领域da上均匀采集该目标二维函数的目标二维函数点云组,目标二维函数点云组包含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:确定该目标二维函数z=f(x,y)在所述训练领域da中z值为最值的点,将该最值点的x值和y值按照预设的第二映射关系分别映射为x'和y',并以该最值点的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-a)*(n-1)+1,y'=(y-c)*(n-1)+1。

根据上述的第二映射关系,将x值映射为x',将y值映射为y'。

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

确定该目标二维函数z=f(x,y)在所述训练领域da中z值为最值的点,根据第二映射关系,将该最值点的x值和y值分别映射为x'和y',并以该最值点的x'值、y'值和z值对目标二维函数点云组进行标定,获得一组已标定训练数据。

再选取nn-1个其他不同的目标二维函数z=f(x,y)或训练领域da分别重复上述步骤,可得到nn-1组已标定训练数据,从而共构成nn组已标定训练数据。最值点可以是最大值的点,还可以是最小值的点,可由用户根据实际需要选定。

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

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

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

以在同一训练领域下选取10500个不同的目标二维函数为例,在同一训练领域下,针对10500个不同的目标二维函数,可以获得10500组已标定训练数据。从10500组已标定训练数据中随机选取10000组已标定训练数据归一化后可构成训练集p,剩余的500组已标定训练数据归一化后可构成测试集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模型中所有权值,cnn模型中所有阈值设置为0,学习率初始化为0.01,批量训练样本数目设置为50,最小误差nm设置为0.0001。上述仅为一种示例,cnn模型中的所有激活函数、学习率、批量训练样本数目及最小误差nm可以根据用户实际需要灵活选取,本发明实施例对此不做限制。

cnn模型的构建方式有多种,可根据实际需要进行构建,本发明实施例以采用lenet结构,且最后3层为mlp为例。如图2所示,为本发明实施例中一种cnn模型的结构示意图。该cnn模型包括四个卷积层c1、c3、c5、c7,四个池化层s2、s4、s6、s8,以及三个全连接层f9、f10及输出层,神经元个数分别为100、40和3,输入层为101×101的二维矩阵数据,输出层3个神经元的输出结果由左至右依次代表x'值、y'值及r值,卷积核包括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,用于根据待处理的二决策变量单目标连续型优化问题,确定待优化函数r=g(x1,x2);其中,x1、x2为决策变量,r为优化目标;

待优化目标点云组获取模块320,用于在待优化领域db中,获取待优化函数的待优化目标点云组,待优化目标点云组包含p个待优化目标点云;其中,待优化领域db中,x1∈[a1,b1],x2∈[a2,b2];

第一映射模块330,用于将p个待优化目标点云的x1值及x2值按由小至大的方式分别进行排序,将x1值映射为其在排序中的序号x1',将x2值映射为其在排序中的序号x2',并创建映射表存储x1值与x1'的关系,x2值与x2'的关系,x1、x2与r的关系;

二维矩阵创建模块340,用于选取每个待优化目标点云的x1'值及x2'值作为代表相应待优化目标点云的两个特征,创建待优化目标点云组的二维矩阵kk;其中,x1'为二维矩阵kk的行序号,x2'为二维矩阵kk的列序号,二维矩阵kk上第x1'行第x2'列的值为查映射表所得的r值;

最值点获得模块350,用于将二维矩阵kk输入到预先训练获得的cnn二决策变量连续式寻优器中,获得二维矩阵kk中最值点的x1'值为x01'、x2'值为x02'及r值;

第二映射模块360,用于按照预设的第一映射关系,将x1'值映射为x1,将x2'值映射为x2;

优化结果输出模块370,用于输出优化结果为:当x1取x1,x2取x2时达到全局最优r。

应用本发明实施例所提供的装置,将获得的具体二决策变量单目标优化问题的待优化目标点云,转化为对应二维矩阵,并输入至已训练成功的cnn二决策变量连续式寻优器中,快速准确地输出优化问题的全局最优结果。基于训练成功的cnn二决策变量连续式寻优器,可以将输入cnn二决策变量连续式寻优器的二维离散点拟合为连续光滑的二维曲面,并从该连续光滑的二维曲面中快速准确地找出全局最优结果。cnn二决策变量连续式寻优器的寻优计算为线性并行计算,寻优速度快,可直接找到优化问题的全局最优,不存在陷入局部最优的情况。另外,对于有约束的优化问题,输入cnn二决策变量连续式寻优器的所有离散点均属于约束范围内,在cnn二决策变量连续式寻优器的寻优二决策变量单目标连续型优化问题精确全局最优结果过程中无需额外单独考虑。

在本发明的一种具体实施方式中,待优化目标点云组获取模块320,具体用于:

在待优化领域db中,采集p个待优化函数的待优化目标点云;

如果p大于n*n,则在采集到的待优化目标点云中选取n*n个待优化目标点云,构成待优化目标点云组,并令p等于n*n;

如果p不大于n*n,则采集到的待优化目标点云直接构成待优化目标点云组。

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

步骤h:选取一个目标二维函数z=f(x,y),在训练领域da上均匀采集该目标二维函数的目标二维函数点云组,目标二维函数点云组包含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:确定该目标二维函数z=f(x,y)在所述训练领域da中z值为最值的点,将该最值点的x值和y值按照预设的第二映射关系分别映射为x'和y',并以该最值点的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模型;

分别对训练集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二决策变量连续式寻优器。

在本发明的一种具体实施方式中,所述按照预设的第一映射关系,将x1'值映射为x1,将x2'值映射为x2,包括:

a1'=[x01'],a2'=[x02'],b1'=a1'+1,b2'=a2'+1,查询所述映射表将a1'映射为a01,a2'映射为a02,b1'映射为b01,b2'映射为b02,则x1=a01+(x01′+(x01′-a1′)×(b01-a01),x2=a02+(x02'-a2')×(b02-a02)。

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

x'=(x-a)*(n-1)+1,y'=(y-c)*(n-1)+1。

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

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

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

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

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