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

7

我的几个实验室同事一直在玩交叉熵强化学习。从他们那里和快速的互联网搜索中可以得到的所有信息来看,交叉熵方法似乎与遗传算法几乎相同。如果存在真正的区别,有人能向我解释这两种技术的区别吗?

2个回答

3
在这个背景下,交叉熵是遗传算法的一种特定形式。它比说“遗传算法”更具体,因为后者涵盖了大量不同的算法。
简单来说:
遗传算法是算法家族/优化方法之一。
交叉熵是一种特定的遗传算法。

2
两种方法都是通过多代改进的人口来工作。关键区别在于如何表示人口。 遗传算法(GAs)处理人口中的个体,例如通过变异。您可以枚举每个个体的祖先。 交叉熵方法(CEM)将人口表示为概率分布。个体从该分布中抽取。分布参数从最佳的2%重新估计,其余98%被丢弃。
从技术上讲,“最佳的2%”也是一个概率分布。您可以从中绘制非常大的样本,但这很昂贵。因此,您尝试用简单的分布近似“2%分布”。 交叉熵测量两个分布之间的差异,您希望将其最小化。通常,这比听起来要简单:如果您的分布是高斯分布,则可以仅从最佳的2%估计新的均值和(协)方差。
实际考虑:
CEM要求您提出一个关于个体的概率分布。大多数GAs也仅需要这样的分布来生成初始种群,除了像突变强度之类的参数。
CEM很容易实现且参数很少。它是一个很好的基准算法,有时会击败更复杂的方法。然而,对于只有几百个参数的连续问题,CMA-ES是更好的基准线,因为它有着较强的记录。
仅从2%的人口中估计参数需要非常大的人口规模。抛弃98%的信息是浪费的。另一方面,它可以防止CEM跨越步骤并被次优解分散注意力。
GA可以更加花哨,并存在许多问题特定的变化。通过选择巧妙的分布,CEM可以适应问题。这在某些离散问题中效果很好。总的来说,我认为使用GA比CEM更复杂(更难使其正常工作)并具有更高的潜在性能(更多的机会将其操作符调整到问题)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接