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

进化算法

探索进化算法如何利用自然选择解决AI问题。学习优化 Ultralytics YOLO26 超参数并提升模型性能。

进化算法(EA)是一类强大的优化算法,它模拟自然选择和遗传的生物学原理来解决复杂的计算问题。与依赖基于微积分的导数(例如随机梯度下降(SGD))的传统数学技术不同,EA旨在探索广阔、崎岖或理解不足的搜索空间。它们通过维护一个由潜在解决方案组成的种群来运行,这些解决方案随着时间的推移进行竞争、繁殖和变异。这种方法使它们在人工智能(AI)任务中特别有效,在这些任务中,“最佳”解决方案难以通过分析确定,从而使系统能够迭代地向最优结果演进。

生物学启发与核心机制

进化算法的功能基于适者生存的概念。该过程通过一系列旨在模拟自然遗传进化的操作符循环进行,逐步优化候选解决方案:

  1. 初始化:系统生成随机候选的初始种群。在机器学习 (ML)的背景下,这些候选可能代表不同的模型参数集。
  2. 适应度评估:每个候选对象都根据特定目标进行测试,该目标被称为适应度函数。对于计算机视觉 (CV)模型,此函数通常评估诸如精度平均精度 (mAP)等指标。
  3. 选择:具有更高适应度分数的候选者被概率性地选择作为父代,确保成功的特征得以保留到下一代。
  4. 繁殖与变异:通过 交叉(重组两个父代的特征)和变异(引入随机变化)来创建新的解决方案。引入这种遗传多样性至关重要,因为它能防止算法停滞在局部最优解,帮助其探索搜索空间以找到全局最大值。

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

进化算法用途广泛,并已成功应用于深度学习(DL)和工程领域的各个方面。

自动化超参数调优

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

神经架构搜索 (NAS)

EA是神经网络架构搜索(NAS)的基石。与人类工程师手动设计神经网络(NN)的结构不同,进化算法可以“生长”出架构。它测试层、神经元和连接的不同组合,演化出平衡速度和准确性的高效结构。这项技术促成了高效骨干网络的创建,例如EfficientNet,这些骨干网络针对特定的硬件约束进行了优化。

进化算法 vs. 群体智能

虽然两者都是受自然启发的优化策略,但区分进化算法(EAs)和群智能(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 Platform来简化实验管理和模型性能演变跟踪,该平台能够可视化训练指标并促进模型部署

让我们一起共建AI的未来!

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