Otimização Multi-Fidelidade

Visão geral

Otimização multi-fidelidade (multi-fidelity optimization) é uma família de métodos para otimizar um objetivo de caixa-preta caro (expensive black-box objective) combinando:

  • Avaliações baratas e aproximadas (baixa fidelidade): por exemplo, menos épocas de treino, subamostras menores do conjunto de dados, menor resolução de entrada, modelos menores, menos amostras de Monte Carlo, simulações mais grosseiras.
  • Avaliações ocasionais caras e precisas (alta fidelidade): por exemplo, treinamento completo, conjunto de dados completo, resolução completa, máxima precisão de simulação.

Ela é especialmente útil em ajuste de hiperparâmetros (hyperparameter tuning), em que treinar um modelo até o fim para cada configuração candidata é proibitivamente lento. Em vez disso, métodos multi-fidelidade testam muitos candidatos de forma barata, identificam os mais promissores e gastam a maior parte dos recursos avaliando apenas esses candidatos promissores em fidelidade mais alta.

Este tema fica na interseção entre:

Por que “multi-fidelidade” ajuda

Suponha que você queira minimizar uma perda de validação:

[ \min_{x \in \mathcal{X}} f(x) ]

onde (x) são hiperparâmetros (taxa de aprendizado, weight decay, escolhas de arquitetura etc.) e (f(x)) é a perda após o treinamento completo. Avaliar (f(x)) pode levar horas.

A otimização multi-fidelidade introduz uma variável de orçamento/fidelidade (b) (às vezes também escrita como (s), (r), (t)):

[ f(x, b) \approx f(x), \quad \text{com custo } c(b) \text{ aumentando com } b ]

Exemplos de (b):

  • épocas treinadas (por exemplo, 1, 3, 9, 27, 81)
  • fração dos dados de treinamento (por exemplo, 1%, 5%, 20%, 100%)
  • resolução de imagem (por exemplo, 64×64 → 224×224)
  • tamanho do modelo (por exemplo, multiplicador de largura)
  • tamanho de passo do simulador (grosseiro → fino)

A suposição-chave é que avaliações de baixa fidelidade são correlacionadas com o desempenho de alta fidelidade, mesmo que sejam ruidosas ou enviesadas. Se essa correlação for forte o suficiente, você consegue tomar boas decisões cedo e economizar grandes quantidades de computação.

Ingredientes centrais e suposições

1) Fidelidade é um recurso com um modelo de custo

Métodos multi-fidelidade exigem (explicitamente ou implicitamente) que maior fidelidade custe mais:

  • treinar 1 época custa muito menos do que treinar 100 épocas
  • treinar com 10% dos dados custa menos do que com 100%

Muitas vezes, o custo é aproximadamente proporcional ao orçamento, mas nem sempre (por exemplo, tamanhos de batch maiores, efeitos de cache, sobrecarga distribuída).

2) Sinais de baixa fidelidade devem ser informativos

Duas suposições comuns (imperfeitas):

  • Correlação de ranqueamento: se a configuração A é melhor que B em baixa fidelidade, é provável que seja melhor em alta fidelidade.
  • Monotonicidade da curva de aprendizado (para orçamentos baseados em épocas): o desempenho geralmente melhora com mais treinamento, mas pode ser não monotônico devido a overfitting, cronogramas de regularização ou estocasticidade.

Quando essas suposições falham, métodos multi-fidelidade podem descartar prematuramente boas configurações.

3) Ruído importa

Avaliações de baixa fidelidade costumam ser mais ruidosas do que as de alta fidelidade:

  • primeiras épocas têm alta variância entre sementes aleatórias
  • subamostras pequenas introduzem ruído amostral
  • entradas de baixa resolução mudam a tarefa

Bons métodos são projetados para tolerar ruído via comparações repetidas, robustez estatística ou modelagem probabilística.

Estratégias multi-fidelidade comuns

De forma geral, há dois grandes grupos:

  1. Alocação de recursos no estilo bandit (bandit-style resource allocation) (não requer modelo substituto): halving sucessivo, Hyperband, ASHA.
  2. Otimização bayesiana multi-fidelidade (Bayesian multi-fidelity optimization) (constrói um modelo substituto que raciocina sobre fidelidade): processos gaussianos multi-fidelidade, abordagens tipo FABOLAS, BOHB e híbridos relacionados.

Elas também podem ser combinadas.

Métodos baseados em bandit: Successive Halving e Hyperband

Halving Sucessivo (Successive Halving, SH)

Halving Sucessivo é uma abordagem simples e poderosa:

  1. Comece com (n) configurações.
  2. Avalie cada uma com um orçamento pequeno (b_1).
  3. Mantenha apenas a fração superior (por exemplo, top 1/η).
  4. Aumente o orçamento para (b_2) e repita até alcançar o orçamento máximo.

Esse estilo de “torneio” funciona bem quando o desempenho inicial é razoavelmente preditivo.

Hiperparâmetro-chave:

  • η (eta): fator de redução (comumente 3 ou 4). Após cada degrau (rung), você mantém (1/η) das configurações e multiplica o orçamento por η.

Intuição:

  • as rodadas iniciais são baratas e exploram amplamente
  • as rodadas finais são caras e exploram (exploiting) os candidatos mais promissores

Hyperband

Hyperband estende o SH ao responder uma pergunta importante: com quantas configurações devemos começar, e qual é o orçamento inicial?

O Hyperband executa múltiplos “brackets” de SH com diferentes trade-offs entre exploração e explotação:

  • Alguns brackets começam com muitas configurações com orçamentos minúsculos (exploração agressiva).
  • Outros começam com menos configurações, mas com orçamentos iniciais maiores (mais conservador, reduz risco de sinais iniciais enganosos).

O Hyperband é amplamente usado no ajuste de hiperparâmetros em deep learning porque é:

  • simples
  • paralelizável
  • eficaz sem modelagem complexa

Para mais detalhes, veja Hyperband.

Exemplo prático: ajustando uma CNN com orçamentos por épocas

Você quer ajustar taxa de aprendizado e weight decay para uma CNN. O treinamento completo tem 90 épocas.

Um cronograma de Halving Sucessivo com η = 3 poderia ser:

  • Começar com 81 configurações
  • Treinar cada uma por 1 época → manter as 27 melhores
  • Treinar essas até totalizar 3 épocas → manter as 9 melhores
  • Treinar essas até totalizar 9 épocas → manter as 3 melhores
  • Treinar essas até totalizar 27 épocas → manter a melhor (top 1)
  • Opcionalmente retreinar a melhor configuração por 90 épocas

Isso pode ser dramaticamente mais barato do que treinar todas as 81 configurações por 90 épocas.

Variantes assíncronas (ASHA)

Em ambientes distribuídos, degraus (rungs) síncronos podem desperdiçar recursos enquanto aguardam execuções lentas. Halving Sucessivo Assíncrono (Asynchronous Successive Halving, ASHA) promove execuções à medida que elas terminam, melhorando a vazão. O trade-off é que as decisões de promoção ficam um pouco mais ruidosas (porque comparações podem ser feitas com coortes incompletas).

Otimização bayesiana multi-fidelidade (MFBO)

Métodos bandit alocam recursos com base no desempenho observado em orçamentos fixos, mas não modelam explicitamente a relação entre fidelidades. A otimização bayesiana multi-fidelidade constrói um modelo probabilístico de (f(x, b)) (e às vezes do custo (c(b))) para decidir:

  • qual configuração (x) testar em seguida
  • em qual fidelidade (b)

Isso está intimamente relacionado à Otimização Bayesiana, mas com modelagem sensível à fidelidade e funções de aquisição.

Modelando \(f(x, b)\)

Abordagens comuns:

  • Substituto com entrada aumentada (augmented-input surrogate): tratar a fidelidade (b) como uma dimensão extra de entrada e modelar (f(x, b)) com um substituto (frequentemente, um processo gaussiano).
  • Modelos multitarfa / multissaída (multi-task / multi-output models): tratar cada nível de fidelidade como uma tarefa relacionada, compartilhando força estatística entre fidelidades.
  • Co-kriging / modelos autorregressivos de fidelidade (co-kriging / autoregressive fidelity models): modelar explicitamente que a alta fidelidade é uma correção da baixa fidelidade: [ f_{\text{high}}(x) \approx \rho f_{\text{low}}(x) + \delta(x) ]
  • Modelos de curva de aprendizado (learning curve models): quando a fidelidade são épocas, modelar a curva de perda ao longo do tempo e extrapolar.

Funções de aquisição com consciência de custo

MFBO usa uma função de aquisição que equilibra:

  • valor da informação ao avaliar ((x, b))
  • custo (c(b))

Ideia típica: maximizar “melhoria esperada por unidade de custo” (ou utilidade relacionada). Isso habilita estratégias como:

  • amostrar muitos pontos de forma barata para mapear a paisagem
  • ocasionalmente gastar com avaliações caras para confirmar e calibrar

Quando MFBO se destaca

MFBO tende a superar abordagens puramente bandit quando:

  • baixas fidelidades são informativas, porém enviesadas
  • múltiplos tipos de fidelidade (tamanho de dados + épocas + resolução)
  • você precisa de decisões cuidadosas e sensíveis a custo em vez de cronogramas fixos

A desvantagem é maior complexidade de implementação e mais suposições na modelagem.

BOHB: um híbrido prático de Hyperband e ideias bayesianas

BOHB (Bayesian Optimization + Hyperband) é um híbrido amplamente usado:

  • Hyperband lida com o agendamento multi-fidelidade (quais orçamentos executar, como promover).
  • Um otimizador bayesiano (comumente um estimador de densidade no estilo TPE) propõe novas configurações com base nos resultados observados até então.

Na prática:

  • Hyperband/SH decide quem recebe mais orçamento
  • o componente bayesiano decide quais novas configurações testar

Isso tende a funcionar bem na prática porque:

  • herda a escalabilidade e robustez do Hyperband
  • adiciona amostragem adaptativa de regiões promissoras do espaço de hiperparâmetros

BOHB é especialmente popular em pipelines no estilo AutoML e em ajuste de deep learning, onde o treinamento é caro e ruidoso.

Alocação de orçamento: escolhendo fidelidades e cronogramas

Selecionando orçamentos mínimo/máximo

  • Orçamento máximo deve corresponder à avaliação que você realmente quer (por exemplo, regime completo de treinamento).
  • Orçamento mínimo deve ser o menor possível, mas ainda fornecendo algum sinal útil.

Se o orçamento mínimo for pequeno demais (por exemplo, 1 época quando o modelo ainda não aprendeu nada), os ranqueamentos podem ser quase aleatórios, e a eliminação precoce passa a ser prejudicial.

Escolhendo η (fator de redução)

  • η maior (por exemplo, 4–5): poda mais agressiva, mais barato no total, porém com maior risco de descartar boas configurações cedo.
  • η menor (por exemplo, 2–3): mais conservador, mais computação, porém maior robustez a sinais de baixa fidelidade ruidosos/ruins.

Balanceando amplitude vs profundidade

Um modelo mental útil:

  • Amplitude (muitas configurações, baixo orçamento) reduz o risco de perder boas regiões.
  • Profundidade (menos configurações, maior orçamento) reduz o risco de ser enganado por viés/ruído de baixa fidelidade.

O Hyperband mistura isso explicitamente via múltiplos brackets; MFBO tenta aprender o melhor trade-off a partir dos dados.

Custo nem sempre é proporcional ao orçamento

Na prática:

  • o custo por época pode mudar devido a carregamento de dados, cache, precisão mista etc.
  • treinamento distribuído introduz sobrecarga fixa por execução (trial)

Se você tiver fortes não linearidades no custo, considere:

  • medir e modelar o tempo de execução explicitamente
  • usar agendamento assíncrono para reduzir tempo ocioso
  • definir orçamentos com base em tempo de relógio (wall-clock) em vez de épocas

Armadilhas práticas (e o que fazer a respeito)

Armadilha 1: Objetivos de baixa fidelidade enviesados (inversões de ranking)

Avaliações de baixa fidelidade podem ser sistematicamente enviesadas em relação ao objetivo completo.

