Evolutionary Algorithms
探索进化算法如何利用自然选择解决 AI 问题。学习优化 Ultralytics YOLO26 超参数并增强模型性能。
进化算法 (EAs) 是一类强大的优化算法,它们通过模拟自然选择和遗传学的生物学原理来解决复杂的计算问题。与依赖基于微积分导数的传统数学技术(例如随机梯度下降 (SGD))不同,EAs 专为在广阔、崎岖或知之甚少的搜索空间中导航而设计。它们通过维护一组随时间竞争、繁殖和变异的潜在解决方案群来运行。这种方法使它们在人工智能 (AI) 任务中特别有效,因为在这些任务中,“最佳”解决方案难以通过分析确定,从而允许系统迭代地进化出最佳结果。
Link to this section生物学灵感与核心机制#
进化算法的功能建立在适者生存的概念之上。该过程通过一系列旨在模仿自然遗传进化的算子循环,逐步完善候选解决方案:
-
初始化: 系统生成一组初始的随机候选解。在机器学习 (ML) 的背景下,这些候选解可能代表不同的模型参数集。
-
适应度评估: 每个候选解都会针对一个特定的目标进行测试,该目标被称为适应度函数。对于计算机视觉 (CV) 模型,此函数通常评估准确率或平均精度均值 (mAP) 等指标。
-
选择: 具有更高适应度评分的候选解会被概率性地选为父代,从而确保成功的特征能够保留到下一代。
-
繁殖与变异: 通过交叉(重组两个父代的特征)和变异(引入随机变化)来创建新的解决方案。引入这种遗传多样性至关重要,因为它能防止算法陷入局部最优,并帮助它在搜索空间中探索全局最大值。
Link to this section人工智能的实际应用#
进化算法用途广泛,已成功应用于深度学习 (DL) 和工程领域的各个方面。
Link to this section自动化超参数调优#
EAs 最实用的应用之一是超参数调优。现代神经网络需要配置数十个参数(例如学习率、权重衰减和动量),这些参数对性能有重大影响。EAs 可以通过进化配置设置来自动化这一繁琐的试错过程。例如,Ultralytics 库中的 tune() 方法使用遗传算法来发现 YOLO26 模型在自定义数据集上的最佳训练超参数。
Link to this section神经架构搜索 (NAS)#
EAs 是神经架构搜索 (NAS) 的基石。进化算法无需人工工程师手动设计神经网络 (NN) 的结构,而是可以“生长”出这种架构。它测试层、神经元和连接的不同组合,进化出在速度和准确性之间取得平衡的高效结构。这种技术催生了诸如 EfficientNet 等针对特定硬件约束进行优化的高效骨干网。
Link to this section进化算法与群体智能的对比#
虽然两者都是受自然启发的优化策略,但区分 EAs 与群体智能 (SI) 很有帮助。
- 进化算法: 依赖代际更替。个体(解决方案)生存、根据适应度进行繁殖,最终死亡并被其后代所取代。主要驱动力是变异和交叉等遗传算子。
- 群体智能: 模拟群体内部的社会互动,例如鸟群或鱼群。诸如粒子群优化 (PSO) 之类的算法涉及一群在搜索空间中移动的智能体,它们根据自身经验和邻居的成功来调整位置,而无需进行代际更替。
Link to this section使用 Ultralytics 实现优化#
从业者可以直接利用遗传算法来优化他们的目标检测模型。Ultralytics 的 tune 方法运行一个进化过程,在多代中对超参数进行变异,从而自动识别出在你的验证数据上产生最高性能的设置。
from ultralytics import YOLO
# Load the standard YOLO26 model
model = YOLO("yolo26n.pt")
# Run hyperparameter tuning using a genetic algorithm approach
# The tuner evolves parameters (lr, momentum, etc.) over 30 generations
model.tune(data="coco8.yaml", epochs=10, iterations=30, plots=False)这种自动化优化使开发者能够摆脱手动猜测。对于扩展运营的团队,可以使用 Ultralytics Platform 来简化这些实验的管理并跟踪模型性能的演变,该平台支持可视化训练指标并促进模型部署。






