了解遗传算法

数据挖掘 机器学习 遗传算法
2021-09-26 10:22:09

什么是遗传算法,与其他算法相比,它的实际优势是什么?它是否类似于任何常用的机器学习算法,如线性/逻辑回归、神经网络或基于树的方法,如梯度提升和随机森林?我听说它是​​基于其他模型的“变异”组合。这是否使它更像一个合奏?

3个回答

遗传算法是一种基于生物进化的算法,关于自然如何进化。它正是这样做的,改进算法,以便“它”找到手头问题的最佳解决方案。您可以使用遗传算法为您不知道答案的问题找到解决方案,您知道答案但想知道不同的答案,或者您只是懒惰。遗传算法的常见步骤是:

  1. 生成随机元素群
  2. 评估每个元素的适合度(它们对解决方案的效果如何)
  3. 为下一代取最好的元素
  4. 使用上述元素生成子元素
  5. 变异(随机)每个孩子。这也可以在第 4 步之前与父母一起完成。
  6. 从步骤 2 重复 n 代,直到找到解决方案,达到最大代数或适应度不再变化(局部最小值)。

GA 的两个基本问题:

  • 陷入局部最小值(或局部最大值,取决于观点)。这意味着您可能会找到一个好的答案(甚至不是一个好的答案),但它永远不会达到最佳答案,因为适应度值没有改变或没有变得更好。这是在第 5 步中使用 Mutation 进行的,以保持种群的多样性,因此不会卡住。
  • 它们通常比其他方法慢。

如果可以的话,看看本书。它不是免费的,但值得一看。或者,免费查看这本在线书籍,这是一个很好的来源,而且他有自己的 youtube 频道。它比我推荐的另一本书更基础,但会帮助你开始使用 GA。

要回答您问题的另一部分,应该使用 GA 来查找模型,但不会充当模型。例如,如果您有一个神经网络,您可以使用反向传播方法对其进行训练,但您也可以使用 GA 对其进行训练。GA 不会使用任何反向传播数学,它可用于在其神经元中生成权重,并评估答案(最后一层)。权重将演变为更接近解决方案。在这种情况下,模型仍然是 NN,但您使用了不同的算法来找到最佳 NN。

希望这可以帮助。

对于你提到的机器学习算法,回归和神经网络是在优化框架中制定的,而基于树的方法是基于信息增益的。

遗传算法(GA)是一种局部搜索方法。给定解决方案空间中的值,它将变异以创建多个候选者。将使用一个标准来评估每个候选者,并且只保留少数最好的候选者以进行进一步的突变。如果有足够的迭代,通常可以证明 GA 可以收敛到最佳解决方案。但是,实际上是不可行的。更多讨论可以在这里找到

至于集成学习,它指的是多个模型的(加权)投票。有两种正常的方式,bagging 或 boosting。

遗传算法是 1960 年由密歇根大学的 John Holland 发明的最流行的进化计算方法之一,但直到 90 年代才流行起来。它们的主要目的是用于解决确定性算法成本过高的问题。

遗传算法属于元启发式算法,它是高级搜索策略,独立于问题,可以应用于广泛的问题。这些算法与机器学习方法有很大不同,主要用于解决科学和工程中的优化问题。然而,遗传算法的应用将不限于优化。

将机器学习结合到遗传算法中是旨在提高遗传算法性能的常见做法。

在机器学习领域,当您寻求在多项式时间内计算出最优值时,由于其敏捷和强大的搜索能力,遗传算法始终是一个可行的选择。因此,遗传算法可以用作机器学习中的计算工具。

如果我的答案足够清楚,请告诉我。