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/n∑nH(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/n∑nH(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=1∑NH(Xi)f(Xi;v(t−1))f(Xi;u)logf(Xi;v(t−1))
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)可以写成: