交叉熵和遗传算法有什么区别?

Whats the difference between Cross-Entropy and Genetic Algorithms?

我的一些实验室伙伴一直在研究交叉熵强化学习。从我从他们那里收集到的所有信息和快速的互联网搜索来看,交叉熵方法似乎与遗传算法几乎相同。有人可以向我解释这两种技术之间的真正区别是什么吗?

在这种情况下,交叉熵是遗传算法的一种特殊形式。它比说 "Genetic Algorithms" 更具体,因为它涵盖了大量不同的算法。

简单地说:

遗传算法是一类算法/一种优化方法

交叉熵是一种特殊的遗传算法。

这两种方法都适用于经过多代改进的人口。关键区别在于人口的表示方式。

遗传算法 (GA) 对人群中的个体起作用,例如通过突变。可以一一列举每个人的祖先。

Cross-Entropy 方法 (CEM) 将总体表示为概率分布。个人是从这个分布中抽取的。分布参数是 re-estimated 来自最好的,例如2% 和其他 98% 被丢弃。

从技术上讲,“最好的 2%”也是一种概率分布。你可以从中抽取一个非常大的样本,但它很昂贵。所以你试着用你的简单分布来近似“2% 的分布”。 测量两个分布之间的差异,您希望将其最小化。通常这比听起来更简单:如果您的分布是高斯分布,您可以从最好的 2%.

中估计一个新的均值和(协)方差。

实际考虑:

  • CEM 要求您得出个体的概率分布。除了突变强度等参数之外,大多数 GA 还需要这样的分布来生成初始种群。

  • CEM实现简单,参数少。这是一个很好的基线算法,有时它会击败更复杂的方法。然而,CMA-ES 对于只有几百个参数的连续问题来说是一个更好的基线,因为它有很好的记录。

  • 估计仅 2% 的人口的参数需要非常大的人口规模。丢弃 98% 的信息是一种浪费。另一方面,它可以防止 CEM“横着走”并被 sub-optimal 解决方案分散注意力。

  • GA 可以更花哨,并且存在许多 problem-specific 变体。 CEM 可以通过选择巧妙的分布来适应问题。这对于某些离散问题非常有用。一般来说,我会说使用 GA 是 CEM 的一个进步,无论是在复杂性(更难使其正常工作)还是在潜在性能(使其操作员适应问题的更多机会)方面。

参考文献: