Algoritmos Evolucionários
Descubra como os Algoritmos Evolucionários otimizam soluções de IA e ML, desde o ajuste de hiperparâmetros até a robótica, usando estratégias inspiradas na natureza.
Os algoritmos evolutivos (EAs) representam uma classe robusta de
técnicas de pesquisa de inteligência artificial (IA)
inspirada nos princípios biológicos da seleção natural e da genética. Ao contrário dos métodos matemáticos tradicionais
métodos matemáticos tradicionais que se baseiam em cálculos de derivadas, estes algoritmos simulam o processo de evolução para resolver
problemas de otimização complexos. Ao manter uma
Ao manter uma população de soluções potenciais que competem, se reproduzem e sofrem mutações, os EAs podem navegar em espaços de pesquisa vastos e acidentados
onde a "melhor" resposta é desconhecida ou impossível de obter analiticamente. Isto torna-os particularmente
valiosos na aprendizagem automática (ML) para tarefas
tarefas que vão desde a conceção de modelos automatizados até à programação complexa.
Mecanismos fundamentais da evolução
A funcionalidade de um Algoritmo Evolutivo reflecte o conceito de
sobrevivência do mais apto. O processo
refina iterativamente um conjunto de soluções candidatas através de um ciclo de operadores biológicos:
-
Inicialização: O sistema gera uma população aleatória de potenciais soluções para o problema.
-
Avaliação da aptidão: Cada candidato é testado em relação a uma
função de aptidão. Na
visão por computador (CV), esta função mede frequentemente
mede a exatidão de um modelo ou a precisão média
mAP).
-
Seleção: Os candidatos com maior pontuação de aptidão são selecionados para actuarem como pais da próxima
geração.
-
Reprodução e Variação: Novas soluções são criadas usando
cruzamento (combinação de caraterísticas de dois
pais) e mutação (introduzindo alterações
alterações aleatórias). A mutação é fundamental, uma vez que introduz diversidade genética, evitando que o algoritmo fique preso num
local ótimo em vez de encontrar o ótimo global.
Aplicações do mundo real em IA
Os algoritmos evolutivos são ferramentas versáteis utilizadas em vários domínios de grande impacto para melhorar o desempenho dos sistemas:
-
Afinação de hiperparâmetros: Uma
das aplicações mais comuns em
aprendizagem profunda (DL) é a otimização das configurações
configurações. Em vez de adivinhar manualmente os valores para a
taxa de aprendizagem, momentum ou decaimento de peso, um EA pode
um EA pode desenvolver um conjunto de hiperparâmetros que maximizam o desempenho do modelo. O
Ultralytics YOLO11 inclui um sintonizador baseado em
baseado em algoritmos genéticos para automatizar este processo.
-
Pesquisa de Arquitetura Neural (NAS): Os EAs automatizam a conceção de
redes neuronais. Ao tratar a estrutura da rede
(camadas, ligações) como código genético, o algoritmo pode desenvolver arquitecturas altamente eficientes adequadas
para dispositivos de IA de ponta onde os recursos computacionais são
limitados.
-
Robótica e Controlo: Em
IA em robótica, os EAs desenvolvem políticas de controlo e
de controlo e de movimentos. Isto permite que os robôs autónomos aprendam a navegar em ambientes dinâmicos através da simulação de
gerações de estratégias de movimento.
-
Otimização ambiental: Em sectores como a
IA na agricultura, os EAs ajudam a otimizar a atribuição de recursos
alocação de recursos, como horários de irrigação ou colocação de culturas, para maximizar o rendimento e minimizar o desperdício.
Automatizar a otimização com Python
Os profissionais podem tirar partido dos algoritmos evolutivos diretamente no ultralytics para encontrar a
configuração de treino óptima para
deteção de objectos models. O
tune utiliza um algoritmo genético para alterar os hiperparâmetros ao longo de várias gerações.
from ultralytics import YOLO
# Load a standard YOLO11 model
model = YOLO("yolo11n.pt")
# Run hyperparameter tuning using a genetic algorithm approach
# The tuner evolves parameters like lr0, momentum, and weight_decay
# 'iterations' defines how many evolutionary generations to run
model.tune(data="coco8.yaml", epochs=10, iterations=30, optimizer="AdamW", plots=False)
Distinguir conceitos relacionados
Para aplicar eficazmente estas técnicas, é útil diferenciar os Algoritmos Evolutivos de outras estratégias de otimização
e estratégias de aprendizagem:
-
Vs. Descida de Gradiente Estocástico (SGD): Métodos de treinamento padrão como
Descida de Gradiente Estocástico (SGD)
dependem do cálculo da derivada de uma
função de perda para atualizar os pesos. Os EAs são
sem gradiente, o que significa que podem otimizar problemas não diferenciáveis ou discretos em que os gradientes
não estão disponíveis.
-
Vs. Inteligência de enxame: Embora ambas sejam bio-inspiradas,
a Inteligência de Enxame (por exemplo, a Otimização
Colónia de Formigas) centra-se no comportamento coletivo de agentes descentralizados que interagem num único período de vida. Em
Em contraste, os EAs baseiam-se na substituição geracional de soluções, onde os candidatos mais fracos são
candidatos mais fracos são descartados em favor de descendentes de pais mais fortes.
-
Vs. Aprendizagem por reforço:
A Aprendizagem por Reforço (RL) envolve a aprendizagem de um
envolve a aprendizagem de um agente através de interações de tentativa e erro com um ambiente para maximizar um sinal de recompensa. Embora os EAs possam
otimizar políticas, fazem-no através da evolução de uma população de parâmetros de política em vez de aprenderem através de
ciclos contínuos de interação agente-ambiente.
Para mais informações sobre como melhorar o desempenho do modelo, explore os nossos guias sobre
dicas de treinamento de modelos e prevenção de
sobreajuste.