IA 101
O que é Gradient Boosting?

Um tipo comum de modelo de aprendizado de máquina que se mostrou extremamente útil em competições de ciência de dados é o modelo de gradient boosting. Gradient boosting é basicamente o processo de converter modelos de aprendizado fracos em modelos de aprendizado fortes. No entanto, como exatamente isso é alcançado? Vamos dar uma olhada mais de perto nos algoritmos de gradient boosting e entender melhor como um modelo de gradient boosting converte aprendizes fracos em aprendizes fortes.
Definindo Gradient Boosting
Este artigo visa dar a você uma boa intuição do que é o gradient boosting, sem muitas quebras na matemática que subjaz aos algoritmos. Uma vez que você tenha uma apreciação de como o gradient boosting opera em um nível alto, você é encorajado a ir mais fundo e explorar a matemática que o torna possível.
Vamos começar definindo o que significa “boostar” um aprendiz. Aprendizes fracos são convertidos em aprendizes fortes ajustando as propriedades do modelo de aprendizado. Exatamente qual algoritmo de aprendizado está sendo boostado?
Modelos de boosting funcionam aumentando outro modelo de aprendizado de máquina comum, uma árvore de decisão.
Um modelo de árvore de decisão funciona dividindo um conjunto de dados em porções menores e menores, e uma vez que os subconjuntos não possam ser divididos mais, o resultado é uma árvore com nós e folhas. Nós em uma árvore de decisão são onde as decisões sobre os pontos de dados são feitas usando diferentes critérios de filtragem. As folhas em uma árvore de decisão são os pontos de dados que foram classificados. Algoritmos de árvore de decisão podem lidar com dados numéricos e categóricos, e as divisões na árvore são baseadas em variáveis/recursos específicos.

Ilustração da forma como os modelos de boosting são treinados.
Foto: SeattleDataBuy via Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)
Um tipo de algoritmo de boosting é o algoritmo AdaBoost. Algoritmos AdaBoost começam treinando um modelo de árvore de decisão e atribuindo um peso igual a cada observação. Depois que a primeira árvore é avaliada para precisão, os pesos para as diferentes observações são ajustados. Observações que foram fáceis de classificar têm seus pesos reduzidos, enquanto observações que foram difíceis de classificar têm seus pesos aumentados. Uma segunda árvore é criada usando esses pesos ajustados, com o objetivo de que as previsões da segunda árvore sejam mais precisas do que as previsões da primeira árvore.
O modelo agora consiste nas previsões para a árvore original e a nova árvore (ou Árvore 1 + Árvore 2). A precisão da classificação é avaliada novamente com base no novo modelo. Uma terceira árvore é criada com base no erro calculado para o modelo, e os pesos são ajustados novamente. Esse processo continua por um número determinado de iterações, e o modelo final é um modelo de ensemble que usa a soma ponderada das previsões feitas por todas as árvores anteriormente construídas.
O processo descrito acima usa Árvores de Decisão e os preditores/modelos base, mas uma abordagem de boosting pode ser realizada com uma ampla gama de modelos, como os muitos classificadores e regressores padrão. Os conceitos principais a entender são que os preditores subsequentes aprendem com os erros cometidos pelos anteriores e que os preditores são criados sequencialmente.
A principal vantagem dos algoritmos de boosting é que eles levam menos tempo para encontrar as previsões atuais em comparação com outros modelos de aprendizado de máquina. No entanto, é necessário ter cuidado ao empregar algoritmos de boosting, pois eles são propensos a sobreajuste.
Gradient Boosting
Agora vamos olhar para um dos algoritmos de boosting mais comuns. Modelos de Gradient Boosting (GBM) são conhecidos por sua alta precisão, e eles aumentam os princípios gerais usados no AdaBoost.
A principal diferença entre um Modelo de Gradient Boosting e o AdaBoost é que os GBMs usam um método diferente de calcular quais aprendizes estão identificando mal os pontos de dados. O AdaBoost calcula onde um modelo está com desempenho ruim examinando os pontos de dados que são fortemente ponderados. Enquanto isso, os GBMs usam gradientes para determinar a precisão dos aprendizes, aplicando uma função de perda a um modelo. Funções de perda são uma forma de medir a precisão do ajuste de um modelo em um conjunto de dados, calculando um erro e otimizando o modelo para reduzir esse erro. Os GBMs permitem que o usuário otimize uma função de perda especificada com base em seu objetivo desejado.
Tomando a função de perda mais comum – Erro Quadrático Médio (MSE) – como exemplo, gradiente descendente é usado para atualizar as previsões com base em uma taxa de aprendizado pré-definida, visando encontrar os valores onde a perda é mínima.
Para esclarecer:
Novas previsões do modelo = variáveis de saída – previsões imperfeitas antigas.
Em um sentido mais estatístico, os GBMs visam encontrar padrões relevantes nos resíduos de um modelo, ajustando o modelo para se ajustar ao padrão e trazer os resíduos o mais próximo possível de zero. Se você realizasse uma regressão nas previsões do modelo, os resíduos seriam distribuídos em torno de 0 (ajuste perfeito), e os GBMs estão encontrando padrões dentro dos resíduos e atualizando o modelo em torno desses padrões.
Em outras palavras, as previsões são atualizadas para que a soma de todos os resíduos esteja o mais próxima possível de 0, o que significa que os valores previstos estarão muito próximos dos valores reais.
Observe que uma ampla variedade de outras funções de perda (como perda logarítmica) pode ser usada por um GBM. O MSE foi selecionado acima para fins de simplicidade.
Variações em Modelos de Gradient Boosting
Modelos de Gradient Boosting são algoritmos gananciosos que são propensos a sobreajuste em um conjunto de dados. Isso pode ser protegido com vários métodos diferentes que podem melhorar o desempenho de um GBM.
Os GBMs podem ser regulamentados com quatro métodos diferentes: Shrinkage, Restrições de Árvore, Boosting de Gradiente Estocástico e Aprendizado Penalizado.
Shrinkage
Como mencionado anteriormente, nos GBMs, as previsões são somadas juntas de forma sequencial. No “Shrinkage”, as adições de cada árvore à soma geral são ajustadas. Pesos são aplicados que desaceleram a taxa de aprendizado do algoritmo, necessitando que mais árvores sejam adicionadas ao modelo, o que normalmente melhora a robustez e o desempenho do modelo. A compensação é que o modelo leva mais tempo para treinar.
Restrições de Árvore
Restringir a árvore com várias ajustes, como adicionar mais profundidade à árvore ou aumentar o número de nós ou folhas na árvore, pode dificultar que o modelo sobreajuste. Impor uma restrição ao número mínimo de observações por divisão tem um efeito semelhante. Mais uma vez, a compensação é que o modelo leva mais tempo para treinar.
Amostragem Aleatória
Os aprendizes individuais podem ser criados por meio de um processo estocástico, com base em subamostras aleatórias do conjunto de dados de treinamento. Isso tem o efeito de reduzir as correlações entre as árvores, o que protege contra o sobreajuste. O conjunto de dados pode ser subamostrado antes de criar as árvores ou antes de considerar uma divisão na árvore.
Aprendizado Penalizado
Além de restringir o modelo limitando a estrutura da árvore, é possível usar uma árvore de regressão. Árvores de regressão têm valores numéricos anexados a cada uma das folhas, e esses funcionam como pesos e podem ser ajustados com funções de regularização comuns, como L1 e L2.