Exemplos:

  • Treinar com 10% dos dados pode favorecer modelos de alta capacidade que fazem overfitting em amostras pequenas.
  • Imagens de baixa resolução podem favorecer arquiteturas que não escalam bem para alta resolução.
  • Poucas épocas podem favorecer taxas de aprendizado altas que parecem boas no começo, mas convergem mal.

Mitigações

  • Garanta que a baixa fidelidade seja representativa da tarefa (por exemplo, subamostragem estratificada).
  • Use múltiplas fidelidades (por exemplo, 10%, 30%, 100%) em vez de um único proxy barato.
  • Não faça poda agressiva demais (η menor, ou reserve uma fração para “wildcards”).
  • Em abordagens bayesianas, modele explicitamente o viés dependente da fidelidade, em vez de assumir uma correlação simples.

Armadilha 2: Ruído de parada antecipada e estocasticidade do treinamento

Em orçamentos pequenos, o desempenho costuma ser dominado por ruído:

  • inicialização aleatória
  • ordem dos minibatches
  • aleatoriedade de augmentação
  • kernels não determinísticos

Isso pode causar falsos negativos (boas configurações eliminadas cedo) e falsos positivos (configurações ruins promovidas).

Mitigações

  • Use um orçamento mínimo um pouco maior (por exemplo, 3–5 épocas em vez de 1).
  • Use critérios de seleção robustos (mediana ao longo de checkpoints, suavização).
  • Considere repetições ocasionais com sementes diferentes para configurações na borda/promovidas.
  • Acompanhe sinais adicionais (tendência da perda de treino, normas de gradiente) quando apropriado, mas cuidado com vazamento/heurísticas.

Armadilha 3: Curvas de aprendizado não monotônicas

Algumas configurações melhoram cedo e depois pioram (overfitting), ou parecem ruins no início e depois ficam ótimas (começo lento).

Mitigações

  • Use regras de promoção que incorporem a trajetória, não apenas a métrica mais recente (modelagem de curva de aprendizado).
  • Inclua brackets que começam com orçamentos maiores (o Hyperband já ajuda).
  • Use cronogramas de regularização e protocolos de avaliação consistentes entre execuções.

Armadilha 4: A fidelidade muda a definição do problema

Algumas fidelidades não são apenas “medições mais baratas”, elas alteram a tarefa:

  • resolução reduzida muda a separabilidade das classes
  • comprimento menor de sequência muda a dificuldade em PLN
  • modelo menor muda o viés indutivo

Nesses casos, a correlação com o objetivo real pode ser fraca.

Mitigações

  • Prefira fidelidades que preservem a estrutura da tarefa (por exemplo, menos épocas costuma ser mais seguro do que mudar a distribuição do conjunto de dados).
  • Valide a correlação: execute um pequeno estudo comparando ranqueamentos em baixa vs alta fidelidade.
  • Use modelagem multi-fidelidade capaz de aprender correlações fracas e se ajustar.

Armadilha 5: A seleção final deve ser avaliada em alta fidelidade

Um erro comum é reportar a melhor execução em baixa/média fidelidade como “melhor no geral”. Métodos multi-fidelidade são principalmente aceleradores de busca — a seleção final do modelo deve usar a fidelidade-alvo e um protocolo de avaliação adequado (por exemplo, holdout ou Validação Cruzada quando apropriado).

Um esboço concreto de algoritmo (Halving Sucessivo)

Abaixo há um pseudocódigo simplificado para ilustrar a ideia central:

