Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Evolutionary Algorithms

Algoritmos evolutivos fazem evoluir uma população de soluções candidatas por meio de seleção, cruzamento e mutação. Abrange os principais tipos, código e aplicações práticas.

Os algoritmos evolutivos (EAs) são uma família de algoritmos de otimização que imitam a seleção natural. Mantêm uma população de soluções candidatas, atribuem uma pontuação a cada uma através de uma função de aptidão, permitem que as melhores candidatas gerem descendentes por recombinação e mutação aleatória e repetem o processo ao longo de muitas gerações, fazendo a população evoluir para soluções melhores. Um EA só precisa de avaliar uma candidata, sem calcular gradientes, pelo que funciona em problemas que a descida do gradiente não consegue resolver: escolhas discretas, objetivos não diferenciáveis ou ruidosos e superfícies irregulares repletas de ótimos locais. Por isso, os EAs são uma ferramenta padrão para o ajuste de hiperparâmetros, a pesquisa de arquiteturas neurais, o projeto de engenharia e o escalonamento.

Como funcionam os algoritmos evolutivos#

Todos os EAs são constituídos pelos mesmos elementos:

  1. Representação: Cada candidata é codificada como um genoma, por exemplo, uma cadeia de bits, um vetor de números reais ou uma árvore de programas.
  2. Inicialização: A primeira geração costuma ser aleatória, por vezes com soluções conhecidas como boas usadas como sementes.
  3. Avaliação da aptidão: Uma função de aptidão atribui uma pontuação a cada candidata com base no objetivo que está a ser otimizado.
  4. Seleção: As candidatas mais aptas têm maior probabilidade de se tornarem progenitoras. Por exemplo, a seleção por torneio escolhe a melhor de entre algumas candidatas aleatórias, e o elitismo copia as melhores sem alterações para a geração seguinte.
  5. Variação: O cruzamento combina partes de dois progenitores, e a mutação introduz pequenas alterações aleatórias para manter a exploração da população.

Na aprendizagem automática (ML), a função de aptidão é muitas vezes uma métrica de validação, como a precisão ou a precisão média (mAP); assim, avaliar uma candidata significa treinar e testar um modelo, de longe a etapa mais dispendiosa. O ciclo repete-se até esgotar o orçamento ou deixar de melhorar a aptidão:

A pressão de seleção e a intensidade da mutação determinam o equilíbrio entre aproveitamento e exploração. Uma seleção forte com mutações pequenas converge rapidamente, mas pode ficar presa num ótimo local; uma seleção fraca com mutações grandes explora amplamente, mas desperdiça avaliações.

Principais tipos de algoritmos evolutivos#

  • Algoritmos genéticos (GAs): Codificam as candidatas como cadeias, muitas vezes de bits, e dependem bastante do cruzamento. John Holland formalizou-os no seu livro de 1975 Adaptação em sistemas naturais e artificiais.
  • Estratégias evolutivas (ES): Otimizam vetores de números reais com mutações gaussianas cujos tamanhos de passo se adaptam durante a execução. O CMA-ES, que aprende a covariância completa da sua distribuição de mutação, é um dos métodos de uso geral mais robustos para problemas contínuos de caixa-preta.
  • Programação genética: Evolui programas ou expressões matemáticas representados como árvores, usados em regressão simbólica e na conceção automática de programas.
  • Neuroevolução: Evolui os pesos e, por vezes, a estrutura das redes neurais. Em 2017, a OpenAI mostrou que estratégias evolutivas executadas por mais de mil trabalhadores paralelos conseguiam treinar um humanoide 3D para andar em 10 minutos, uma alternativa escalável à aprendizagem por reforço.

Um algoritmo genético em código#

O problema da mochila pergunta que itens devem ser incluídos para maximizar o valor total sem ultrapassar um limite de peso; é um problema discreto sem gradiente. Este algoritmo genético em NumPy evolui 50 genomas de cadeias de bits, com um bit por item, usando seleção por torneio, cruzamento uniforme, mutação por inversão de bits e elitismo; depois, compara a resposta com todas as 1,048,576 seleções possíveis:

import itertools

import numpy as np

rng = np.random.default_rng(0)
# Knapsack problem: pick from 20 items to maximize total value within a weight limit of 200
values, weights, limit = rng.integers(10, 100, 20), rng.integers(5, 50, 20), 200


def fitness(pop):
    """Return each selection's total value, or 0 if it exceeds the weight limit."""
    return np.where(pop @ weights <= limit, pop @ values, 0)


