Evolutionary Algorithms
Explore como algoritmos evolutivos usam a seleção natural para resolver problemas de IA. Aprenda a otimizar hiperparâmetros do Ultralytics YOLO26 e melhorar o desempenho do modelo.
Os Algoritmos Evolutivos (EAs) são uma família poderosa de algoritmos de otimização que emulam os princípios biológicos de seleção natural e 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 EAs são concebidos para navegar em espaços de busca vastos, irregulares 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. Esta abordagem torna-os 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.
Inspiração Biológica e Mecanismos Centrais#
A funcionalidade de um Algoritmo Evolutivo baseia-se no conceito de sobrevivência do mais apto. O processo percorre um ciclo de operadores concebidos para imitar a evolução genética natural, refinando gradualmente as soluções candidatas:
-
Inicialização: O sistema gera uma população inicial de candidatos aleatórios. No contexto de aprendizagem automática (ML), estes candidatos podem representar diferentes conjuntos de parâmetros de modelo.
-
Avaliação de Aptidão: Cada candidato é testado contra um objetivo específico, conhecido como função de aptidão. Para um modelo de visão computacional (CV), esta função avalia habitualmente métricas como precisão ou Precisão Média Média (mAP).
-
Seleção: Candidatos com pontuações de aptidão mais altas são selecionados probabilisticamente para atuar como pais, garantindo que características bem-sucedidas sejam preservadas para a próxima geração.
-
Reprodução e Variação: Novas soluções são criadas através de cruzamento (recombinação de características de dois progenitores) e mutação (introdução de alterações aleatórias). Esta introdução de diversidade genética é crucial, pois evita que o algoritmo estagne num ótimo local, ajudando-o a explorar o espaço de busca para o máximo global.
Aplicações no Mundo Real em IA#
Os Algoritmos Evolutivos são versáteis e têm sido aplicados com sucesso a vários domínios dentro da aprendizagem profunda (DL) e da engenharia.
Ajuste Automatizado de Hiperparâmetros#
Uma das aplicações mais práticas dos EAs é a sintonização de hiperparâmetros. As redes neuronais modernas exigem a configuração de dezenas de parâmetros — como a taxa de aprendizagem, a decadência de peso e o momento — que afetam significativamente o desempenho. Os EAs podem automatizar este processo tedioso de tentativa e erro evoluindo as definições de configuração. Por exemplo, o método tune() na biblioteca Ultralytics utiliza um algoritmo genético para descobrir os melhores hiperparâmetros de treino para modelos YOLO26 em conjuntos de dados personalizados.
Busca de Arquitetura Neural (NAS)#
Os EAs são uma pedra basilar da Busca de Arquitetura Neural (NAS). Em vez de engenheiros humanos projetarem manualmente a estrutura de uma rede neuronal (NN), um algoritmo evolutivo pode "fazer crescer" a arquitetura. Testa diferentes combinações de camadas, neurónios e conexões, evoluindo estruturas eficientes que equilibram velocidade e precisão. Esta técnica conduziu à criação de backbones altamente eficientes, tais como EfficientNet, que são otimizados para restrições de hardware específicas.
Algoritmos Evolutivos vs. Inteligência de Enxame#
Embora sejam ambas estratégias de otimização inspiradas na natureza, é útil distinguir os EAs da Inteligência de Enxame (SI).
- Algoritmos Evolutivos: Baseiam-se em mudança geracional. Indivíduos (soluções) vivem, reproduzem-se com base na aptidão e morrem, sendo substituídos por seus descendentes. Os principais motores são operadores genéticos como mutação e crossover.
- Inteligência de Enxame: Imita a interação social dentro de um grupo, como um bando de aves ou um cardume de peixes. Algoritmos como a Otimização por Enxame de Partículas (PSO) envolvem uma população de agentes que se movem pelo espaço de busca e ajustam as suas posições com base na sua própria experiência e no sucesso dos seus vizinhos, sem substituição geracional.
Implementando a Otimização com Ultralytics#
Os profissionais podem tirar partido de algoritmos genéticos diretamente para otimizar os seus modelos de deteção de objetos. O método tune da Ultralytics executa um processo evolutivo para mutar hiperparâmetros ao longo de várias gerações, identificando automaticamente as definições que produzem o mais alto desempenho nos teus 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 aos programadores irem além da adivinhação manual. Para equipas que escalam as suas operações, gerir estas experiências e acompanhar a evolução do desempenho do modelo pode ser simplificado utilizando a Ultralytics Platform, que visualiza métricas de treino e facilita a implementação de modelos.






