Machine Learning · Insper

Gradient Boosting

Abordagem fundamental

Árvores fracas, uma depois da outra, cada uma corrigindo o que as anteriores erraram

O caminho desta parte

  1. Somar, não tirar a médiaárvores pequenas em sequência removem o viés
  2. Boosting à mãoajustar os resíduos, somá-los encolhidos
  3. Resíduo é gradientedescida do gradiente nas previsões
  4. Frear e parartaxa de aprendizado e parada antecipada
Cada etapa responde a uma pergunta: por que somar árvores em vez de tirar a média? → o que cada nova árvore aprende? → por que o nome gradient boosting? → quantas árvores e que tamanho de passo?
Etapa 1 · por que somar árvores em vez de tirar a média?

Tirar a média ou somar?

Um toco, uma floresta de tocos, um boosting de tocos e uma floresta de árvores profundas numa senoide
200 pontos, senoideMSE de teste
um toco0,608
floresta de 200 tocos0,572
boosting de 200 tocos0,280
uma árvore profunda0,509
floresta de 200 árvores profundas0,369

Piso do ruído: 0,25.

A média remove variância, não viés: 200 tocos em média ainda são um degrau. A soma remove viés: tocos ajustados aos erros seguem a curva.

Duas estratégias com o mesmo bloco

Random forest em paralelo e gradient boosting em sequência
Etapa 2 · o que cada nova árvore aprende?

Boosting à mão: seis pontos

\(x\)123456
\(y\)23491014
  1. Comece com uma constante: a média, \(F_0 = 7\).
  2. Calcule os resíduos \(y - F_0\): −5, −4, −3, 2, 3, 7.
  3. Ajuste um toco aos resíduos, não a \(y\): o melhor corte é \(x < 3{,}5\), folhas −4 / +4 (SSE 16; o segundo melhor, 37).
  4. Some-o, encolhido por \(\eta = 0{,}5\): \(F_1 = 5, 5, 5, 9, 9, 9\). Repita.

O laço do boosting

O laço: previsões, pseudo-resíduos, toco ajustado, soma encolhida, com os números da primeira rodada

Três rodadas

F0 a F3 com MSE de treino 18,67, 6,67, 2,92 e 1,23 e os tocos ajustados aos resíduos
MSE de treino: 18,67 → 6,67 → 2,92 → 1,23. A rodada 2 isola o último ponto (resíduo 5); a rodada 3 repete o corte da rodada 1: nada proíbe. O GradientBoostingRegressor dá os mesmos cortes e folhas.

Simulador: veja o resíduo encolher

Preveja. O mesmo laço em 60 pontos. Ponha ν = 1 com 6 tocos, depois ν = 0,15 com 40: qual ajusta melhor e como cada um chega lá?

Etapa 3 · por que o nome gradient boosting?

Por que "gradient": resíduos são um gradiente

\[ L(y, F) = \tfrac{1}{2}(y - F)^2, \qquad -\frac{\partial L}{\partial F} = y - F \]
  • O resíduo é o gradiente negativo da perda em relação à previsão.
  • Boosting é gradiente descendente sobre as previsões; a árvore transforma o gradiente, conhecido só nos pontos de treino, numa função de \(x\).

F0(x) = a constante que minimiza Σ L(yᵢ, c)
para m = 1 .. M:
    rᵢ = −∂L(yᵢ, F)/∂F em F = F_{m−1}(xᵢ)     # pseudo-resíduos
    ajuste uma pequena árvore h_m a (xᵢ, rᵢ)
    F_m(x) = F_{m−1}(x) + η · h_m(x)
  
Etapa 4 · quantas árvores e que tamanho de passo?

Taxa de aprendizado e número de árvores

RMSE de validação contra o número de árvores para quatro taxas de aprendizado e quatro tamanhos de árvore
  • \(\eta = 1\): mínimo depois de 16 árvores (54,8 mil) e sobe até 60,7, enquanto o treino cai a 0,9: sobreajuste somando árvores.
  • \(\eta\) menor chega mais longe: 46,9 com \(\eta = 0{,}3\), 45,5 com \(\eta = 0{,}1\) (714 árvores).

A parada antecipada escolhe o número de árvores

  • Separa uma fatia do treino (validation_fraction), mede a perda depois de cada árvore e para depois de n_iter_no_change rodadas sem melhora.
California housingárvores mantidasRMSE de validação
\(\eta = 1{,}0\)4156,4
\(\eta = 0{,}3\)8747,4
\(\eta = 0{,}1\)33746,0
O número de árvores vira uma saída. Com \(\eta\) grande, as árvores extras depois do mínimo já sobreajustam; dê mais paciência a taxas pequenas.

Resumo

  1. A média corta variância; a soma corta viés.
  2. Cada árvore é ajustada aos resíduos e entra encolhida: \(F_m = F_{m-1} + \eta\, h_m\).
  3. Os resíduos são o gradiente negativo da perda.
  4. Mais árvores podem piorar; \(\eta\) menor precisa de mais árvores e chega mais longe.
  5. A parada antecipada escolhe o número de árvores.
sintomao que fazer
validação mínima cedo e depois subindobaixar \(\eta\), ligar a parada antecipada
métricas boas demais para ser verdadeprocurar uma coluna que conhece o futuro
Lab fundamental · cerca de 35 min, em duplas

Quem vai assinar? Passos 1 a 5

  • Telemarketing de um banco português: 45.211 clientes, 11,7% assinaram um depósito a prazo. Métrica: precisão média (AP).
  • Um vazamento à vista; o booster padrão contra a regressão logística; taxa de aprendizado com parada antecipada.
  • Notebook no Colab: nada para baixar; XGBoost e LightGBM já instalados.
  • Em cada passo, responda o Preveja antes de rodar.
  • Simulações: uma floresta de tocos contra um boosting de tocos (passo 4) e mais árvores, sem freio (passo 5).

Ritmo: passos 1 a 3 em 10 min; passo 4 e a primeira simulação em 12 min; passo 5 e a segunda em 13 min.