Explore como os algoritmos evolutivos utilizam a seleção natural para resolver problemas de IA. Aprenda a otimizar os hiperparâmetros Ultralytics e melhorar o desempenho do modelo.
Os Algoritmos Evolucionários (AEs) são uma poderosa família de algoritmos de otimização que emulam os princípios biológicos da seleção natural e da genética para resolver problemas computacionais complexos. Ao contrário das técnicas matemáticas tradicionais que dependem de derivadas baseadas em cálculo, como o gradiente descendente estocástico (SGD), os AEs são projetados para navegar em espaços de pesquisa vastos, acidentados ou pouco compreendidos. Eles operam mantendo uma população de soluções potenciais que competem, se reproduzem e sofrem mutações ao longo do tempo. Essa abordagem os torna particularmente eficazes para tarefas em inteligência artificial (IA), onde a "melhor" solução é difícil de determinar analiticamente, permitindo que os sistemas evoluam iterativamente em direção a um resultado ideal.
A funcionalidade de um Algoritmo Evolutivo baseia-se no conceito de sobrevivência do mais apto. O processo passa por um ciclo de operadores projetados para imitar a evolução genética natural, refinando gradualmente as soluções candidatas:
Os algoritmos evolutivos são versáteis e têm sido aplicados com sucesso em vários domínios dentro do aprendizado profundo (DL) e da engenharia.
Uma das aplicações mais práticas das EAs é
Ajuste de hiperparâmetros. As redes neurais modernas
exigem a configuração de dezenas de parâmetros — como taxa de aprendizagem, decaimento de peso e momentum — que afetam significativamente o
desempenho. Os EAs podem automatizar esse tedioso processo de tentativa e erro, evoluindo as definições de configuração. Por
exemplo, o tune() O método na Ultralytics usa um algoritmo genético para descobrir os melhores
hiperparâmetros de treino para YOLO26 modelos em conjuntos de dados personalizados
.
Os EAs são a pedra angular da Pesquisa de Arquitetura Neural (NAS). Em vez de engenheiros humanos projetarem manualmente a estrutura de uma rede neural (NN), um algoritmo evolutivo pode "desenvolver" a arquitetura. Ele testa diferentes combinações de camadas, neurónios e conexões, desenvolvendo estruturas eficientes que equilibram velocidade e precisão. Essa técnica levou à criação de backbones altamente eficientes, como o EfficientNet, que são otimizados para restrições específicas de hardware.
Embora ambas sejam estratégias de otimização inspiradas na natureza, é útil distinguir as EAs da Inteligência Coletiva (SI).
Os profissionais podem aproveitar os algoritmos genéticos diretamente para otimizar os seus modelos de deteção de objetos. O Ultralytics
tune O método executa um processo evolutivo para mutar hiperparâmetros ao longo de várias gerações,
identificando automaticamente as configurações que produzem o melhor desempenho nos seus dados de validação.
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)
Este refinamento automatizado permite que os programadores vão além das suposições manuais. Para equipas que estão a expandir as suas operações, gerir essas experiências e acompanhar a evolução do desempenho do modelo pode ser simplificado usando a Ultralytics , que visualiza métricas de treino e facilita a implantação do modelo.