Quem vem da estatística costuma estranhar a palavra hiperparâmetro quando chega ao aprendizado de máquina: parece um conceito novo, cheio de siglas e de bibliotecas de “otimização automática”. Não é. O \(\lambda\) da regressão ridge, a largura de banda de um estimador de densidade por kernel, o span do loess e o parâmetro de suavização de uma spline são hiperparâmetros, e a estatística escolhe esses números há mais de 50 anos — com validação cruzada, GCV, critérios de informação e máxima verossimilhança restrita. O que o aprendizado de máquina acrescentou foi escala: modelos com dez ou vinte hiperparâmetros, cada ajuste custando minutos ou horas. Este artigo define o conceito na linguagem de um estatístico, mostra por que um hiperparâmetro não pode ser estimado junto com os parâmetros, compara os critérios clássicos de escolha numa simulação, apresenta os métodos de otimização — grade, busca aleatória, otimização bayesiana e successive halving — e termina com o viés que aparece quando se escolhe o melhor de muitos. Todos os números saem de um script reprodutível.
§1Parâmetro ou hiperparâmetro?
Considere a regressão ridge de Hoerl e Kennard (1970). Para um \(\lambda \ge 0\) fixo, os coeficientes são
Há duas camadas aqui. \(\boldsymbol\beta\) é escolhido pelo critério de ajuste: dado \(\lambda\), minimizar (1) dá um único \(\hat{\boldsymbol\beta}_\lambda\). Já \(\lambda\) não pode ser escolhido pelo mesmo critério: se você minimizar (1) também em \(\lambda\), a resposta é sempre \(\lambda = 0\), porque a penalidade só aumenta a soma. É essa a definição operacional que este artigo usa:
Formalmente, escolher um hiperparâmetro é um problema de dois níveis: no nível de dentro, os parâmetros são ajustados nos dados de treino; no de fora, o hiperparâmetro é escolhido para minimizar um erro que os dados de treino não veem,
\(R(\lambda)\) é o risco de previsão e é desconhecido. Toda a §3 é sobre como estimá-lo; toda a §4, sobre como minimizar uma função que só se conhece com ruído e que custa caro avaliar.
A palavra vem da estatística bayesiana. Num modelo hierárquico, como os de Lindley e Smith (1972), os dados dependem de parâmetros e os parâmetros têm uma distribuição a priori, cujos próprios parâmetros — médias e variâncias da priori — passaram a ser chamados de hiperparâmetros. A ligação não é só de nome: a §3.3 mostra que o \(\lambda\) da ridge é o hiperparâmetro de uma priori normal, e que isso dá uma forma de estimá-lo.
Note que a distinção não é sobre a natureza do número, e sim sobre como ele entra no critério. O \(\lambda\) da transformação de Box–Cox, por exemplo, é estimado por máxima verossimilhança junto com os coeficientes — a verossimilhança perfilada tem um máximo interior, então ele é um parâmetro como outro qualquer. Já a ordem \(p\) de um modelo AR, o número de componentes numa regressão por componentes principais e o número de nós de uma spline de regressão são hiperparâmetros: aumentá-los sempre melhora o ajuste no treino.
O estatístico já tem uma lista grande deles; o aprendizado de máquina tem outra:
| método | hiperparâmetro | o que controla | escolha clássica |
|---|---|---|---|
| ridge, lasso, elastic net | \(\lambda\), \(\alpha\) | quanto os coeficientes encolhem | GCV, CV, regra de 1 erro-padrão |
| densidade por kernel | largura de banda \(h\) | suavidade da curva | regra de Silverman, plug-in de Sheather–Jones |
| loess, spline de suavização | span, \(\lambda\) | graus de liberdade efetivos | GCV, REML |
| modelos aditivos (GAM) | um \(\lambda\) por termo suave | forma de cada função | REML (padrão do mgcv) |
| k vizinhos mais próximos | \(k\) | tamanho da vizinhança | CV |
| gradient boosting | taxa de aprendizado, nº de árvores, profundidade, amostragem | complexidade e ritmo do ajuste | CV com parada antecipada |
| random forest | nº de variáveis por divisão, tamanho mínimo da folha | correlação entre árvores, variância | erro out-of-bag |
| redes neurais | taxa de aprendizado, arquitetura, dropout, weight decay, tamanho do lote | capacidade e otimização | validação, otimização bayesiana |
Duas diferenças práticas separam as duas colunas. Os hiperparâmetros da estatística clássica costumam ser poucos, contínuos e baratos: um ou dois números, e o ajuste para cada valor é uma fórmula fechada. Os do aprendizado de máquina costumam ser muitos, de tipos misturados e caros: contínuos (taxa de aprendizado), inteiros (profundidade), categóricos (função de perda), às vezes condicionais (a taxa de dropout só existe se houver dropout), e cada avaliação exige treinar o modelo de novo. É isso que torna a otimização de hiperparâmetros um assunto por si só.
§2Por que não dá para estimar junto
A forma mais clara de ver o problema é olhar a ridge pela decomposição em valores singulares \(\mathbf X = \mathbf U\mathbf D\mathbf V^\top\), com valores singulares \(d_1 \ge \dots \ge d_p\). Os valores ajustados são
Cada direção principal dos dados é encolhida pelo fator \(d_k^2/(d_k^2+\lambda)\): as direções de pouca variação (\(d_k\) pequeno) são as mais encolhidas. Os graus de liberdade efetivos \(\operatorname{gl}(\lambda)\) vão de \(p\) (mínimos quadrados, \(\lambda = 0\)) a 0 (\(\lambda \to \infty\)), e são a moeda comum para comparar modelos de complexidade contínua. O erro de treino é monótono em \(\lambda\), porque \(\hat{\boldsymbol\beta}_0\) minimiza a soma de quadrados sem restrição. Já o risco de previsão tem a forma de U conhecida:
em que \(\boldsymbol\Sigma\) é a covariância dos preditores e \(\|\mathbf a\|^2_{\boldsymbol\Sigma} = \mathbf a^\top\boldsymbol\Sigma\mathbf a\). A figura abaixo mostra as duas curvas num conjunto de dados simulado com \(n = 50\) observações e \(p = 40\) preditores correlacionados — uma situação em que mínimos quadrados é muito instável.
Três coisas na figura valem para qualquer hiperparâmetro. Primeiro, o erro de treino (cinza) é inútil para escolher \(\lambda\): ele recomenda \(\lambda = 0\), justamente o pior ponto da curva verdadeira. Segundo, o ganho de escolher bem é grande: mínimos quadrados erra mais que o dobro do mínimo, e até “prever zero” é melhor do que ele. Terceiro, as curvas estimadas (validação cruzada e GCV) acompanham a forma da verdadeira, mas o mínimo delas não cai no mesmo lugar — o fundo do U é achatado, e o ruído da estimativa decide onde fica o mínimo. A §3.4 mostra o tamanho desse ruído.
§3O que otimizar: estimando o risco de previsão
Há três famílias de critérios para estimar \(R(\lambda)\) ou um substituto dele. Todas são velhas conhecidas da estatística.
3.1 Validação cruzada, LOOCV e GCV
A validação cruzada com \(K\) partes (Stone, 1974) divide os dados em \(K\) blocos, ajusta o modelo em \(K-1\) deles, mede o erro no bloco que ficou de fora e faz a média. É o critério mais geral: serve para qualquer modelo e qualquer função de perda. O custo é \(K\) ajustes para cada valor de \(\lambda\).
Para suavizadores lineares — qualquer método em que \(\hat{\mathbf y} = \mathbf H_\lambda\mathbf y\), como ridge, splines, loess e kernels — o caso \(K = n\) (deixar um de fora, LOOCV) tem fórmula fechada. Não é preciso reajustar nada:
em que \(h_{ii}\) é a alavancagem da observação \(i\). (É a estatística PRESS dividida por \(n\).) Craven e Wahba (1979) e Golub, Heath e Wahba (1979) propuseram trocar cada \(h_{ii}\) pela média \(\operatorname{tr}(\mathbf H_\lambda)/n\), o que dá a validação cruzada generalizada:
O GCV é invariante a rotações dos dados (o LOOCV não é) e tem uma leitura simples: é a soma de quadrados dos resíduos inflada por um fator que pune os graus de liberdade gastos.
3.2 Critérios de informação com graus de liberdade efetivos
O AIC usual conta parâmetros. Para um suavizador, o número de parâmetros é substituído por \(\operatorname{gl}(\lambda)\):
O AIC é uma aproximação assintótica que supõe \(\operatorname{gl}\) pequeno diante de \(n\). Quando não é — e com \(p = 40\) e \(n = 50\) não é —, ele pune pouco a complexidade e escolhe \(\lambda\) pequeno demais. A versão corrigida de Hurvich, Simonoff e Tsai (1998), o \(\operatorname{AIC_c}\), foi proposta exatamente para escolher parâmetros de suavização e pune muito mais quando \(\operatorname{gl}\) se aproxima de \(n\). O \(C_p\) de Mallows, com \(\operatorname{RSS}_\lambda + 2\hat\sigma^2\operatorname{gl}(\lambda)\), é da mesma família, mas exige uma estimativa de \(\sigma^2\) de fora.
3.3 Verossimilhança marginal: o hiperparâmetro como componente de variância
Este é o caminho mais “estatístico” e o menos conhecido fora da estatística. Suponha uma priori normal para os coeficientes:
A média a posteriori de \(\boldsymbol\beta\) é exatamente o \(\hat{\boldsymbol\beta}_\lambda\) de (1). Mas agora \(\lambda = \sigma^2/\sigma^2_\beta\) é uma razão de variâncias num modelo misto, e pode ser estimado pela verossimilhança dos dados com \(\boldsymbol\beta\) integrado:
com \(\sigma^2\) perfilado em \(\hat\sigma^2_\lambda = \mathbf y^\top(\mathbf I + \mathbf X\mathbf X^\top/\lambda)^{-1}\mathbf y/n\). Isso é Bayes empírico (ou “máxima verossimilhança do tipo II”). Quando há efeitos fixos não penalizados, como o intercepto e as partes lineares de uma spline, a versão certa é a REML, que integra também esses efeitos. É o que o pacote mgcv faz por padrão desde Wood (2011), e é o mesmo critério usado para ajustar os hiperparâmetros de um processo gaussiano (§4.3). O critério não usa dados de validação, é suave em \(\lambda\) e generaliza para muitos hiperparâmetros (um por termo do modelo) sem explodir em custo.
O preço é uma suposição a mais: (9) é ótimo se a priori (8) estiver certa. A simulação a seguir testa o que acontece quando ela está e quando não está.
3.4 Comparando os critérios numa simulação
Mil conjuntos de dados com o desenho da figura (n = 50, p = 40, preditores AR(1) com correlação 0,6) em dois cenários. No primeiro, os coeficientes são fixos e decaem geometricamente, com sinais alternados — um vetor “com estrutura”, que nada tem de normal com variância comum. No segundo, os coeficientes são sorteados de nova a cada conjunto de uma \(N(0,\tau^2)\), exatamente a priori (8), com \(\tau\) escolhido para dar a mesma variância de sinal. Como os dados são simulados, o risco verdadeiro \(R(\lambda)\) é conhecido e dá para medir quanto cada critério perde em relação ao \(\lambda\) ótimo.
| critério | β fixo: log₁₀ λ escolhido | razão | ≤ 1,1 | β da priori: log₁₀ λ escolhido | razão | ≤ 1,1 |
|---|---|---|---|---|---|---|
| validação cruzada 10-fold | 0,90 (0,55 a 1,45) | 1,12 | 46% | 1,30 (1,05 a 1,50) | 1,07 | 58% |
| LOOCV (fórmula fechada) | 0,85 (0,50 a 1,25) | 1,11 | 48% | 1,30 (1,05 a 1,55) | 1,07 | 58% |
| GCV | 0,80 (0,45 a 1,20) | 1,10 | 50% | 1,30 (1,05 a 1,50) | 1,07 | 59% |
| AIC com gl efetivos | -0,55 (-0,95 a -0,20) | 2,10 | 6% | -0,30 (-0,80 a 0,15) | 3,64 | 6% |
| AICc | 2,30 (2,00 a 2,96) | 1,39 | 16% | 1,85 (1,75 a 2,00) | 1,24 | 25% |
| verossimilhança marginal | 1,70 (1,30 a 2,35) | 1,24 | 32% | 1,33 (1,15 a 1,50) | 1,05 | 65% |
| λ ótimo (oráculo) | 0,85 (0,65 a 1,05) | — | — | 1,30 (1,19 a 1,45) | — | — |
1000 conjuntos de dados por cenário, n = 50, p = 40, preditores AR(1) com ρ = 0,6, σ = 1. À esquerda, coeficientes fixos que decaem geometricamente; à direita, coeficientes sorteados de \(N(0, \tau^2)\) com \(\tau = 0,222\) — exatamente a priori que a verossimilhança marginal supõe. log₁₀ λ escolhido: mediana (quartis) do λ escolhido. Razão: mediana de (erro de previsão com o λ escolhido − σ²) / (erro com o λ ótimo − σ²); 1 é perfeito. ≤ 1,1: fração dos conjuntos em que o excesso de erro ficou a menos de 10% do mínimo.
Cinco lições, todas com respaldo na literatura:
- Nenhum critério domina. Com coeficientes fixos, GCV, LOOCV e 10-fold empatam na frente; a verossimilhança marginal superestima \(\lambda\) (mediana \(10^{1{,}7}\) contra o ótimo \(10^{0{,}85}\)) e perde mais. Quando a priori é verdadeira, a ordem se inverte: a verossimilhança marginal fica a menos de 10% do ótimo em 65% dos conjuntos. É o resultado de Wahba (1985), que comparou GCV e máxima verossimilhança generalizada para splines: a verossimilhança é melhor quando o modelo bayesiano está certo; o GCV é mais robusto quando não está.
- O AIC sem correção falha com tantos graus de liberdade diante de \(n\): escolhe \(\lambda\) uma ordem de grandeza menor que o ótimo e perde o dobro (ou mais) do excesso de erro. O AICc corrige no sentido certo, mas aqui corrige demais.
- O \(\lambda\) escolhido é uma variável aleatória — e bem variável. Com coeficientes fixos, o desvio-padrão do \(\log_{10}\hat\lambda\) do 10-fold é de cerca de 1,1 década, contra 0,4 década do \(\lambda\) ótimo. Pior: a correlação entre o \(\lambda\) escolhido e o ótimo em cada conjunto é ligeiramente negativa (cerca de −0,1). Härdle, Hall e Marron (1988) documentaram o mesmo para larguras de banda: os seletores automáticos acertam em média, mas não acompanham as flutuações do ótimo de amostra para amostra.
- Mesmo assim, o custo de errar é pequeno. A razão mediana fica em torno de 1,1 para os melhores critérios: como o fundo do U é achatado, errar \(\lambda\) por meia década custa pouco. É por isso que a escolha de hiperparâmetros raramente precisa ser perfeita — precisa evitar os extremos.
- Fórmulas fechadas valem ouro. GCV e LOOCV custam um único ajuste (uma SVD) para a grade inteira de \(\lambda\) e empatam com o 10-fold, que custa dez. Sempre que o modelo for um suavizador linear, use-as.
§4Como otimizar: o problema visto como desenho de experimentos
Com um critério escolhido, sobra minimizar uma função \(f(\boldsymbol\lambda)\) — o erro de validação como função de um vetor de hiperparâmetros. Para um estatístico, a melhor forma de enxergar esse problema é como um experimento: cada avaliação de \(f\) é uma rodada cara (treinar o modelo), a resposta tem ruído (o conjunto de validação é finito), não há derivadas e o objetivo é achar a região ótima com poucas rodadas. É, quase palavra por palavra, o problema da metodologia de superfície de resposta de Box e Wilson (1951) e dos experimentos computacionais de Sacks, Welch, Mitchell e Wynn (1989). Os métodos abaixo são desenhos experimentais, do mais simples ao mais adaptativo.
Antes de qualquer método, uma regra que vale mais do que a escolha do método: parametrize na escala certa. Hiperparâmetros como \(\lambda\), taxa de aprendizado e largura de banda agem multiplicativamente — ir de 0,001 a 0,01 muda tanto quanto ir de 0,1 a 1 —, então devem ser buscados em \(\log\lambda\). Uma busca uniforme em \([0{,}0001;\ 1]\) gasta 90% das avaliações entre 0,1 e 1.
4.1 Busca em grade
Escolha \(L\) valores para cada um dos \(d\) hiperparâmetros e avalie todas as \(L^d\) combinações. É um fatorial completo. Funciona muito bem com um ou dois hiperparâmetros e é fácil de paralelizar e de visualizar. Mas o custo cresce exponencialmente com \(d\): com 3 níveis, 6 hiperparâmetros já pedem 729 ajustes, e com o orçamento de 64 só cabem 2 níveis por eixo.
4.2 Busca aleatória
Sorteie \(N\) configurações independentes da região de busca (na escala log). Bergstra e Bengio (2012) mostraram que isso costuma ser melhor que a grade com o mesmo orçamento, por um argumento de dimensão efetiva baixa: em geral, só alguns hiperparâmetros importam muito. Uma grade \(3\times3\times3\) testa 27 combinações, mas só 3 valores distintos de cada eixo; se um dos três eixos não importa, ela desperdiça dois terços do orçamento repetindo as mesmas 9 combinações dos outros dois. A busca aleatória testa 27 valores distintos de cada eixo.
Há também uma garantia simples. Se a configuração ótima tiver uma vizinhança “boa o bastante” que ocupe uma fração \(q\) do espaço de busca, a probabilidade de pelo menos uma de \(N\) configurações aleatórias cair nela é
Sessenta avaliações aleatórias acham, com 95% de chance, uma configuração entre as 5% melhores — qualquer que seja a dimensão. Desenhos que preenchem o espaço de forma mais regular, como o hipercubo latino (McKay, Beckman e Conover, 1979) ou sequências de Sobol, mantêm essa vantagem e evitam aglomerados.
4.3 Otimização bayesiana
Grade e busca aleatória são desenhos não adaptativos: decidem todos os pontos antes de ver qualquer resultado. A otimização bayesiana é sequencial: depois de cada avaliação, ajusta um modelo estatístico para \(f\) — o modelo substituto — e usa esse modelo para escolher o próximo ponto. O substituto mais comum é um processo gaussiano, que um geoestatístico reconhece como krigagem:
em que \(\mu_t\) é a previsão por krigagem depois de \(t\) avaliações e \(s_t\) é seu erro-padrão — pequeno perto dos pontos já avaliados, grande longe deles. Para escolher o próximo ponto, maximiza-se um critério de aquisição. O mais usado é a melhoria esperada (expected improvement) de Jones, Schonlau e Welch (1998). Sendo \(f^\ast\) o menor valor observado até agora e \(z = (f^\ast - \mu_t)/s_t\),
Os dois termos são o equilíbrio entre explorar e aproveitar: o primeiro é grande onde a previsão é boa (\(\mu_t\) baixo); o segundo, onde a incerteza é grande (\(s_t\) alto). A melhoria esperada é zero exatamente nos pontos já avaliados e positiva em todos os outros, então o método nunca para de explorar.
Dois detalhes interessam ao estatístico. Primeiro, o processo gaussiano tem seus próprios hiperparâmetros — os comprimentos de correlação do kernel, um por dimensão —, e eles são estimados pela verossimilhança marginal da §3.3. São hiperparâmetros escolhidos por um critério bayesiano para escolher outros hiperparâmetros. Segundo, há alternativas ao processo gaussiano: o TPE de Bergstra, Bardenet, Bengio e Kégl (2011), padrão da biblioteca Optuna, modela a densidade dos hiperparâmetros entre as configurações boas e entre as ruins e escolhe o próximo ponto pela razão das duas densidades; ele lida melhor com variáveis categóricas e condicionais. Snoek, Larochelle e Adams (2012) popularizaram o uso do processo gaussiano para ajustar redes neurais.
4.4 Avaliações baratas: successive halving e Hyperband
Em muitos modelos dá para obter uma avaliação aproximada por uma fração do custo: treinar com parte dos dados, por menos iterações ou por menos épocas. O successive halving (Jamieson e Talwalkar, 2016) usa isso como um torneio. Com fator \(\eta = 3\):
- Sorteie 81 configurações e avalie cada uma com orçamento pequeno (aqui, 36 dos 324 pontos de treino).
- Fique com o melhor terço (27) e avalie de novo com o triplo do orçamento (108 pontos).
- Fique com as 9 melhores e avalie com os dados completos. Escolha a vencedora.
Cada rodada gasta o mesmo total de pontos de treino (\(81\times36 = 27\times108 = 9\times324\)), então o torneio inteiro custa o mesmo que 27 ajustes completos — mas examina 81 configurações em vez de 27. O risco é eliminar cedo uma configuração que só se destaca com orçamento grande (uma taxa de aprendizado pequena, por exemplo, começa devagar). O Hyperband (Li, Jamieson, DeSalvo, Rostamizadeh e Talwalkar, 2018) protege contra isso rodando vários torneios com pontos de partida diferentes. Para o estatístico, a analogia mais próxima são os desenhos sequenciais com interrupção e os experimentos de triagem: muitos tratamentos numa primeira fase barata, só os promissores na fase cara.
4.5 Outras famílias
Quando os hiperparâmetros são contínuos e o modelo é diferenciável, dá para calcular o gradiente do erro de validação em relação a eles, por diferenciação implícita da condição de ótimo do nível de dentro de (2), e usar descida de gradiente. Algoritmos evolutivos e o treinamento baseado em populações (population-based training) mantêm uma população de configurações que se recombinam e mutam. São úteis em nichos (redes muito grandes, muitos hiperparâmetros contínuos), mas fogem do escopo deste texto.
4.6 Os métodos lado a lado
Para comparar os métodos num problema com mais de um hiperparâmetro, o script usa uma regressão kernel (ridge com kernel): \(n = 324\) observações de treino com 5 variáveis, uma função verdadeira não linear \(f(\mathbf x) = \sin(1{,}5x_1) + 0{,}5x_2x_3 + 0{,}6x_4\) (a quinta variável é ruído) e erro com variância 0,25. O kernel mistura um RBF e um linear,
e há três hiperparâmetros: \(\lambda\) (penalidade, \(10^{-5}\) a \(10\)), \(\gamma\) (inverso da largura do kernel, \(10^{-3}\) a \(10\)) e \(a\) (peso do kernel linear, 0 a 1). Cada método tem orçamento de 27 ajustes completos, escolhe a configuração com menor erro em 200 pontos de validação, e essa configuração é avaliada num conjunto de teste de 5.000 pontos. Tudo é repetido em 100 conjuntos de dados.
A figura mostra a primeira réplica e duas coisas que a tabela abaixo confirma. A superfície tem um vale diagonal: \(\lambda\) e \(\gamma\) interagem, e otimizar um de cada vez (fixar \(\gamma\), achar o melhor \(\lambda\), depois fixar esse \(\lambda\) e achar o melhor \(\gamma\)) pode parar longe do ótimo. E o terceiro hiperparâmetro quase não importa: num ajuste de efeitos principais sobre 4.860 configurações aleatórias, \(\lambda\) explica 10% da variação do log do erro de validação, \(\gamma\) explica 13% e \(a\) explica 0,3% (o resto é interação entre \(\lambda\) e \(\gamma\)). Por isso a grade de 27 pontos colapsa em 9 posições no plano que importa.
Para ver o argumento de Bergstra e Bengio em ação de verdade, o segundo bloco do experimento usa um kernel RBF com uma largura por variável, \(\exp\{-\sum_j\gamma_j(x_j - x'_j)^2\}\): são 6 hiperparâmetros (\(\lambda\) e cinco \(\gamma_j\)), com orçamento de 64 ajustes e 40 réplicas. Agora a grade só pode ter 2 níveis por eixo.
| hiperparâmetros · orçamento | método | erro de validação do escolhido (média) | erro de teste (mediana e quartis) | vence a busca aleatória |
|---|---|---|---|---|
| 3 · 27 | grade (3³) | 0,343 | 0,354 (0,343–0,366) | 56% |
| 3 · 27 | busca aleatória | 0,350 | 0,359 (0,345–0,377) | — |
| 3 · 27 | otimização bayesiana | 0,336 | 0,350 (0,338–0,366) | 62% |
| 3 · 27 | successive halving | 0,347 | 0,357 (0,345–0,368) | 60% |
| 6 · 64 | grade (2⁶) | 0,367 | 0,372 (0,358–0,398) | 28% |
| 6 · 64 | busca aleatória | 0,346 | 0,341 (0,324–0,384) | — |
| 6 · 64 | otimização bayesiana | 0,281 | 0,292 (0,281–0,302) | 100% |
Regressão kernel, n = 324 treino, 200 validação, 5.000 teste; o menor erro possível (ruído) é 0,249. Bloco de 3 hiperparâmetros (λ, γ, a): 100 réplicas, 27 ajustes completos. O successive halving gasta o mesmo número de pontos de treino que 27 ajustes completos. Bloco de 6 hiperparâmetros (λ e uma largura por variável): 40 réplicas, 64 ajustes. “Vence a busca aleatória”: fração das réplicas em que o erro de teste foi menor que o da busca aleatória na mesma réplica.
Os resultados contam uma história que vale a pena ler com cuidado:
- Com 3 hiperparâmetros e 27 avaliações, os métodos quase empatam. As medianas do erro de teste vão de 0,350 a 0,359, uma diferença de cerca de 2%, contra uma distância de mais de 40% até o erro irredutível (0,249). A otimização bayesiana é a melhor, mas vence a busca aleatória em só 62% das réplicas. A grade foi tão boa quanto a busca aleatória aqui — porque o ótimo caiu perto de um dos seus pontos, algo que não se sabe de antemão. O successive halving examinou três vezes mais configurações e ficou no meio.
- Com 6 hiperparâmetros e 64 avaliações, a ordem fica nítida. A grade (2 níveis por eixo) é a pior e perde para a busca aleatória em 72% das réplicas. A otimização bayesiana vence a busca aleatória em todas as 40 réplicas, e seu erro mediano (0,292) é bem menor que o da aleatória (0,341). Num espaço de 6 dimensões, aprender com as avaliações anteriores faz diferença.
- A otimização bayesiana redescobriu a estrutura do problema. As larguras escolhidas (mediana de \(\log_{10}\gamma_j\)) foram −0,9 para \(x_1\) (a variável do seno, que pede um kernel estreito), cerca de −1,9 para \(x_2\) e \(x_3\), −2,6 para \(x_4\) (que entra de forma linear, então pede um kernel largo) e −3,0 para \(x_5\) — o limite inferior da busca, o que na prática desliga a variável que é só ruído. É a “determinação automática de relevância”, obtida como subproduto da otimização.
§5A maldição do vencedor
Há um viés escondido em todo esse processo, e um estatístico vai reconhecê-lo de longe. O erro de validação de cada configuração é uma estimativa com ruído. Escolher o mínimo entre muitas estimativas com ruído produz uma estimativa viesada para baixo: o vencedor tende a ser uma configuração boa e com sorte no conjunto de validação. Se \(\hat f_1,\dots,\hat f_k\) forem estimativas não viesadas de \(f_1,\dots,f_k\),
e a diferença cresce com \(k\) e com a variância de cada \(\hat f_j\). É o mesmo fenômeno da inferência pós-seleção e da regressão à média. No experimento:
| configurações testadas | erro de validação do vencedor | erro de teste do vencedor | otimismo (teste − validação) |
|---|---|---|---|
| 1 | 0,679 | 0,692 | 0,012 ± 0,010 |
| 3 | 0,456 | 0,469 | 0,013 ± 0,007 |
| 9 | 0,379 | 0,394 | 0,014 ± 0,005 |
| 27 | 0,348 | 0,366 | 0,019 ± 0,004 |
| 81 | 0,337 | 0,358 | 0,021 ± 0,004 |
| 243 | 0,332 | 0,354 | 0,021 ± 0,004 |
Médias sobre 100 réplicas; as k configurações são as k primeiras de uma mesma busca aleatória de 243. Com k = 1 não há seleção, e o otimismo é zero dentro do erro de Monte Carlo (o “±” é um erro-padrão). Ele cresce com k: quanto mais configurações competem, mais o vencedor deve parte da vitória ao ruído da validação.
O otimismo é pequeno aqui — cerca de 6% do erro com 243 configurações — porque o conjunto de validação tem 200 pontos e as configurações são muito correlacionadas entre si. Com conjuntos de validação menores, com milhares de configurações ou com otimizadores que exploram a superfície com mais agressividade, ele pode ser muito maior. Cawley e Talbot (2010) mostraram casos em que o viés de seleção é da mesma ordem que a diferença entre os algoritmos comparados, e Varma e Simon (2006) mostraram que relatar o erro de validação cruzada do modelo escolhido pode fazer um classificador sem nenhum sinal parecer útil.
A solução é a de sempre: o erro que se reporta precisa vir de dados que não participaram da escolha. Na prática, ou um conjunto de teste separado, tocado uma única vez no fim, ou a validação cruzada aninhada: um laço externo de \(K\) partes para estimar o erro, e dentro de cada parte externa um laço interno completo que escolhe os hiperparâmetros só com os dados de treino daquela parte. O custo é multiplicativo (\(K_{\text{ext}}\times K_{\text{int}}\times\) número de configurações), mas é o único jeito de estimar o erro do procedimento inteiro, incluindo a etapa de ajuste dos hiperparâmetros.
§6Um guia prático
- Comece pelos padrões. Os valores padrão das bibliotecas maduras foram escolhidos para funcionar razoavelmente em muitos problemas. Ajuste primeiro o que a literatura ou a documentação aponta como mais importante (em boosting: taxa de aprendizado e número de árvores; em random forest: quase nada).
- Use a escala log para tudo que é positivo e age multiplicativamente, e escolha limites largos. Se o ótimo cair na borda da região, aumente a região.
- Se houver critério em forma fechada, use-o. GCV, LOOCV por (5) e REML custam um ajuste. É o caso de ridge, splines, GAMs e modelos mistos.
- Escolha o otimizador pelo orçamento e pela dimensão. Um ou dois hiperparâmetros baratos: grade fina. Vários hiperparâmetros, avaliações moderadas: busca aleatória ou hipercubo latino com algumas dezenas de pontos. Avaliações caras e até umas 20 dimensões contínuas: otimização bayesiana. Possibilidade de avaliar com parte dos dados ou parte das iterações: successive halving ou Hyperband.
- Prefira o modelo mais simples dentro do ruído. A regra de 1 erro-padrão (Breiman, Friedman, Olshen e Stone, 1984) escolhe o modelo mais regularizado cujo erro de validação cruzada está a menos de um erro-padrão do mínimo. Ela reconhece que o mínimo é ruidoso (§3.4) e troca uma perda pequena de ajuste por estabilidade. É o
lambda.1sedoglmnet. - Reporte o erro com dados que não viram a escolha (§5) e documente a região de busca, o orçamento, o critério e as sementes. Ajuste de hiperparâmetros é parte do modelo; um resultado sem essas informações não é reprodutível.
Em código, com as ferramentas mais comuns:
# R: ridge/lasso com CV e a regra de 1 erro-padrão; GAM com REML library(glmnet) cv <- cv.glmnet(X, y, alpha = 0, nfolds = 10) # alpha = 0: ridge coef(cv, s = "lambda.1se") library(mgcv) m <- gam(y ~ s(x1) + s(x2) + s(x3), method = "REML") # um lambda por termo, por REML
# Python: busca aleatória, successive halving e otimização bayesiana (TPE)
from scipy.stats import loguniform
from sklearn.experimental import enable_halving_search_cv # noqa: F401
from sklearn.model_selection import RandomizedSearchCV, HalvingRandomSearchCV, cross_val_score
from sklearn.kernel_ridge import KernelRidge
espaco = {"alpha": loguniform(1e-5, 10), "gamma": loguniform(1e-3, 10)} # escala log
busca = RandomizedSearchCV(KernelRidge(kernel="rbf"), espaco, n_iter=60, cv=5,
scoring="neg_mean_squared_error", random_state=0).fit(X, y)
torneio = HalvingRandomSearchCV(KernelRidge(kernel="rbf"), espaco, factor=3,
resource="n_samples", cv=5, random_state=0).fit(X, y)
import optuna
def objetivo(trial):
m = KernelRidge(kernel="rbf", alpha=trial.suggest_float("alpha", 1e-5, 10, log=True),
gamma=trial.suggest_float("gamma", 1e-3, 10, log=True))
return -cross_val_score(m, X, y, cv=5, scoring="neg_mean_squared_error").mean()
estudo = optuna.create_study(sampler=optuna.samplers.TPESampler(seed=0))
estudo.optimize(objetivo, n_trials=60)
O script deste artigo implementa tudo do zero em numpy — ridge pela SVD, os seis critérios da §3, regressão kernel, o processo gaussiano com melhoria esperada e o successive halving — para que cada fórmula possa ser conferida no código.
§7Resumo
- Um hiperparâmetro define qual estimador se usa e não pode ser escolhido pelo critério de ajuste, que o levaria ao extremo mais complexo. Escolhê-lo é um problema de dois níveis: ajustar no treino, avaliar fora dele.
- A estatística já tem muitos: \(\lambda\) de ridge e lasso, larguras de banda, span, parâmetros de suavização, \(k\). A palavra vem dos modelos bayesianos hierárquicos — e o \(\lambda\) da ridge é literalmente o hiperparâmetro de uma priori normal.
- Para estimar o risco de previsão há validação cruzada (geral, cara), LOOCV e GCV (fechadas para suavizadores lineares), critérios de informação com graus de liberdade efetivos (o AIC falha quando \(\operatorname{gl}\) é grande diante de \(n\)) e verossimilhança marginal / REML (ótima quando a priori está certa).
- Na simulação, nenhum critério dominou: GCV e CV foram melhores com coeficientes fixos; a verossimilhança marginal, com coeficientes da priori. O \(\lambda\) escolhido variou muito mais que o ótimo e mal se correlacionou com ele — mas, como o fundo da curva é achatado, a perda típica foi de cerca de 10% do excesso de erro.
- Otimizar hiperparâmetros é desenho de experimentos: grade (fatorial), busca aleatória (melhor quando poucos hiperparâmetros importam), otimização bayesiana (krigagem com melhoria esperada) e successive halving (triagem sequencial). Com 3 hiperparâmetros os métodos empataram; com 6, a otimização bayesiana venceu a busca aleatória em 100% das réplicas e a grade ficou em último.
- O erro de validação do vencedor é otimista (maldição do vencedor). Reporte o erro com um conjunto de teste intocado ou com validação cruzada aninhada.
§8Para ir além
- A. E. Hoerl e R. W. Kennard (1970). Ridge regression: biased estimation for nonorthogonal problems. Technometrics, 12(1), 55–67.
- D. V. Lindley e A. F. M. Smith (1972). Bayes estimates for the linear model. Journal of the Royal Statistical Society B, 34(1), 1–41.
- M. Stone (1974). Cross-validatory choice and assessment of statistical predictions. Journal of the Royal Statistical Society B, 36(2), 111–147.
- P. Craven e G. Wahba (1979). Smoothing noisy data with spline functions. Numerische Mathematik, 31, 377–403.
- G. H. Golub, M. Heath e G. Wahba (1979). Generalized cross-validation as a method for choosing a good ridge parameter. Technometrics, 21(2), 215–223.
- G. Wahba (1985). A comparison of GCV and GML for choosing the smoothing parameter in the generalized spline smoothing problem. Annals of Statistics, 13(4), 1378–1402.
- W. Härdle, P. Hall e J. S. Marron (1988). How far are automatically chosen regression smoothing parameters from their optimum? Journal of the American Statistical Association, 83(401).
- C. M. Hurvich, J. S. Simonoff e C.-L. Tsai (1998). Smoothing parameter selection in nonparametric regression using an improved Akaike information criterion. Journal of the Royal Statistical Society B, 60(2), 271–293.
- S. N. Wood (2011). Fast stable restricted maximum likelihood and marginal likelihood estimation of semiparametric generalized linear models. Journal of the Royal Statistical Society B, 73(1), 3–36.
- G. E. P. Box e K. B. Wilson (1951). On the experimental attainment of optimum conditions. Journal of the Royal Statistical Society B, 13(1), 1–45.
- M. D. McKay, R. J. Beckman e W. J. Conover (1979). A comparison of three methods for selecting values of input variables in the analysis of output from a computer code. Technometrics, 21(2), 239–245.
- J. Sacks, W. J. Welch, T. J. Mitchell e H. P. Wynn (1989). Design and analysis of computer experiments. Statistical Science, 4(4), 409–423.
- D. R. Jones, M. Schonlau e W. J. Welch (1998). Efficient global optimization of expensive black-box functions. Journal of Global Optimization, 13, 455–492.
- J. Bergstra e Y. Bengio (2012). Random search for hyper-parameter optimization. Journal of Machine Learning Research, 13, 281–305.
- J. Bergstra, R. Bardenet, Y. Bengio e B. Kégl (2011). Algorithms for hyper-parameter optimization. NeurIPS 24.
- J. Snoek, H. Larochelle e R. P. Adams (2012). Practical Bayesian optimization of machine learning algorithms. NeurIPS 25.
- K. Jamieson e A. Talwalkar (2016). Non-stochastic best arm identification and hyperparameter optimization. AISTATS.
- L. Li, K. Jamieson, G. DeSalvo, A. Rostamizadeh e A. Talwalkar (2018). Hyperband: a novel bandit-based approach to hyperparameter optimization. Journal of Machine Learning Research, 18(185), 1–52.
- S. Varma e R. Simon (2006). Bias in error estimation when using cross-validation for model selection. BMC Bioinformatics, 7, 91.
- G. C. Cawley e N. L. C. Talbot (2010). On over-fitting in model selection and subsequent selection bias in performance evaluation. Journal of Machine Learning Research, 11, 2079–2107.
- C. E. Rasmussen e C. K. I. Williams (2006). Gaussian Processes for Machine Learning, cap. 5. MIT Press. Verossimilhança marginal para hiperparâmetros.
- T. Hastie, R. Tibshirani e J. Friedman (2009). The Elements of Statistical Learning, 2ª ed., cap. 7. Springer.
- M. Feurer e F. Hutter (2019). Hyperparameter optimization. Em F. Hutter, L. Kotthoff e J. Vanschoren (orgs.), Automated Machine Learning, cap. 1. Springer. Uma revisão completa e gratuita.