深圳Yolo 视觉
深圳
立即加入
词汇表

进化算法

探索进化算法如何运用自然选择原理解决人工智能问题。学习优化Ultralytics 超参数并提升模型性能。

进化算法(EAs)是一类强大的优化算法家族,它们模拟自然选择和遗传的生物学原理来解决复杂的计算问题。与依赖基于微积分的导数的传统数学技术(如随机梯度下降法(SGD))不同,进化算法专为探索广阔、崎岖或难以理解的搜索空间而设计。 其运作机制在于维持一个潜在解的种群,这些解随时间推移相互竞争、繁殖与变异。这种方法使其在人工智能(AI)领域尤为有效——当"最优解"难以通过分析确定时,系统可通过迭代演化逐步趋近最优结果。

生物启发与核心机制

进化算法的功能根植于适者生存的理念。该过程通过设计用于模拟自然遗传进化的操作循环,逐步优化候选解:

  1. 初始化:系统生成一组初始的随机候选方案。在机器学习(ML)的语境中,这些候选方案可能代表不同的模型参数集。
  2. 适应性评估:每个候选模型都需针对特定目标(称为适应性函数)进行测试。对于计算机视觉(CV)模型,该函数通常评估准确率 或平均精度均值(mAP)等指标。
  3. 选择:适应度评分较高的个体将以概率方式被选为亲本, 确保成功性状得以保留至下一代。
  4. 繁殖与变异: 通过交叉(重组双亲的性状)和变异(引入随机变化)产生新解。这种遗传多样性的引入至关重要,它能防止算法在局部最优解中停滞,从而帮助其探索搜索空间以寻找全局最优解。

人工智能在现实世界中的应用

进化算法具有广泛的适用性,已在深度学习(DL)和工程领域的多个领域成功应用。

自动超参数调优

进化算法最实用的应用之一是 超参数调优现代神经网络需要配置数十个参数——例如学习率、权重衰减和动量——这些参数对性能影响显著。进化算法(EAs)可通过进化配置设置来自动化这一繁琐的试错过程。例如, tune() Ultralytics 中的方法采用遗传算法来发现最佳训练超参数。 YOLO26 在自定义数据集上训练模型。

神经架构搜索 (NAS)

进化算法是神经网络架构搜索(NAS)的基石。 相较于人工工程师手动设计神经网络(NN)结构,进化算法能通过"生长"方式构建架构。它测试不同层级、神经元及连接组合,进化出兼顾速度与精度的高效结构。该技术催生了高效神经网络如EfficientNet)等高性能骨干网络,这些网络针对特定硬件限制进行了优化。

进化算法与群体智能

虽然两者都是受自然启发的优化策略,但区分进化算法与 群体智能(SI)仍具有重要意义。

  • 进化算法:依赖世代更替。个体(解) 生存、基于适应度繁殖,最终死亡并被其后代取代。核心驱动力是遗传操作符, 如变异和交叉。
  • 群体智能:模拟群体内的社会交互行为,例如鸟群或鱼群。粒子群优化(PSO)等算法涉及一群智能体,它们在搜索空间中移动,并根据自身经验和邻居的成功情况调整位置,且无需代际替换。

使用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 可高效管理这些实验并追踪模型性能的演变过程——该Ultralytics 不仅可视化训练指标, 还能促进模型部署

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入