什么是进化算法?快速指南

阿比拉米-维纳

4 分钟阅读

2025 年 6 月 20 日

了解进化算法的工作原理,以及在机器学习中如何将其用于优化模型、解决复杂问题和推动人工智能进步。

地球上的生命经过了数百万年的进化,正是在这一过程中,生物才得以适应环境,得以生存和繁衍。以长颈鹿为例。经过许多代人的进化,长颈鹿长出了长长的脖子,以便够到其他动物够不到的高处的树叶。这是自然选择的结果,在自然选择中,有益的特征变得越来越普遍,因为具有这些特征的动物更有可能生存下来。

简而言之,更适合周围环境的生物有更大的机会存活下来,并将其有用的特性遗传给后代。随着时间的推移,这些微小的变化会不断累积,帮助物种应对最具挑战性的环境。

进化算法(EA)属于 "机器学习 "的范畴。就像进化论一样,进化算法从一组方案中挑选出最佳方案,进行微小的改动,然后检查这些改动是否使情况变得更好。通过多次重复这一过程,EA 可以为不同领域的复杂问题找到最佳解决方案。 

由于进化算法的多功能性,它是一个有趣的研究领域,目前正在进行的研究旨在将其应用于工程、医学和环境科学等领域。在本文中,我们将详细介绍进化算法、其工作原理以及应用领域。让我们开始吧! 

进化算法解释

进化算法是一种优化技术,可用于机器学习领域,为给定任务找到最佳解决方案或模型。它们通常从一组潜在的解决方案开始,并根据它们解决问题的效果,经过多次迭代不断改进。

例如,想象一下设计一辆最省油的汽车。算法会从各种汽车设计开始,测试每种设计的性能,然后通过组合最佳功能和多轮微小调整逐步改进设计,直到找到最佳设计。

进化算法有多种类型,每种算法都有自己表示和改进解决方案的方式,但都遵循这一基本方法。以下是几种常见的进化算法:

  • 遗传算法:在这种进化算法中,解决方案表示为简单的编码字符串,如数字或符号序列。改进的方法是混合两个优秀解决方案的部分内容(类似于结合父母的性状),并进行微小的随机改动,从而产生新的变体。
  • 遗传编程:它侧重于将解决方案构建成树状结构。当解决方案需要一系列步骤或指令时,它尤其有用。
  • 进化策略:这里的重点是学习在更新解决方案时,变化的大小。这有助于算法随着时间的推移更有效地改进结果。
  • 差异进化:采用这种方法时,新的解法是由现有解法的不同部分组合而成的。对于答案是可以不断变化的数字的问题,这种方法尤其有效。

了解进化算法的工作原理

进化算法使用迭代过程来找到解决问题的最佳方案。你可以把它想象成大自然世世代代锤炼物种的方式,每一次循环都有助于改善种群。 

尽管存在不同类型的进化算法,但它们一般都遵循以下关键步骤:

  • 初始化:算法开始时会生成一组可能的初始解决方案。这构成了演化过程的起点
  • 适应度评估:每个解决方案都会使用一个合适度函数进行评估,以衡量其解决问题的能力。表现较好的解决方案得分较高,被选中进行下一步的几率也较大。
  • 复制:新的解决方案主要通过两种方法产生:交叉和变异。交叉结合了双亲解决方案的特征,而突变则引入了小的随机变化,以探索新的可能性。
  • 替换: 新创建的解决方案取代部分或全部旧解决方案。这一步决定了哪些解决方案可以存活下来并进入下一代。
  • 终止:复制和替换过程一直持续到满足停止条件为止。这可能是达到了设定的迭代次数、达到了令人满意的适应度水平、看不到进一步的改进或达到了计算极限
图 1.进化算法的工作原理。图片由作者提供。

进化算法应用综述

既然我们已经对进化算法及其工作原理有了更深入的了解,下面就让我们来看看它们在不同行业中的一些实际应用。

风车发电厂使用的生物启发算法

风力发电最关键的一点是风力涡轮机的位置。根据涡轮机之间的相对位置和风力条件,风力发电场的效率会有很大差异。传统的设计方法往往难以处理其中涉及的许多外部变量。

进化算法是提出和测试大量不同风电场布局的好方法。它们会研究风型、涡轮机类型和可用土地等因素,以找到最佳设置。每一轮测试都会使设计变得更好,从而获得更多能源、降低成本并更好地利用土地。经过多次迭代,最终的设计可以提供比人工设计更好的能源输出

图 2.风车发电厂。

车辆设计中的优化技术

设计安全、省油、经济实惠的汽车是当今汽车制造商的首要任务。进化算法可以测试多种设计方案,并逐步加以改进,找到最佳方案,从而帮助加快这一过程。这可以帮助制造商在性能和效率之间找到最佳平衡点。

一个有趣的例子是使用进化算法设计汽车的核心结构,即 "白车身"(BIW)。这一设计过程的主要目标是减轻车身重量,同时保持相同的耐用性和强度。 

遗传算法可以通过微小的变化探索不同的结构变化。然后根据强度、重量、耐用性和法规标准等因素对这些设计进行测试,以确定最佳方案。

图 3.汽车的白车身设计结构(资料来源)。

医院排班的进化策略

研究人员正在积极研究进化算法如何在医疗保健领域发挥作用,例如安排医院员工、改进治疗计划和发现新药。这些算法之所以运行良好,是因为它们可以处理大量数据,并考虑疲劳和压力等因素。

例如,遗传算法已被用于改善医院的护士排班。一项引人入胜的研究将遗传算法和局部搜索技术相结合,创建了可减轻护士疲劳的排班表。结果表明,疲劳度降低了 10%,排班速度提高了 98%,时间从一个多小时缩短到一分钟多一点。

图 4.手动调度与使用遗传算法(GA)的对比(资料来源)。

进化技术在计算机视觉中的作用

除机器学习应用外,进化算法还可用于计算机视觉等领域。计算机视觉是人工智能的一个领域,能让机器解释和分析图像和视频等视觉数据。正在进行的研究探索了进化算法在图像分割、物体检测和特征提取等任务中的潜力。

这些算法的工作原理是测试许多可能的解决方案,然后选出最佳方案,这使得它们非常灵活,能够处理复杂多样的视觉数据。例如,研究人员利用进化算法改进了分析胸部 X 光片等医学图像的人工智能系统。 

这些被称为卷积神经网络(CNN)的人工智能系统就像放射科专家一样,通过扫描图像来发现诸如 COVID-19 等疾病的迹象。进化算法通过自动设计和微调卷积神经网络的结构和设置、测试多个版本、保留表现最好的版本以及逐步创建更精确的模型来提供帮助。这一过程将产生人工智能工具,帮助医生更快、更准确地诊断 COVID-19

进化算法的利与弊

以下是进化算法的一些主要优势:

  • 全局搜索能力:
  • 鲁棒性:
  • 灵活性:进化算法可以通过改变解决方案的表示方式和成功与否的衡量标准进行调整,使其在许多不同类型的问题上都能很好地发挥作用。

虽然这些算法有很多优点,但也必须意识到它们的局限性。以下是进化算法的一些常见缺点:

  • 计算成本:重复评估许多可能的解决方案可能需要强大而昂贵的计算资源,这使得某些应用的计算速度很慢或成本很高。
  • 参数敏感性: 进化算法的成功往往在很大程度上取决于选择正确的初始设置,如种群规模、突变率和选择方法。选择不当会影响性能。
  • 收敛速度慢: 它们可能需要多次迭代才能改进解法,特别是对于非常复杂的问题,这可能导致运行时间比其他方法更长。
  • 拟合函数敏感性:不良的拟合函数设计会导致算法利用缺陷而非解决预期问题,从而在实际性能方面误导开发人员。

主要收获

进化算法是解决其他方法难以解决的棘手问题的最佳选择。研究表明,它们能通过迭代逐步改进,并能适应各种任务。随着人工智能的不断进步和发展,这些算法有望在开发智能、高效和自学习技术的众多不同应用中发挥更大的作用。

加入我们不断壮大的社区,查看我们的GitHub人工智能资源库。在我们的解决方案页面上探索计算机视觉在农业人工智能物流中的不同应用。了解我们的许可选项,启动您的计算机视觉项目。

让我们共同打造人工智能的未来

开始您的未来机器学习之旅

免费开始
链接复制到剪贴板