函数快速收敛模型构建方法、装置和终端与流程

文档序号:20206924发布日期:2020-03-31 10:19阅读:237来源:国知局
函数快速收敛模型构建方法、装置和终端与流程

本发明涉及计算机技术领域,尤其涉及一种函数快速收敛模型构建方法、装置和终端。



背景技术:

在实际运用中,如相机与单线激光雷达的外参标定,即为求解该单线激光雷达到相机的位姿,而求解相机参数的过程常常用非线性最优来求解。

然而,在求解最优值过程中,经常遇到以下问题,例如,由于学习率通常为固定值,即步长固定,若是设置太长,对于一些位姿模型对应的函数往往无法收敛,甚至发散;若是设置太小,理论上是可以达到局部最优值的,但学习缓慢,导致迭代次数太多,收敛时间较长,进而导致求解效率较低。此外,由于一些矩阵模型的参数众多,采用同样大小的学习率,对于某些参数并不适合,故无法同时满足所有参数的要求等。因此,提出一种能加速收敛且同时防止发散的方法来提高相机标定等的求解效率是非常有意义的。



技术实现要素:

有鉴于此,本发明实施例提出一种函数快速收敛模型构建方法、装置和终端,通过基于梯度下降进行变量迭代优化,并在迭代过程中自适应调整学习率,可以解决现有的最小值优化求解方案中易出现收敛速度慢、迭代次数多等问题,从而提高求解效率等。

本发明的一实施方式公开一种函数快速收敛模型构建方法,包括:

获取待求解模型对应的目标函数,并基于梯度下降算法对所述目标函数的每一变量进行迭代;

在迭代过程中,判断当前变量在相邻两次迭代时的偏导数的正负符号是相同还是相反;若相同,则增大所述当前变量的当前学习率,否则减小所述当前学习率以用于迭代;

直到进行所述迭代的所有变量均满足预设收敛条件,则停止迭代,并输出所述待求解模型的模型系数。

进一步地,在上述的函数快速收敛模型构建方法中,所述“基于梯度下降算法对所述目标函数的每一变量进行迭代”包括:

对所述目标函数的每一变量分别求偏导数;

按照迭代公式分别计算每一变量对应的下一迭代值,所述迭代公式为:

其中,k≥0,i≥1,k为迭代次数;θi(k+1)为变量θi的第k+1个迭代值,θi(k)为变量θi的第k个迭代值;当k=0时,θi(0)为变量θi的预设初始值;γ(k)为第k次的学习率;当k=0时,γ(0)为预设初始学习率;为第k次迭代时变量θi的偏导数,f为目标函数。

进一步地,在上述的函数快速收敛模型构建方法中,还包括:

若至少一变量进行迭代时发散,或者至少一变量的迭代次数超过预设次数时仍不满足所述预设收敛条件,则将对应变量的所述预设初始值减小,并重新进行所述迭代,以使所述对应变量满足所述预设收敛条件。

进一步地,在上述的函数快速收敛模型构建方法中,所述“若相同,则增大所述当前变量的当前学习率,否则减小所述当前学习率以用于迭代”包括:

若当前变量的前一次迭代的偏导数与当前迭代的偏导数的正负符号相同,则将当前学习率调整为原来的n倍;若相反,则将所述当前学习率调整为原来的倍,n>1;

然后利用调整后的学习率计算所述当前变量的当前迭代值。

进一步地,在上述的函数快速收敛模型构建方法中,n的取值范围为:1<n≤3。

进一步地,在上述的函数快速收敛模型构建方法中,所述预设收敛条件包括:

对于每一变量,当前迭代的偏导数小于等于对应变量的第一预设阈值且相邻两次迭代时的偏导数的差值小于等于对应变量的第二预设阈值。

进一步地,在上述的函数快速收敛模型构建方法中,基于最小二乘法对所述待求解模型构建所述目标函数。

本发明的一实施方式公开一种函数快速收敛模型构建装置,包括:

目标函数获取模块,用于获取待求解模型对应的目标函数,并基于梯度下降算法对所述目标函数的每一变量进行迭代;

变量迭代计算模块,用于在迭代过程中,判断当前变量在相邻两次迭代时的偏导数的正负符号是相同还是相反,若相同,则增大所述当前变量的当前学习率,否则减小所述当前学习率以用于迭代;

收敛输出模块,用于直到进行所述迭代的所有变量均满足预设收敛条件,则停止迭代,并输出所述待求解模型的模型系数。

本发明的又一个实施方式提供一种终端,所述终端包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序以实施上述的函数快速收敛模型构建方法。

本发明的再一个实施方式提供一种计算机存储介质,其存储计算机程序,在所述计算机程序被执行时,实施根据上述的函数快速收敛模型构建方法。

本发明的技术方案通过基于梯度下降进行待求解模型对应的目标函数的变量迭代优化,并在迭代过程中自适应调整学习率,使得各变量能够快速达到收敛条件同时防止发散,从而提高了模型求解效率,很好地解决了相机标定时利用现有的最小值优化求解方案容易出现发散或收敛速度慢、迭代次数多的问题。此外,该方法还可适用于如非线性拟合、机器学习及深度学习等多种其他场景。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。

图1示出了本发明实施例的函数快速收敛模型构建方法的第一流程示意图;

图2示出了本发明实施例的函数快速收敛模型构建方法的第二流程示意图;

图3示出了本发明实施例的函数快速收敛模型构建装置的结构示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。

此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。

实施例1

请参照图1,本实施例提出一种函数快速收敛模型构建方法,可应用于各种需要进行函数快速收敛的场合,如相机标定、非线性拟合等。通过该方法构建所得到的收敛模型可使目标函数加速收敛且同时防止发散,从而大大提高一些目标模型的模型系数求解效率等。如图1所示,下面对该函数快速收敛模型构建方法进行详细说明。

步骤s10,获取待求解模型对应的目标函数,并基于梯度下降算法对该目标函数的每一变量进行迭代。

在上述步骤s10中,首先需要先通过待求解模型构建得到一目标函数,然后通过对该目标函数进行全局或局部最小值的求解,从而得到该待求解模型的最优模型系数。本实施例中,将对该目标函数求解最小值的收敛过程进行优化,以用于提高目标函数中各变量的迭代效率,也即加快待求解模型的求解效率等。

例如,在相机与激光雷达的外参标定过程中,激光雷达达到相机的位姿即为上述的待求解模型,具体可基于实际测量结果与坐标转换关系构提取得到,进而将该待求解模型转化为最小值求解优化问题。示范性地,可采用最小二乘法将该位姿的求解转化为最小二乘问题,从而得到上述的目标函数。当然,除了最小二乘法,也可以采用其他算法来构建该待求解模型的目标函数,例如,残差和最小算法,或残差绝对值和最小算法等。

于是,在获取到目标函数后,将基于梯度下降算法对该目标函数进行更新迭代,以输出该目标函数收敛时各变量的值,即待求解模型的模型系数。其中,梯度下降可用于求解无约束最优化问题,也可用于曲线拟合回归问题。本实施例中,为求解该目标函数的最优化问题,将基于梯度下降法对该目标函数中的各个变量进行梯度下降,以进行迭代优化。在进行迭代过程中,将执行步骤s20。

步骤s20,在迭代过程中,判断当前变量在相邻两次迭代时的偏导数的正负符号是相同还是相反;若相同,则增大该当前变量的当前学习率,否则减小该当前学习率以用于迭代。

示范性地,如图2所示,对于上述步骤s10及步骤s20,主要包括:

子步骤s101,获取待求解模型对应的目标函数。

子步骤s102,对目标函数的每一变量,给定预设初始值和预设初始学习率。

对于子步骤s102,在给定了对应变量的预设初始值及预设初始学习率后,将其代入迭代公式中即可以计算得到第一个迭代值。

子步骤s103,对每一变量分别求偏导数。

其中,对于上述步骤s102和子步骤s103,其执行的先后顺序并不作限定,当然,还可以是同时执行,在此并不作限定。

在上述子步骤s103中,将根据梯度的定义将对目标函数的每一变量分别求偏导数,以用于梯度下降处理。其中,对于偏导数而言,可用解析偏导数表示,也可用数值偏导数表示,具体可根据实际需求来选择。

示范性地,若该目标函数为f(θ1,θ2,θ3),则将分别对每一变量均进行求偏导数。根据偏导数的定义可知,其中,θi表示第i个变量,i=1,2,3;表示该第i个变量的偏导数。

又或者,对于一些目标函数的变量的偏导数含有正弦或余弦等比较复杂的表达式,可采用数值偏导数来代表解析偏导数表示。例如,若该目标函数记为f(x,y),根据数值偏导数定义可知:其中,δx为趋近于0的变量增量,表示该变量x的偏导数。

子步骤s104,根据当前变量在相邻两次迭代时的偏导数来扩大或缩小当前学习率。

在上述子步骤s104中,对于每一变量,判断其第k次及第k+1次迭代(即相邻两次迭代)时的偏导数的符号是相同还是相反,若相同,则扩大该变量的当前学习率,即调整第k次迭代时的当前学习率,并基于调整后的学习率计算第k+1个迭代值。

例如,对于第i个变量θi,当k=0(即未迭代)时,利用预设初始值θi(0)及偏导数公式可计算得到第0次迭代时的偏导数并将其代入迭代公式进行第1次迭代,则可得到第1个迭代值为:其中,γ(0)为预设初始学习率。于是,计算第2个迭代值θi(2),即k=1时,可先计算第1次迭代时的偏导数然后判断第0次迭代时的偏导数与第1次迭代时的偏导数的正负符号是否相同。

若相同,则说明两次梯度下降的方向相同,此时通过增大学习率以加快收敛,故可对当前的学习率γ(1)进行扩大,优选地,调整为γ(1)的n倍,n>1,例如,n=2。若相反,则说明两次梯度下降的方向相反,此时将对当前的学习率γ(1)进行缩小,即缩小下降步长,可选地,调整为γ(1)的1/m倍,m>1。进一步优选地,m与n取值相同。于是,利用调整后的学习率γ'(1)来计算第2个迭代值,即

本实施例中,对于调整的倍数n,取值范围优选地为:1<n≤3。可以理解,在迭代过程中,后一个迭代值的计算是基于前一次迭代时的偏导数进行计算的。当变量θi由θi(k)更新为θi(k+1)时,对应的偏导数的值也将变化。

子步骤s105,计算每一变量在第k次及第k+1次迭代时的偏导数。

示范性地,利用各变量的偏导数按照迭代公式进行迭代计算,所述迭代公式为:

其中,k≥0,i≥1,k为迭代次数(k=0时表示未迭代);θi(k+1)为变量θi的第k+1个迭代值,当k=0时,θi(0)为变量θi的预设初始值;θi(k)为变量θi的第k个迭代值;γ(k)为第k次的学习率,当k=0时,γ(0)为预设初始学习率;为第k次迭代时的变量θi的偏导数,f为目标函数。可以理解,当k=0时,可通过将变量θi的预设初始值θi(0)代入偏导数表达式中得到。

步骤s30,直到进行迭代的所有变量均满足预设收敛条件,则停止迭代,并输出该待求解模型的模型系数。

在上述步骤s30中,示范性地,该预设收敛条件包括:对于每一变量,当前迭代的偏导数小于等于对应变量的第一预设阈值且相邻两次迭代时的偏导数的差值小于等于对应变量的第二预设阈值。其中,该第一预设阈值与第二预设阈值均趋近于0,例如,可取值为10-5或10-6等。可以理解,这两者的取值可相同也可不相同。

示范性地,如图2所示,对于步骤s30,主要包括:

子步骤s106,若未达到预设收敛条件,则继续迭代。

子步骤s107,直到每一变量均满足预设收敛条件,停止迭代。

子步骤s108,输出待求解模型的模型系数。

对于上述子步骤s106,进行至少一次迭代后,判断每一变量是否均满足预设收敛条件,则不满足,则继续执行上述子步骤s103-s105。直到每一变量均满足预设收敛条件,则执行子步骤s107和子步骤s108。

例如,以上述目标函数f(θ1,θ2,θ3)为例,若变量θ1、θ2和θ3均满足迭代后的各自的偏导数接近于0,即小于等于各自对应的第一预设阈值,且前后迭代时的偏导数的差值非常小,即差值也接近于0,则说明该目标函数已经达到全局或局部最小值。此时,将停止迭代,并输出迭代得到的各变量θ1',θ2',θ3',即待求解模型的模型系数。

进一步可选地,考虑到有些目标函数的一些变量可能在迭代后出现发散现象,或者在迭代了预设次数后仍没有达到上述预设收敛条件,则应当停止迭代并作相应调整。如图2所示,该函数快速收敛模型构建方法还包括:

子步骤s109,发散或迭代预设次数后仍没有达到预设收敛条件。

对于子步骤s109,此时可通过调整对应变量的预设初始值,例如,可为该预设初始值选取一个更小的值,然后重新进行子步骤s103-s105的迭代过程,直到满足子步骤s107中的预设收敛条件并停止迭代。

下面以相机与激光雷达的外参标定进行举例说明,对于该外参标定过程,即主要是求解激光雷达达到相机的位姿pose(x,y,z,rx,ry,rz),其中,x,y,z,rx,ry,rz分别为变量,该位姿可表示为4*4的矩阵b,其表达式可如下所示:

在实际求解过程中,可将相机与单线激光雷达固定在小车上,并使小车在实际环境中运动,通过找出n个固定点,而在第i个固定点上,激光雷达可扫描到相机两次不同的位姿(具体可利用视觉算法获取),于是,其4*4的矩阵可描述为ai,1ai,2,然后找到其在单线激光雷达中的齐次坐标xi,1,xi,2。

于是,根据实际测量值与位姿模型将提出如下数学模型。

其中,b为待求解模型,即为标定参数。

随后,利用最小二乘法将上述模型转化为最小值优化问题,得到该待求解模型的目标函数,其表达式为:即获取的目标函数为:

于是,对于该目标函数,可按照上述步骤s10-s30对变量x、y、z、rx、ry和rz分别按照迭代公式进行迭代。其中,由于这些变量的关系式比较复杂,可利用数值偏导数来表达,例如,对于变量x,其偏导数为:其中,δx为趋近于0的变量增量,表示变量x的偏导数。

在迭代过程中,对于每一变量,判断其第k次和第k+1次迭代时的偏导数的正负符号以确实是增大还是减小当前的学习率γ,并利用调整后的学习率γ'计算第k+1个迭代值。直到所有的变量均满足了预设收敛条件,停止迭代。最后,输出目标函数f为最小值时的变量x',y',z',rx',ry',rz',即为待求解模型的模型系数,即求解得到矩阵b。

可以理解,该函数快速收敛模型构建方法不仅可以用于相机标定,还可以如曲线拟合,以及机器学习、深度学习等需要运用到使函数收敛的其他场景。本实施例提出的函数快速收敛模型构建方法在通过在求解相机标定的位姿矩阵时,可对目标函数中的每一变量分别选取并调整各自的学习率,使得当前后两次迭代时的偏导数同向时自动放大当前学习率,而在反向时自动缩小当前学习率,进而提高收敛速度并减少迭代次数等,达到减少系统在迭代时的资源占用,还可提高系统的求解效率等。

实施例2

请参照图3,基于上述实施例1的函数快速收敛模型构建方法,本实施例中提供一种函数快速收敛模型构建装置100,应用于终端,该装置包括:

目标函数获取模块10,用于获取待求解模型对应的目标函数,并基于梯度下降算法对所述目标函数的每一变量进行迭代;

变量迭代计算模块20,用于在迭代过程中,判断当前变量在相邻两次迭代时的偏导数的正负符号是相同还是相反,若相同,则增大所述当前变量的当前学习率,否则减小所述当前学习率以用于迭代;

收敛输出模块30,用于直到进行所述迭代的所有变量均满足预设收敛条件,则停止迭代,并输出所述待求解模型的模型系数。

可以理解,上述的函数快速收敛模型构建装置100对应于实施例1的函数快速收敛模型构建方法。实施例1中的任何可选项也适用于本实施例,这里不再详述。

本发明还提供了一种终端,如计算机等。该终端包括存储器和处理器,存储器可用于存储计算机程序,处理器通过运行所述计算机程序,从而使终端执行上述函数快速收敛模型构建方法或者上述函数快速收敛模型构建装置中各个模块的功能。

存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本发明还提供了一种计算机存储介质,用于储存上述终端中使用的所述计算机程序。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

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