def successive_halving(configs, budgets, eta, evaluate):
    """
    configs: list of hyperparameter settings
    budgets: increasing list like [1, 3, 9, 27]
    eta: reduction factor (keep 1/eta each rung)
    evaluate(x, b): returns metric to minimize at budget b
    """
    current = configs

    for b in budgets:
        results = [(x, evaluate(x, b)) for x in current]
        results.sort(key=lambda t: t[1])  # lower is better

        k = max(1, len(results) // eta)
        current = [x for x, y in results[:k]]

    return current[0]  # best surviving config

Sistemas reais adicionam:

  • execução paralela
  • promoção assíncrona (ASHA)
  • checkpointing para continuar o treinamento quando promovido
  • tratamento de falhas/timeouts

Aplicações práticas

Ajuste de hiperparâmetros para deep learning

Fidelidades comuns:

  • épocas (parada antecipada / treino parcial)
  • subconjuntos do conjunto de dados
  • resolução menor
  • menos camadas/largura (como proxy do desempenho de uma família de arquiteturas)

Fluxo de trabalho típico:

  1. Explorar amplamente com baixo orçamento usando SH/Hyperband/BOHB.
  2. Promover um pequeno conjunto até quase o orçamento completo.
  3. Retreinar os principais candidatos com orçamento completo, sementes aleatórias fixas e avaliação cuidadosa.

Busca de Arquitetura Neural (Neural Architecture Search, NAS)

NAS é caro porque cada arquitetura requer treinamento. Métodos multi-fidelidade usam:

  • treino proxy (poucas épocas)
  • tamanhos de entrada menores
  • compartilhamento de pesos (um tipo diferente de aproximação, com seus próprios vieses)

Simulações caras / ML científico

Em otimização baseada em simulação, fidelidades podem ser:

  • resolução de malha
  • tolerância do solver
  • número de partículas/amostras
  • horizonte de tempo

MFBO é especialmente atraente aqui porque consegue raciocinar sobre custo vs informação de forma mais explícita do que agendamentos fixos.

Como escolher uma abordagem

Use métodos baseados em bandit (SH/Hyperband/ASHA) quando:

  • você precisa de algo robusto e fácil de implantar
  • fidelidades são naturalmente “tempo de treinamento”
  • você consegue executar muitos trials em paralelo
  • você espera uma correlação razoável entre início e fim

Comece com Hyperband em muitos cenários de ajuste em ML.

Use BOHB ou híbridos relacionados quando:

  • você quer melhor amostragem do espaço de hiperparâmetros do que aleatório puro dentro do Hyperband
  • seu espaço de busca é grande/estruturado (contínuo + categórico)
  • você quer uma abordagem prática de “o melhor dos dois mundos”

Use otimização bayesiana multi-fidelidade quando:

  • os custos de avaliação variam muito e você quer decisões sensíveis a custo
  • as fidelidades são heterogêneas (tamanho de dados + resolução + épocas)
  • baixas fidelidades são enviesadas e você precisa de modelagem explícita
  • você pode arcar com a complexidade extra da modelagem de substitutos

Dicas de implementação e considerações de engenharia

  • Checkpointing é essencial para orçamentos baseados em épocas: a promoção deve retomar o treinamento em vez de reiniciar.
  • Use divisões de dados consistentes entre trials; caso contrário, a variância de baixa fidelidade pode explodir.
  • Meça tempo de relógio (wall-clock), não apenas “épocas”, especialmente em sistemas distribuídos.
  • Defina regras de parada sensatas: um trial que diverge (NaNs) deve ser encerrado cedo, mas não superajuste heurísticas que eliminem começos lentos.
  • Registre curvas de aprendizado: elas ajudam a diagnosticar se decisões de poda estão sistematicamente erradas.

Resumo

A otimização multi-fidelidade acelera a otimização de caixa-preta cara ao misturar muitas aproximações baratas com menos avaliações caras de verdade (ground-truth). No ajuste de hiperparâmetros, isso frequentemente significa treinar muitas configurações por pouco tempo, promover as melhores e treinar completamente apenas um pequeno subconjunto.

  • Halving Sucessivo / Hyperband: alocação de recursos robusta e escalável sem modelagem explícita.
  • BOHB e híbridos relacionados: combinam o agendamento do Hyperband com propostas de configurações guiadas por Bayes.
  • Abordagens bayesianas multi-fidelidade: modelam explicitamente o desempenho entre fidelidades e escolhem avaliações com base em ganho de informação vs custo.

Os principais riscos práticos são sinais de baixa fidelidade enviesados e ruído de parada antecipada — ambos podem fazer com que configurações promissoras sejam eliminadas cedo demais. O uso bem-sucedido normalmente exige escolha cuidadosa de fidelidades, poda suficientemente conservadora e avaliação final na verdadeira fidelidade-alvo.