【发布时间】:2015-09-21 09:42:28
【问题描述】:
我的一些实验室伙伴一直在玩交叉熵强化学习。从我可以从他们那里收集到的所有信息和快速的互联网搜索中,交叉熵方法似乎与遗传算法几乎相同。有人可以向我解释一下这两种技术之间的真正区别是什么?
【问题讨论】:
标签: machine-learning genetic-algorithm reinforcement-learning
我的一些实验室伙伴一直在玩交叉熵强化学习。从我可以从他们那里收集到的所有信息和快速的互联网搜索中,交叉熵方法似乎与遗传算法几乎相同。有人可以向我解释一下这两种技术之间的真正区别是什么?
【问题讨论】:
标签: machine-learning genetic-algorithm reinforcement-learning
在这种情况下,交叉熵是遗传算法的一种特殊形式。它比说“遗传算法”更具体,因为它涵盖了大量不同的算法。
简单地说:
遗传算法是一系列算法/一种优化方法
交叉熵是一种特定的遗传算法。
【讨论】:
这两种方法都适用于经过多代改进的种群。关键区别在于人口的代表方式。
遗传算法 (GAs) 适用于个人人群,例如通过突变。您可以枚举每个个体的祖先。
交叉熵方法 (CEM) 将总体表示为概率分布。个人是从这个分布中抽取的。分布参数从最好的重新估计,例如2% 和其他 98% 被丢弃。
从技术上讲,“最好的 2%”也是一种概率分布。你可以从中抽取一个非常大的样本,但它很昂贵。所以你试着用你的简单分布来近似“2%的分布”。 cross-entropy 测量您希望最小化的两个分布之间的差异。这通常比听起来简单:如果您的分布是高斯分布,您只需从最佳 2% 估计一个新的均值和(协)方差。
实际考虑:
CEM 要求您提出个人的概率分布。除了突变强度等参数之外,大多数 GA 还需要这种分布仅用于生成初始种群。
CEM 实施简单,参数少。这是一个很棒的基线算法,有时它会击败更复杂的方法。然而,CMA-ES 是一个更好的基准,因为它有强大的跟踪记录,因此只需要几百个参数就可以解决连续问题。
仅从 2% 的人口估计参数需要非常大的人口规模。丢弃 98% 的信息是一种浪费。另一方面,它可以防止 CEM “侧身”并被次优解决方案分散注意力。
GA 可以更花哨,并且存在于许多针对特定问题的变体中。 CEM 可以通过选择巧妙的分布来适应问题。这对于一些离散问题非常有效。一般来说,我会说使用 GA 比 CEM 更上一层楼,无论是在复杂性(更难让它正常工作)和潜在性能方面(更多机会使其操作员适应问题)。
参考资料:
The Cross-Entropy Method for Fast Policy Search(Mannor 等人,2003 年)
Learning Tetris Using the Noisy Cross-Entropy Method (PDF) (Szita 和 Lörincz,2006 年)
The Cross-Entropy Method for Optimization(Botev 等人,2013 年)
【讨论】: