Machine Learning · Insper

Seleção de Modelos

Abordagem fundamental

Quando um modelo erra, ele erra por quê — e o que fazer em cada caso

O caminho desta parte

  1. Duas maneiras de errarmuitos ajustes de uma verdade: subajuste e sobreajuste
  2. Decompor o erroviés² + variância + ruído, medidos
  3. Diagnosticar com curvascurva de validação, curva de aprendizado, o diagnóstico
  4. Girar o botãoo botão de complexidade de cada família, depois o lab: diagnosticar e tratar
Cada etapa responde a uma pergunta: de que jeitos um modelo erra? → de onde vem o erro de teste? → viés ou variância, sem conhecer a verdade? → o que mudar para corrigir?
Etapa 1 · De que jeitos um modelo erra?

Um exemplo resolvido, à mão, em \(x = 0{,}25\)

Cinco conjuntos de treino; cada um ajusta um polinômio e prevê em \(x = 0{,}25\), onde a verdade é \(f(0{,}25) = 1\). \(\hat f_i\): a previsão do conjunto \(i\); \(\overline{\hat f} = \tfrac{1}{5}\sum_i \hat f_i\): a média delas.

conjunto \(i\)12345
grau 10,240,570,600,390,43
grau 31,091,050,971,181,01

Preveja. Qual grau acerta em média? As cinco respostas de qual deles se espalham mais?

  • Viés \(= \overline{\hat f} - f(0{,}25)\). Grau 1: \(\overline{\hat f} = 0{,}446\), viés \(-0{,}554\), viés² 0,307. Grau 3: \(\overline{\hat f} = 1{,}060\), viés² 0,0036.
  • Variância \(= \tfrac{1}{5}\sum_i \big(\hat f_i - \overline{\hat f}\big)^2\). Grau 1: 0,017. Grau 3: 0,0052.
Viés: "na média sobre todas as amostras possíveis, eu acerto?" · Variância: "quanto minha resposta depende da amostra que eu recebi?"

Duas maneiras de errar

Vinte ajustes de grau 1, 3 e 12 sobre um seno

Verdade: \(\sin(2\pi x)\). Cada curva é um polinômio ajustado num conjunto de treino diferente de 30 pontos.

Grau 1: todas as retas erram do mesmo jeito. Grau 12: acertam na média, mas cada uma pode estar longe. São as duas falhas: subajuste e sobreajuste.

O alvo: viés e variância

Quatro alvos combinando viés baixo ou alto com variância baixa ou alta
Etapa 2 · De onde vem o erro de teste?

A decomposição

Num \(x\) fixo: a verdade \(f(x)\); uma observação nova \(y = f(x) + \varepsilon\), ruído \(\varepsilon\) de média 0 e variância \(\sigma^2\); a previsão \(\hat f(x)\), aleatória porque depende do conjunto de treino; \(\mathbb{E}\): a média sobre conjuntos de treino e ruído.

\[ \mathbb{E}\big[(y - \hat f(x))^2\big] = \underbrace{\big(f(x) - \mathbb{E}[\hat f(x)]\big)^2}_{\text{viés}^2} + \underbrace{\mathbb{E}\big[(\hat f(x) - \mathbb{E}[\hat f(x)])^2\big]}_{\text{variância}} + \underbrace{\sigma^2}_{\text{ruído}} \]
  1. \(y - \hat f = (f - \hat f) + \varepsilon\); o \(\varepsilon\) novo tem média 0 e é independente do conjunto de treino, então o termo cruzado some: \(\mathbb{E}[(y - \hat f)^2] = \mathbb{E}[(f - \hat f)^2] + \sigma^2\).
  2. Para qualquer \(Z\) aleatório: \(\mathbb{E}[Z^2] = (\mathbb{E}[Z])^2 + \operatorname{Var}(Z)\). Com \(Z = f - \hat f\): viés² + variância.

Viés: a melhor tentativa da família erra em média (uma reta não acompanha um seno). Variância: o preço de dar ouvidos à amostra. Ruído: a parte de \(y\) que não depende de \(x\); aqui \(\sigma^2 = 0{,}3^2 = 0{,}09\) e ninguém fica abaixo disso.

Em \(x = 0{,}25\): grau 1 ≈ 0,307 + 0,017 + 0,09 = 0,414; grau 3 ≈ 0,0036 + 0,0052 + 0,09 = 0,099.

Medido com 500 conjuntos de treino

Preveja. 500 conjuntos de treino de 30 pontos por grau. Em que grau o erro quadrático médio (MSE, do inglês mean squared error) de teste é o menor? E o que acontece com a variância no grau 12?

grauviés²variânciaruídosomaMSE de teste medido
00,4950,0200,090,6050,603
10,2040,0220,090,3160,314
30,0050,0180,090,1130,112
50,0000,0450,090,1350,135
70,0010,6350,090,7260,723
120,00138,8970,0938,98738,985
  • As colunas fecham por construção (a decomposição é uma identidade): a soma bate com o erro medido em dados novos, a menos do ruído novo (diferença ≤ 0,004).
  • O viés cai até zero; a variância sobe devagar e depois com violência. O fundo do U: grau 3. As variâncias grandes são ordens de grandeza: um punhado das 500 amostras produz a maior parte delas.

Três famílias, o mesmo U

Viés, variância e soma para polinômios, k-NN e árvore
  • O k-vizinhos mais próximos (k-NN, do inglês k-Nearest Neighbors) com \(k = 30\) (todos os pontos) é o polinômio de grau 0; no k-NN, \(k\) pequeno é o modelo complexo.
  • O 1-NN copia um rótulo ruidoso: variância ≈ \(\sigma^2\) (a variância do ruído, 0,09), erro de teste ≈ \(2\sigma^2\) (medido: 0,195).

Simulador: subajuste ↔ sobreajuste, ao vivo

Preveja. Deslize o grau de 0 (puro viés) a 12 (pura variância). Qual erro só cai e qual volta a subir?

Etapa 3 · Viés ou variância, sem conhecer a verdade?

Curva de validação: o U sem conhecer a verdade

MSE de treino e de validação por grau em 30 pontos
  • Treino só desce: 0,267 → 0,046. Escolher por ele dá sempre o mais complexo.
  • À esquerda: os dois altos e próximos — viés.
  • À direita: treino cai, validação sobe até 1,748 — variância.
  • Fundo no grau 3 (0,114): o mesmo da simulação com 500 amostras.
Uma curva de validação varia a complexidade com os dados fixos.

Curva de aprendizado: mais dados valem a pena?

Preveja. Cada vez mais pontos de treino: o erro do grau 1 continua caindo? E o do grau 9?

Curvas de aprendizado de grau 1 e grau 9
  • Mediana de 300 conjuntos de treino por tamanho.
  • Grau 1: treino e teste se encontram perto de 0,29 e ficam lá. Mais dados não ajudam.
  • Grau 9: erro de teste 5,6 com 12 pontos, no piso de ruído por volta de 200. Com os coeficientes fixos, os dados fecham a distância.
Uma curva de aprendizado varia os dados com o modelo fixo. "Complexo demais" é relativo à quantidade de dados.

O diagnóstico

Fluxograma do diagnóstico viés ou variância
Etapa 4 · O que mudar para corrigir?

Toda família tem um botão

Preveja. Para deixar cada modelo mais complexo, para que lado você gira degree, alpha, C, n_neighbors, max_depth e min_samples_leaf?

O U da complexidade e a direção de cada botão

Os que giram "ao contrário" confundem: alpha, k e min_samples_leaf maiores deixam o modelo mais simples.

Resumo

  1. Erro de teste = viés² + variância + ruído. O ruído é um piso.
  2. Viés: treino ≈ validação, ambos altos. Variância: treino ≪ validação.
  3. Curva de validação varia a complexidade; curva de aprendizado varia os dados.
  4. Num modelo de capacidade fixa, mais dados curam a variância e não o viés; mais capacidade só cura viés.
  5. Todo modelo tem um botão de complexidade e alguns giram ao contrário.
sintomadiagnósticoo que fazer
treino ≈ validação, ambos altosviésmais capacidade, atributos melhores
treino ≪ validação, distância fechandovariânciamais dados, mais regularização
Lab fundamental · cerca de 40 min, em duplas

Preços de casas: diagnosticar e tratar, passos 1 a 6

  • California housing: 20.640 distritos, 9 atributos, alvo = valor mediano das casas.
  • Três famílias (linear, k-NN, árvore): qual sofre de viés e qual de variância? Mais dados ajudariam? Qual botão girar?
  • Notebook no Colab: nada para baixar. Salve uma cópia no seu Drive.
  • Em cada passo, responda o Preveja antes de rodar.
  • Simulações: a variância, vista de perto (passo 3) e o alpha como botão contínuo (passo 6).

Ritmo: passos 1 a 3 e a primeira simulação em 15 min; passos 4 a 6 e a segunda em 25 min.