📜  人工神经网络-遗传算法

📅  最后修改于: 2020-11-26 08:41:21             🧑  作者: Mango


大自然一直是全人类灵感的重要来源。遗传算法(GA)是基于搜索的算法,基于自然选择和遗传学的概念。遗传算法是称为进化计算的更大的计算分支的子集。

遗传算法是由约翰·霍兰德(John Holland)及其密西根大学的学生和同事开发的,最著名的是大卫·E·戈德堡(David E. Goldberg),此后已在各种优化问题上进行了尝试,并取得了很大的成功。

在Google Analytics(分析)中,对于特定问题,我们拥有一个或一组可能的解决方案。这些溶液然后进行重组和突变(就像在自然遗传学中一样),产生了新的孩子,并且这一过程在各个世代中都重复了。每个人(或候选解决方案)都被分配一个适应度值(基于其目标函数值),而适应性强的人则有更高的机会交配并产生更多的“更适合”的人。这符合达尔文的“适者生存”理论。

通过这种方式,我们会不断“改进”好几代人或解决方案,直到达到制止标准。

遗传算法本质上具有足够的随机性,但是,它们比随机局部搜索(在其中我们只是尝试各种随机解,跟踪迄今为止的最佳方案)要好得多,因为它们也利用了历史信息。

GA的优势

GA具有各种优势,因此非常受欢迎。这些包括-

  • 不需要任何派生信息(许多实际问题可能不可用)。

  • 与传统方法相比,更快,更高效。

  • 具有很好的并行能力。

  • 优化连续函数和离散函数以及多目标问题。

  • 提供“好的”解决方案列表,而不仅仅是一个解决方案。

  • 总是能找到问题的答案,随着时间的流逝会越来越好。

  • 当搜索空间很大并且涉及大量参数时很有用。

GA的局限性

与任何技术一样,GA也有一些局限性。这些包括-

  • GA并不适合所有问题,尤其是那些简单且可获取派生信息的问题。

  • 适应度值是反复计算的,对于某些问题可能会在计算上昂贵。

  • 由于是随机的,因此无法保证解决方案的最优性或质量。

  • 如果实施不正确,GA可能无法收敛到最佳解决方案。

GA –动机

遗传算法能够提供“足够好”的解决方案“足够快”。这使Gas在解决优化问题方面具有吸引力。需要GA的原因如下-

解决难题

在计算机科学中,存在大量问题,即NP-Hard 。这实际上意味着,即使是功能最强大的计算系统,也要花费很长时间(甚至数年!)来解决该问题。在这种情况下,GA被证明是一种有效的工具,可以在短时间内提供可用的最佳解决方案

基于梯度的方法的失败

传统的基于演算的方法是从一个随机点开始,然后沿渐变方向移动,直到到达山顶为止。此技术非常有效,并且对于单峰目标函数(如线性回归中的成本函数)非常有效。但是,在大多数现实情况下,我们遇到了一个非常复杂的问题,称为景观,由许多峰和许多山谷构成,导致这种方法失败,因为它们固有地倾向于陷入局部最优状态,如图所示在下图中。

失败GA

快速获得良好的解决方案

一些棘手的问题,例如旅行商问题(TSP),具有现实世界中的应用,例如路径查找和VLSI设计。现在,假设您正在使用GPS导航系统,并且要花费几分钟(甚至几小时)来计算从源到目的地的“最佳”路径。在这样的实际应用中,延迟是不可接受的,因此需要“快速”交付的“足够好”的解决方案。

如何使用GA解决优化问题?

我们已经知道优化是使诸如设计,情况,资源和系统之类的东西尽可能有效的一种动作。下图显示了优化过程。

如何使用

遗传算法优化过程的各个阶段

以下是GA机制用于优化问题的各个阶段。

  • 随机生成初始种群。

  • 选择具有最佳适应性值的初始解决方案。

  • 用变异和交叉运算符重组选择的解决方案。

  • 将后代插入种群。

  • 现在,如果满足停止条件,则以最佳适应度值返回解决方案。否则,请转到步骤2。