population = rng.random((50, 20)) < 0.2  # 50 random genomes, one bit per item
for generation in range(100):
    scores = fitness(population)
    # Tournament selection: each parent is the better of two random genomes
    pairs = rng.integers(50, size=(50, 2))
    parents = population[np.where(scores[pairs[:, 0]] > scores[pairs[:, 1]], pairs[:, 0], pairs[:, 1])]
    # Uniform crossover with the next parent, then flip each bit with probability 0.05
    children = np.where(rng.random((50, 20)) < 0.5, parents, np.roll(parents, 1, axis=0))
    children ^= rng.random((50, 20)) < 0.05
    children[0] = population[scores.argmax()]  # elitism: keep the best genome
    population = children

all_selections = np.array(list(itertools.product([0, 1], repeat=20)))
print(f"GA best: {fitness(population).max()}, true optimum: {fitness(all_selections).max()}")

Imprime GA best: 811, true optimum: 811. O algoritmo encontrou a melhor combinação possível após 5,000 avaliações de aptidão, cerca de 0.5% das um milhão de seleções que a pesquisa exaustiva teve de verificar.

Evolução de hiperparâmetros#

As definições de treino, como a taxa de aprendizagem, os pesos da função de perda e a intensidade do aumento de dados, interagem de formas que nenhuma fórmula consegue prever; cada candidata exige uma execução completa de treino, o que torna a pesquisa evolutiva uma boa opção. O método tune() do Ultralytics YOLO aplica esta abordagem aos modelos YOLO26: em cada iteração, escolhe um progenitor entre as nove melhores configurações até então, ponderando a escolha pela aptidão, aplica mutações gaussianas a cerca de metade dos 26 hiperparâmetros do espaço de pesquisa predefinido, com passos escalados de acordo com os respetivos intervalos de pesquisa, treina um modelo e regista a sua aptidão, que corresponde a mAP50-95 para deteção de objetos. Depois de 30 resultados, algumas mutações também seguem a covariância dos 20% de melhores configurações, uma técnica inspirada no CMA-ES. O guia de ajuste de hiperparâmetros apresenta o espaço de pesquisa completo:

from ultralytics import YOLO

# Carrega um modelo nano YOLO26 pré-treinado
model = YOLO("yolo26n.pt")

# Evolui os hiperparâmetros: 30 iterações, cada uma a treinar durante 10 épocas uma configuração com mutações
model.tune(data="coco8.yaml", epochs=10, iterations=30, plots=False)

O afinador escreve todas as configurações e respetiva aptidão em tune_results.ndjson e guarda a melhor em best_hyperparameters.yaml, pronta para ser usada numa execução de treino completa.

Outras aplicações#

  • Pesquisa de arquiteturas neurais: O AmoebaNet da Google resultou de uma evolução regularizada, um EA com seleção por torneio que elimina os modelos mais antigos em vez dos piores, e alcançou uma precisão top-1 de 83.9% no ImageNet em 2018.
  • Projeto de engenharia: A missão Space Technology 5 da NASA levou ao espaço em 2006 uma antena de banda X concebida por computador através da evolução, cuja forma irregular de fios dobrados igualou o desempenho de uma antena concebida por métodos convencionais.
  • Descoberta de algoritmos: O AlphaEvolve, anunciado pela Google DeepMind em maio de 2025, combina modelos Gemini que propõem alterações ao código com avaliadores automatizados e uma base de dados evolutiva de programas. Uma heurística de escalonamento que desenvolveu para os centros de dados da Google recupera, em média, 0.7% dos recursos de computação globais da empresa.
  • Descida do gradiente: Segue o gradiente de uma função de perda diferenciável e é muito mais eficiente para treinar pesos de redes com milhões de parâmetros. Os EAs são adequados para problemas com poucos parâmetros, avaliações dispendiosas ou sem gradiente.
  • Inteligência de enxame: Métodos como a otimização por enxame de partículas movem um conjunto persistente de agentes pelo espaço de pesquisa; cada agente ajusta a sua posição com base no seu melhor resultado e nos dos seus vizinhos, sem substituição geracional, cruzamento ou mutação.
  • Otimização bayesiana: Ajusta um modelo probabilístico do objetivo e escolhe cada ensaio seguinte na região em que esse modelo prevê a maior melhoria. Isto requer menos avaliações do que um EA em espaços de pesquisa pequenos e suaves, mas escala pior para muitos parâmetros e trabalhadores paralelos.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina