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

Machine learning 交叉熵和遗传算法有什么区别?,machine-learning,genetic-algorithm,reinforcement-learning,Machine Learning,Genetic Algorithm,Reinforcement Learning,我的几个实验伙伴一直在玩交叉熵强化学习。从我从他们那里收集到的所有信息和快速的互联网搜索来看,交叉熵方法似乎与遗传算法几乎相同。有人能给我解释一下这两种技术之间的真正区别是什么吗?在这种情况下,交叉熵是遗传算法的一种特殊形式。这比说“遗传算法”要具体得多,因为它涵盖了大量不同的算法 简言之: 遗传算法是一系列算法/一种优化方法 交叉熵是一种特殊的遗传算法 这两种方法都适用于经过多代改良的种群。关键区别在于人口的代表方式 遗传算法对群体中的个体起作用,例如通过变异。你可以列举每个人的祖先 交叉熵法

我的几个实验伙伴一直在玩交叉熵强化学习。从我从他们那里收集到的所有信息和快速的互联网搜索来看,交叉熵方法似乎与遗传算法几乎相同。有人能给我解释一下这两种技术之间的真正区别是什么吗?在这种情况下,交叉熵是遗传算法的一种特殊形式。这比说“遗传算法”要具体得多,因为它涵盖了大量不同的算法

简言之:

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


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

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

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

交叉熵法(CEM)将总体表示为概率分布。从该分布中提取个体。根据最佳值重新估计分布参数,例如2%,其他98%被丢弃

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

实际考虑:

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

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

  • 仅从2%的人口估算参数需要非常大的人口规模。扔掉98%的信息是浪费。另一方面,它可以防止CEM“侧身”并被次优解决方案分散注意力

  • 气体可能更奇特,存在于许多特定于问题的变化中。CEM可以通过选择巧妙的分布来适应问题。这对于一些离散问题非常有效。一般来说,我会说使用遗传算法比CEM高一步,无论是在复杂性方面(更难使其正常工作)还是在潜在性能方面(更多的机会使其操作员适应问题)

参考资料:

  • (Mannor等人,2003年)

  • (Szita和Lörincz,2006年)

  • (Botev等人,2013年)