进化策略优化算法CEM(Cross Entropy Method)

1. 进化策略与遗传算法

进化策略算法(Evolutionary Strategies,ES)是一种基于进化理论的算法,通过适者生存的自然法则来淘汰和筛选样本,目的是获得更好的样本(参数),与遗传算法一样,它也是通过参数扰动来探索更好的解,但是进化策略可以看做是遗传算法的一种扩展:在遗传算法中,我们用一串0/1数组表示遗传DNA,用父代们的DNA重组和变异得到不同的子代DNA,然后通过适应性函数判断子代DNA的得分,选出得分较高的子代进行下一次重组和变异,直到算法收敛;而进化策略算法把DNA的0/1的二值性表示扩展到了连续的实数空间,每个数值的变异强度由其方差决定,变异后的值围绕其均值波动。进化策略算法在遗传信息上的表达相对更加丰富,而且还可以遗传变异强度,因此可以看做是遗传算法的一种扩展。

2.Cross Entropy Method (CEM)

Cross Entropy Method是一种进化策略算法,它虽然也是基于交叉熵,但并不是我们熟知的监督学习中的交叉熵方法。这个算法的核心是一个参数优化的过程,举个一般的例子,我们考虑估计一个期望 E u ( H ( x ) ) = ∫ H ( x ) f ( x ; u ) d x E_u(H(x))= \int H(x)f(x;u)dx Eu(H(x))=H(x)f(x;u)dx,最简单的方法就是用朴素蒙特卡罗采样从真实概率密度函数 f ( x ; u ) f(x;u) f(x;u)中采样一些样本 x i x_i xi,然后计算 1 / n ∑ n H ( x i ) 1/n \sum_n H(x_i) 1/nnH(xi),若事件 H ( x ) H(x) H(x)发生的概率很小,那么朴素蒙特卡罗需要非常多的样本代价才能估计准这个期望;CEM算法则引入重要性采样(importance sampling),从另一个类似的概率密度函数 f ( x ; v ) f(x;v) f(x;v)中进行采样,则期望计算变成: 1 / n ∑ n H ( x i ) W ( z ; u , v ) 1/n \sum_n H(x_i) W(z;u,v) 1/nnH(xi)W(z;u,v),其中 W ( z ; u , v ) = f ( x ; u ) / f ( x ; v ) W(z;u,v)=f(x;u)/f(x;v) W(z;u,v)=f(x;u)/f(x;v),于是现在的目标变成了如何找到一个最优的采样函数 f ( x ; v ∗ ) f(x;v^*) f(x;v)去指导采样出一些少量的样本来准确地估计这个期望,CEM通过在每次迭代中找到较好的采样样本 x x x来更新重要性函数的参数 v v v(reference parameter),目的是减小 f ( x ; v ) f(x;v) f(x;v) f ( x ; v ∗ ) f(x;v^*) f(x;v)两个分布的差距,而这个差距是由KL散度(相对墒,但最后公式中只用到了交叉墒)来衡量的,所以最后取名为Cross Entropy Method(CEM).

**从本质上来说,CEM是一种基于参数扰动的搜索算法,给参数空间 v v v一些合理的扰动,然后在这些扰动(变体/子代)中搜索和选择较好的集和,然后利用交叉墒来指导更新 v v v,让这些扰动方向越趋近于我们想要的目标优化方向。**与众多监督学习算法一样,CEM也运用了交叉墒来指导更新方向,但它却是一个免梯度(gradients free)的方法,从进化的角度在解优化问题。下面是维基百科的解释,有兴趣的可以去看一下关于 v v v是如何更新的推导,这里只给出它的最终形式:

v ( t ) = argmax u 1 N ∑ i = 1 N H ( X i ) f ( X i ; u ) f ( X i ; v ( t − 1 ) ) log ⁡ f ( X i ; v ( t − 1 ) ) {\displaystyle \mathbf {v} ^{(t)}=\mathop {\textrm {argmax}} _{\mathbf {u} }{\frac {1}{N}}\sum _{i=1}^{N}H(\mathbf {X} _{i}){\frac {f(\mathbf {X} _{i};\mathbf {u} )}{f(\mathbf {X} _{i};\mathbf {v} ^{(t-1)})}}\log f(\mathbf {X} _{i};\mathbf {v} ^{(t-1)})} v(t)=argmaxuN1i=1NH(Xi)f(Xi;v(t1))f(Xi;u)logf(Xi;v(t1))

The cross-entropy (CE) method developed by Reuven Rubinstein is a general Monte Carlo approach to combinatorial and continuous multi-extremal optimization and importance sampling. The method originated from the field of rare event simulation, where very small probabilities need to be accurately estimated, for example in network reliability analysis, queueing models, or performance analysis of telecommunication systems. The CE method can be applied to static and noisy combinatorial optimization problems such as the traveling salesman problem, the quadratic assignment problem, DNA sequence alignment, the max-cut problem and the buffer allocation problem, as well as continuous global optimization problems with many local extrema.

下面,我们根据两个例子具体来看一下CEM方法的应用:

2.1 求最短路径大于固定值的概率

我们首先考虑一个最短路问题,从A到B点如何找到一条路径让总距离最小。每条路的距离figure1中的各个权值表示,这里一共有5个权值,但是每个权值 X 1 , X 2 , X 3 , X 4 , X 5 X_1,X_2,X_3,X_4,X_5 X1,X2,X3,X4,X5是按照某些均值 u 1 , u 2 , u 3 , u 4 , u 5 u_1,u_2,u_3,u_4,u_5 u1,u2,u3,u4,u5的指数分布随机产生的,每个权值的产生相互独立。

我们的目标是去估计出一套指数分布的参数,让其产生的权值满足最短路径大于一个固定值这一条件,由于采样的随机性不可能让所有样本都满足这个条件,因此我们考虑满足这个条件的样本占比,占比越大,说明我们能更容易产生让最短路较大的权值。

这里写图片描述

我们定义权值 X = ( X 1 , . . . , X 5 ) \textbf{X}=(X_1, ..., X_5) X=(X1,...,X5)和权值参数 u = ( u 1 , . . . , u 5 ) u=(u_1,...,u_5) u=(u1,...,u5),那么权值 X \textbf{X} X的概率分布函数(pdf) f ( ; u ) f(;\textbf{u}) f(;u)可以写成:

  • 21
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
交叉熵优化算法CEM)是一种用于解决多元函数寻优的算法。它主要通过迭代过程来最小化目标函数,并寻找函数的最优解。CEM在寻找最优解时使用了交叉熵的概念。 CEM的基本思想是将问题转化为一个分布估计的优化问题。首先,通过生成一组初始解集合,然后使用这些解来构建一个概率分布。根据这个分布,生成新的解并计算它们的函数值。接着,根据函数值对解进行排序,并选择排名靠前的一部分解来更新概率分布。通过迭代这个过程,不断更新概率分布,直到找到最优解。 在交叉熵优化算法中,交叉熵被用来度量生成的解的分布与期望的分布之间的差异。在每次迭代中,将生成的解与观测到的解进行比较,并通过交叉熵计算它们之间的差异。然后根据差异的大小来更新概率分布,使得生成的解更加接近观测到的解。 通过使用交叉熵优化算法,可以在多元函数中寻找最优解。由于CEM结合了概率分布和交叉熵的概念,能够通过迭代过程逐步调整生成解的分布,进而寻找到更接近最优解的解。这使得CEM在多元函数寻优中具有较好的效果。 总之,交叉熵优化算法是一种用于多元函数寻优的算法,通过迭代更新概率分布来不断优化生成的解,以最小化目标函数。它利用交叉熵的概念来度量解的分布与期望分布之间的差异,并通过调整概率分布逐步接近最优解。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值