什么是交叉熵和遗传算法之间的区别?

时间:2015-07-03 14:00:56

标签: machine-learning genetic-algorithm reinforcement-learning

我的一些实验室伙伴一直在玩交叉熵强化学习。从我可以从他们那里收集的所有内容和快速的互联网搜索,交叉熵方法似乎几乎与遗传算法相同。有人可以向我解释一下这两种技术之间的真正区别在于它是否存在?

2 个答案:

答案 0 :(得分:1)

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

简单地说:

遗传算法是一系列算法/一种优化方法

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

答案 1 :(得分:0)

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

遗传算法(GA)适用于人口中的个人,例如虽然突变。您可以枚举每个人的祖先。

交叉熵方法(CEM)将总体表示为概率分布。从此分布中抽取个人。分布参数是根据最佳参数重新估算的。 2%和其他98%都被丢弃了。

从技术上讲,“最佳2%”还描述了概率分布。您可以从中抽取非常大的样本,但价格昂贵。因此,您可以通过简单的分布来近似“ 2%分布”。 cross-entropy度量两个分布之间的差异,您希望将它们最小化。通常,这比听起来简单,例如如果您的分布是高斯分布,则只需从2%的样本中估算均值和(协方差)即可。

实际考虑:

  • CEM要求您得出各个人的概率分布。但是GA除了突变强度之类的参数外,还需要类似的分布才能生成初始种群。

  • CEM易于实现且参数很少。这是一个很好的基线算法。但是,对于仅具有数百个参数的连续问题,由于其良好的记录,应首选CMA-ES。

  • 仅从2%的人口中估计参数需要非常大的人口规模。丢弃98%的信息是浪费的。另一方面,它可以防止CEM步入“横向”并因次优解决方案而分散注意力。

  • GA可能更加花哨,并且存在许多特定于问题的变体。通过选择一个明智的分布,可以使CEM适应问题。这对于某些离散问题很有用。通常,我认为使用GA是从CEM迈出的一步,无论是在复杂性(使其难以正常工作)方面,还是在潜在性能方面(更多机会使其操作员适应该问题)。

    < / li>

参考文献: