一种基于辅助代价和相似状态的非凸优化方法与流程

文档序号:12602062阅读:240来源:国知局
一种基于辅助代价和相似状态的非凸优化方法与流程

本发明涉及最优化、人工智能和大数据领域,特别涉及基于辅助代价和相似状态的非凸优化方法。



背景技术:

优化问题在很多科学和工程领域都扮演着非常重要的角色。优化问题可以表示成在给定的关于自变量变化范围的约束条件下求解给定代价函数的最小值,其中的凸优化问题是指对自变量在凸集内变化的凸代价函数进行优化。凸优化方法可以很好地解决凸优化问题,现有方法包括单纯形法、梯度下降法、共轭梯度下降法、二阶方法等。但是,对于更多的实际问题,其代价函数或自变量的变化范围通常是非凸的,存在大量的局部最优点,要想有效地求解一般非凸问题的全局最优解,是一个有待解决的问题。非凸优化方法是一种用于搜索并逼近非凸问题的全局最优解的方法,现有方法包括遗传算法、模拟退火算法、禁忌搜索、粒子群算法、神经网络等,但是它们的搜索效率大都非常低下。如何提高现有非凸优化方法的搜索效率,是一个有待解决的问题。

深度学习系统的参数优化问题,是一个典型的非凸优化问题。参见参考文献1“G.E.Hinton and R.R.Salakhutdinov,"Reducing the dimensionality of data with neural networks,"Science,vol.313,no.5786,pp.504-507,2006”,G.E.Hinton等人在2006年提出了用于深度置信网的逐层初始化训练方法,是深度学习系统的研究起点,它是通过模拟人脑分层次的抽象,将底层数据逐层映射而获得更抽象的特征,由于它可以从大数据中自动提取特征,并通过海量的样本训练获得很好的处理效果,从而得到了广泛的关注。此外,深度学习的研究和大数据的增长是相辅相成的,一方面大数据的快速增长需要一种高效处理海量数据的方法,另一方面深度学习系统的训练需要海量的样本数据。就目前来说,由于凸优化方法的高效性和非凸优化方法的低效性,针对海量的样本数据,用凸优化方法来优化深度学习系统的大量参数是最常见的方法。

非凸优化方法难以在深度学习系统中发挥应有的作用,归根结底是因为非凸优化方法的低效率。在2013年Y.Bengio等人的一篇综述论文中,总结了目前深度学习所面临的挑战和难点,包括如何扩展现有的深度学习系统的规模,并应用到更大 的数据集;如何减小参数优化困难;如何避免昂贵的推理和采样,以及如何解开变化因素等。参见参考文献2“Y.Bengio,A.Courville,and P.Vincent,"Representation Learning:A Review and New Perspectives,"IEEE Transactions on Pattern Analysis and Machine Intelligence,vol.35,Issue.8,pp.1798-1828,2013”。总之,一旦非凸优化方法的搜索效率得到提高,它就可以直接应用于深度学习系统的参数优化中。



技术实现要素:

本发明的目的在于克服已有的非凸优化方法效率较低的缺陷,从而提供一种具有较高效率的非凸优化方法。

为了实现上述目的,本发明提供了一种基于辅助代价和相似状态的非凸优化方法,包括:用基于辅助代价函数Ca的初始化方法搜索到一个初始状态,再通过快速搜索方法找到代价函数C的一个局部最优状态E1,然后开始寻找与E1类似的局部最优状态E2,之后再寻找与E2类似的局部最优状态E3,循环往复地找到一系列局部最优状态,直到代价函数C的局部最优状态的数目满足阈值为止;其中,所述辅助代价函数Ca较代价函数C的表达式简单;Ei和它的类似状态之间的相似度,随着i的增加而减小。

上述技术方案中,该方法具体包括:

步骤1)、在基于辅助代价的初始化方法的集合Ma={mai}中随机选择一种状态更新方法,基于对辅助代价函数Ca的评价,重复更新当前状态,直到找到辅助代价函数的局部最优为止,得到初始状态Ea;其中,

所述基于辅助代价的初始化方法的集合中包括有能够快速达到局部最优的方法;辅助代价函数Ca取代价函数C进行泰勒展开的前三项,忽略三阶以上的展开项;

步骤2)、令局部最优状态的数目L*=1,在局部搜索方法的集合Mf={mfi}中随机选择一种状态更新方法,以步骤1)所得到的初始状态Ea为基础,基于对原有代价函数C的评价,重复更新当前状态,直到找到代价函数C的一个局部最优为止,从而得到局部最优状态E1;其中,

所述局部搜索方法的集合中包括有能够快速达到局部最优的方法;

步骤3)、令局部最优状态的数目L*=L*+1,在相似状态生成方法的集合Ms={msi}中随机选择一种状态更新方法,在给定的相似度范围内更新当前状态,然后在局部搜索方法的集合Mf={mfi}中随机选择一种状态更新方法,基于对原有代价函数C的评价,反复更新当前状态,直到找到代价函数C的另一个局部最优为止,从而得到 另一局部最优状态;其中,

所述相似状态生成方法的集合中包括有在给定的相似度范围内生成与当前状态相似的另一个状态的方法;

步骤4)、判断局部最优状态的数目L*是否大于阈值L,如果判断结果是肯定的,转入步骤5),否则,返回步骤3);

步骤5)、比较所有搜索到的L*个局部最优状态的代价,输出一个代价函数C最小的局部最优状态。

上述技术方案中,所述基于辅助代价的初始化方法的集合中包括:采用辅助代价函数Ca的梯度下降法和共轭梯度下降法;其中,梯度下降法在实现时始终沿着▽Ca的方向搜索;共轭梯度下降法用已知的▽Ca构造一组共轭方向,并沿这组方向进行搜索,它的每一个搜索方向是互相共轭的。

上述技术方案中,所述局部搜索方法的集合中包括:代价函数C的梯度下降法、共轭梯度下降法和二阶梯度下降法;其中,梯度下降法始终沿着▽C的方向搜索;共轭梯度下降法用已知的▽C构造一组共轭方向,并沿这组方向进行搜索,它的每一个搜索方向是互相共轭的;二阶梯度下降法沿着▽2C的方向搜索,代价函数C的二阶导数矩阵是Hesse矩阵。

上述技术方案中,所述相似状态生成方法的集合中包括:在给定的相似度范围内随机交换一部分被选中参数的方法和随机初始化一部分被选中参数的方法;其中的随机交换一部分被选中参数的方法对选中的参数θi和θj进行操作(θi,θj)=(θj,θi);随机初始化一部分被选中参数的方法对选中的参数θi进行操作θi=random(θminmax)。

上述技术方案中,采用相似状态生成方法在给定的相似度范围内更新当前状态时,当前状态A与更新后的状态B之间的相似度的取值范围定为:

<mrow> <mfrac> <mrow> <mi>L</mi> <mo>-</mo> <mi>L</mi> <mo>*</mo> </mrow> <mi>L</mi> </mfrac> <mo>&le;</mo> <mi>S</mi> <mi>i</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>B</mi> <mo>)</mo> </mrow> <mo>&le;</mo> <mfrac> <mrow> <mi>L</mi> <mo>-</mo> <mi>L</mi> <mo>*</mo> <mo>+</mo> <mn>1</mn> </mrow> <mi>L</mi> </mfrac> <mo>;</mo> </mrow>

其中,状态A和状态B之间的相似度定义为局部最优状态的数目L*的取值范围是[1,L];所述阈值L的取值范围是[2,NL],其中NL是解空间中代价函数C的局部最优点的总数。

上述技术方案中,所述阈值L的取值在2和20之间。

本发明的优点在于:

本发明的方法提高了现有的非凸优化方法的效率,降低了深度学习系统的参数 优化难度。

附图说明

图1是本发明的基于辅助代价和相似状态的高效非凸优化过程的示意图;

图2是本发明的基于辅助代价和相似状态的高效非凸优化方法的流程图。

具体实施方式

现结合附图对本发明作进一步的描述。

如图1所示,基于辅助代价和相似状态的高效非凸优化过程包括:先引入辅助代价函数Ca,用基于辅助代价的初始化方法搜索到一个初始状态Ea,再通过快速搜索方法找到代价函数C的一个局部最优状态E1,然后开始寻找与E1类似的局部最优状态E2,之后再寻找与E2类似的局部最优状态E3,循环往复地找到一系列局部最优状态E1、E2、E3、E4等,直到代价函数C的局部最优状态的数目满足阈值为止。其中,Ei和它的类似状态之间的相似度,随着i的增加而减小。

为了实现上述过程,在原有的代价函数C的基础上,引入一个更容易优化的辅助代价函数Ca,用于寻找一个接近最优状态的初始点。本发明中的辅助代价函数Ca在理论上只要比代价函数C的表达式更为简单即可适用,若能近似反映原函数的变化趋势则更佳。作为一种优选实现方式,在本发明的一个实施例中,所述的辅助代价函数Ca可通过如下方式获取:取原代价函数C进行泰勒展开的前三项,忽略三阶以上的展开项。

在本发明中将状态更新方法的集合M={mi}分为:基于辅助代价的初始化方法的集合Ma={mai},局部搜索方法的集合Mf={mfi},以及相似状态生成方法的集合Ms={msi},即:

M=Ma∪Mf∪Ms

其中,状态更新方法,是指任何一种从一个状态变化到另一个状态的方法;基于辅助代价的初始化方法,是指一种根据辅助代价函数Ca生成一个接近最优状态的初始点的方法;局部搜索方法,是指一种快速找到距离当前状态最近的局部最优点的方法;相似状态生成方法,是指一种在给定的相似度范围内生成与当前状态相似的另一个状态的方法。

其中,基于辅助代价的初始化方法mai在实现时可采用能够快速达到局部最优的方法,如采用辅助代价函数Ca的梯度下降法和共轭梯度下降法,在初始化时可从中 随机选择一种。其中的梯度下降法在实现时始终沿着▽Ca的方向搜索;共轭梯度下降法用已知的▽Ca构造一组共轭方向,并沿这组方向进行搜索,它的每一个搜索方向是互相共轭的。

局部搜索方法mfi在实现时可采用能够快速达到局部最优的现有方法,如采用代价函数C的梯度下降法、共轭梯度下降法和二阶梯度下降法,在初始化时可从中随机选择一种。其中的梯度下降法始终沿着▽C的方向搜索;共轭梯度下降法用已知的▽C构造一组共轭方向,并沿这组方向进行搜索,它的每一个搜索方向是互相共轭的;二阶梯度下降法沿着▽2C的方向搜索,代价函数C的二阶导数矩阵是Hesse矩阵。

相似状态生成方法msi在实现时可采用在给定的相似度范围内生成与当前状态相似的另一个状态的方法,如在给定的相似度范围内随机交换一部分被选中参数的方法和随机初始化一部分被选中参数的方法。在初始化时可从中随机选择一种。其中的随机交换参数的方法对选中的参数θi和θj进行操作(θi,θj)=(θj,θi);随机初始化的方法对选中的参数θi进行操作θi=random(θminmax)。

其中,当使用相似状态生成方法msi从状态A变化到相似状态B时,相似度的取值范围定为:

<mrow> <mfrac> <mrow> <mi>L</mi> <mo>-</mo> <mi>L</mi> <mo>*</mo> </mrow> <mi>L</mi> </mfrac> <mo>&le;</mo> <mi>S</mi> <mi>i</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>B</mi> <mo>)</mo> </mrow> <mo>&le;</mo> <mfrac> <mrow> <mi>L</mi> <mo>-</mo> <mi>L</mi> <mo>*</mo> <mo>+</mo> <mn>1</mn> </mrow> <mi>L</mi> </mfrac> </mrow>

其中,状态A和状态B之间的相似度定义为局部最优状态的数目L*的取值范围是[1,L],阈值L的取值范围是[2,NL],这里的NL是解空间中代价函数C的局部最优点的总数。

如图2所示,本发明提供了基于辅助代价和相似状态的高效非凸优化方法,所述方法的具体步骤包括:

步骤1)、在基于辅助代价的初始化方法的集合Ma={mai}中随机选择一种状态更新方法,基于对辅助代价函数Ca的评价,重复更新当前状态,直到找到辅助代价函数的局部最优为止,得到初始状态Ea;具体的说,以各50%的概率在梯度下降法和共轭梯度下降法中随机选择一种状态更新方法后,在第一轮搜索时随机产生第一个当前状态,然后进行状态更新,每更新一次,当前状态就变化一次,最后达到Ca的局部最优,此时的当前状态就是在初始化过程中所要求取的初始状态Ea

以深度学习系统为例,在深度学习系统的参数优化过程中,所述步骤1)具体包括:将网络能量设定为辅助代价,在基于辅助代价的初始化方法的集合Ma={mai}中选择一种更新方法,并在无标注训练样本集合Xt={xti}中选择样本,从底层开始逐层初始化深度学习系统,不断更新现有的网络参数,直到顶层为止。

步骤2)、令L*=1,在局部搜索方法的集合Mf={mfi}中随机选择一种状态更新方法,以步骤1)所得到的初始状态Ea为基础,基于对原有代价函数C的评价,重复更新当前状态,直到找到代价函数C的一个局部最优为止,从而得到局部最优状态E1

在深度学习系统的参数优化过程中,所述步骤2)具体包括:将验证误差设为代价函数,在局部搜索方法的集合Mf={mfi}中选择一种方法,在有标注训练样本集合Yt={xti,yti}中选择样本,重复更新现有的网络参数,直到找到代价函数C的一个局部最优状态为止。

步骤3)、令L*=L*+1,在相似状态生成方法的集合Ms={msi}中随机选择一种状态更新方法,在给定的相似度范围内更新当前状态,然后在局部搜索方法的集合Mf={mfi}中随机选择一种状态更新方法,基于对原有代价函数C的评价,反复更新当前状态,直到找到代价函数C的另一个局部最优为止,从而得到另一局部最优状态;

在深度学习系统的参数优化过程中,所述步骤3)具体包括:按照给定的比例选中部分网络参数,先在相似状态生成方法的集合Ms={msi}中选择一种更新方法,在给定的相似度范围内更新被选中的参数,然后在局部搜索方法的集合Mf={mfi}中选择一种方法,在保持未被选中的网络参数不变的前提下,以高学习率反复更新被选中的网络参数,直到找到代价函数C的另一个局部最优为止。

步骤4)、判断局部最优状态的数目L*是否大于阈值L,如果判断结果是肯定的,转入步骤5),否则,返回步骤3);

之前已经提到,在理论上,阈值L的取值范围是[2,NL],这里的NL是解空间中代价函数C的局部最优点的总数。对于大部分复杂的非凸优化问题而言,NL是一个大自然数;在实际操作中,先设定阈值L=7,如果精度不够则增加L,如果时间不够则减小L,一般不会超过20,即:L的实际取值在2和20之间。

步骤5)比较所有搜索到的L*个局部最优状态的代价,输出一个代价函数C最小的局部最优状态。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

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