Impulsionando Técnicas em Aprendizado de Máquina: Aumentando a Precisão e Reduzindo Erros
Publicados: 2025-01-16Boosting é uma técnica poderosa de aprendizado de conjunto em aprendizado de máquina (ML) que melhora a precisão do modelo, reduzindo erros. Ao treinar modelos sequenciais para resolver deficiências anteriores, o boosting cria sistemas preditivos robustos. Este guia aborda como funciona o boosting; suas vantagens, desafios e aplicações; e como ele se compara ao ensacamento.
Índice
- O que está impulsionando?
- Viés vs. variância
- Impulsionar vs. ensacamento
- Como funciona o reforço
- Tipos de algoritmos de boost
- Aplicações de boosting
- Vantagens de impulsionar
- Desafios e limitações do boosting
O que está impulsionando?
Boosting é uma técnica de aprendizagem em conjunto que treina novos modelos sequenciais para corrigir os erros dos modelos anteriores no conjunto. As técnicas de aprendizagem em conjunto são formas de usar vários modelos semelhantes para melhorar o desempenho e a precisão. No boosting, os novos modelos são treinados apenas nos erros anteriores do conjunto. Em seguida, os novos modelos juntam-se ao conjunto para ajudá-lo a fornecer previsões mais precisas. Qualquer nova entrada é passada pelos modelos e agregada para reduzir os erros em todos os modelos.
A precisão é um conceito amplo. O reforço aumenta especificamente o desempenho do modelo, reduzindo o viés do modelo (e, em menor grau, a variância). Variância e viés são dois conceitos importantes de ML que abordaremos na próxima seção.
Viés vs. variância
Viés e variância são duas propriedades fundamentais do aprendizado de máquina como um todo. O objetivo de qualquer algoritmo de ML é reduzir a variância e o viés dos modelos. Dada a sua importância, explicaremos mais sobre cada um e por que geralmente estão em desacordo.
Para explicar cada conceito, tomemos o exemplo da previsão do preço de venda de casas com dados sobre suas características (por exemplo, metragem quadrada, número de quartos, etc.).
Viés
O viés é uma medida de quão errado um modelo está, em média. Se uma casa foi realmente vendida por US$ 400.000 e o modelo previu US$ 300.000, o viés para esse ponto de dados é de -US$ 100.000. Calcule a média do viés de todo o conjunto de dados de treinamento e você terá o viés de um modelo.
O preconceito geralmente resulta de modelos muito simples para captar as relações complexas entre recursos e resultados. Um modelo muito simples pode aprender a observar apenas a metragem quadrada e errar consistentemente, mesmo nos dados de treinamento. Na linguagem do ML, isso é chamado de underfitting.
Variância
A variância mede o quanto os resultados de um modelo diferem dados dados semelhantes. Na maioria dos casos, casas em bairros semelhantes e com metragem quadrada, número de quartos e número de banheiros semelhantes devem ter preços semelhantes. Mas um modelo com alta variância pode gerar preços totalmente diferentes. Por que?
O modelo pode ter aprendido relações espúrias com os dados de treinamento (por exemplo, pensar que os números das casas afetam o preço). Estas relações espúrias podem então abafar as relações úteis nos dados. Geralmente, os modelos complexos captam essas relações irrelevantes, o que é chamado de overfitting.
Troca entre polarização e variância
Idealmente, você deseja um modelo de ML de baixo viés e baixa variância que capte os verdadeiros relacionamentos nos dados, mas nada mais. No entanto, isso é difícil de fazer na prática.
Aumentar a sofisticação ou complexidade de um modelo pode reduzir o seu viés, dando-lhe o poder de encontrar padrões mais profundos nos dados. No entanto, este mesmo poder também pode ajudá-lo a encontrar padrões irrelevantes e vice-versa, tornando difícil resolver este compromisso entre viés e variância.
Boosting melhora o viés e a variância
Boosting é uma técnica de aprendizagem em conjunto muito popular porque pode reduzir tanto o viés quanto a variância (embora a redução da variância não seja tão comum).
Ao corrigir erros anteriores, o boosting reduz a taxa média de erro e o tamanho do conjunto de modelos, diminuindo o viés.
Ao usar vários modelos, os erros dos modelos individuais podem ser cancelados, levando potencialmente a uma variância menor.
Impulsionar vs. ensacamento
Na aprendizagem em conjunto, as duas técnicas mais comuns são boosting e bagging. Bagging pega o conjunto de dados de treinamento, cria subconjuntos aleatórios dele e treina um modelo diferente em cada subconjunto. Em seguida, os modelos são usados em conjunto para fazer previsões. Isso leva a algumas diferenças entre ensacamento e reforço, que detalhamos abaixo.
Ensacamento | Impulsionando | |
Treinamento de modelo | Os modelos são treinados em paralelo em diferentes subconjuntos de dados. | Os modelos são treinados sequencialmente, com cada modelo focando nos erros do modelo anterior. |
Foco na redução de erros | Reduz a variação | Reduz preconceito |
Algoritmos comuns | Floresta aleatória, árvores de decisão ensacadas | AdaBoost, aumento de gradiente, XGBoost |
Risco de sobreajuste | Menor risco de overfitting devido à amostragem aleatória | Maior risco de overfitting |
Complexidade computacional | Mais baixo | Mais alto |
Ambas as técnicas são comuns, mas o reforço é a escolha mais popular porque pode reduzir o preconceito e a variação.
Como funciona o reforço
Vamos ver como funciona o boosting. Essencialmente, o boosting consiste em treinar cada novo modelo nos pontos de dados que os modelos anteriores erraram. Existem três partes:
- Ponderando os dados de treinamento por erros
- Treinando um novo modelo neste conjunto de dados de erro ponderado
- Adicionando o novo modelo ao conjunto
Para começar, vamos supor que treinamos o modelo inicial (um conjunto de um).
Ponderando os dados de treinamento por erros
Executamos os dados de treinamento por meio do conjunto existente e observamos para quais entradas o conjunto forneceu previsões incorretas. Em seguida, criamos uma versão modificada do conjunto de dados de treinamento onde essas entradas problemáticas são mais representadas ou mais importantes.
Treinando o novo modelo
Usamos o conjunto de dados modificado que criamos para treinar um novo modelo, que é do mesmo tipo dos outros modelos do conjunto. No entanto, este novo modelo concentra-se mais nos exemplos difíceis dos dados de treinamento, por isso provavelmente terá um desempenho melhor neles. Essa melhoria no desempenho do erro é uma parte importante da redução do viés.
Incorporando o novo modelo
O modelo recém-treinado é adicionado ao conjunto e suas previsões são ponderadas de acordo com sua precisão. Paralelamente, novas entradas são passadas para cada modelo do conjunto, e as saídas finais de cada modelo são ponderadas para obter a saída do conjunto.
Para tarefas de classificação (geralmente escolher entre dois rótulos em problemas de reforço), a classe com a maior soma de votos ponderados é escolhida como a previsão do conjunto.
Para tarefas de regressão, a previsão do conjunto é a média ponderada da previsão de cada modelo.
Neste ponto, o processo pode ser repetido se o viés ainda for muito alto.
Tipos de algoritmos de boost
Existem diversas variantes de algoritmos de boost, com algumas grandes diferenças entre eles. Os mais populares são o reforço adaptativo (AdaBoost), o reforço de gradiente, o reforço de gradiente extremo (XGBoost) e o reforço de gato. Abordaremos cada um deles.
AdaBoost
AdaBoost é muito semelhante ao algoritmo de boost que apresentamos anteriormente: os dados de treinamento que apresentam problemas para conjuntos anteriores são mais ponderados ao treinar o próximo modelo. AdaBoost foi um dos algoritmos de boosting originais e é conhecido por sua simplicidade.
AdaBoost é menos propenso a overfitting do que outros algoritmos de boosting, uma vez que novos modelos veem diferentes variações (com pontos de dados concretos sendo mais comuns) do conjunto de dados de treinamento. Mas, em comparação com outras técnicas de boosting, é mais sensível a dados discrepantes e não reduz tanto o viés.
Aumento de gradiente
O aumento de gradiente é uma abordagem única para o aumento. Em contraste com o reforço adaptativo, os novos modelos não obtêm uma versão ponderada pelo erro do conjunto de dados de treinamento. Eles obtêm o conjunto de dados original. No entanto, em vez de tentar prever as saídas das entradas no conjunto de dados, eles tentam prever o gradiente negativo do conjunto anterior em cada entrada.
O gradiente negativo é essencialmente a direção na qual os pesos e as previsões do modelo do conjunto precisariam se mover para diminuir o erro – para se aproximar da resposta certa. Os gradientes negativos são adicionados (com um fator de ponderação aplicado) à previsão de saída do conjunto anterior para aproximá-la da correção.
O gradiente boosting tem muito melhor desempenho do que o AdaBoosting, especialmente em dados complexos. Há também mais hiperparâmetros para ajustar, o que dá às pessoas mais controle, mas também aumenta a necessidade de experimentação.
XGBoost
XGBoost (ou reforço de gradiente extremo) é uma versão altamente otimizada de aumento de gradiente. O XGBoost torna o treinamento e a inferência de aumento de gradiente muito mais paralelos. O XGBoost também adiciona regularização (ou seja, penalidades por complexidade) para evitar overfitting e lida muito melhor com dados ausentes. Finalmente, o XGBoost é muito mais escalonável para grandes conjuntos de dados ou cargas de trabalho.
O XGBoost tem ainda mais desempenho do que o aumento de gradiente e foi um dos algoritmos de ML mais populares na década de 2010. Mas também é mais difícil de interpretar e muito mais caro do ponto de vista computacional para ser executado.
CatBoost
CatBoost é uma forma de aumento de gradiente projetada para funcionar em dados categóricos. Dados categóricos são dados em que os valores podem estar em alguns grupos limitados. Aqui estão alguns exemplos:
- Sim–não dados (por exemplo, a casa tem garagem?)
- Categorias de cores (por exemplo, vermelho, azul, verde)
- Categorias de produtos (por exemplo, eletrônicos, roupas, móveis)
Os modelos de aumento de gradiente geralmente não funcionam bem com dados categóricos, enquanto o CatBoost funciona. CatBoost também pode lidar com dados contínuos, tornando-se outra opção popular de reforço. Tal como acontece com outros modelos de aumento de gradiente, CatBoost sofre de complexidade computacional e overfitting.
Aplicações de boosting
O boosting pode ser aplicado a quase todos os problemas de ML, uma vez que os erros e preconceitos costumam ser maiores do que gostaríamos. Classificação e regressão são duas das grandes subdivisões do ML, e o reforço se aplica a ambas. Recomendações de conteúdo e detecção de fraude são dois exemplos de problemas de ML que as empresas enfrentam e que o impulso também pode ajudar.
Classificação e regressão
Classificação e regressão são duas das principais tarefas de ML. Um usuário pode querer prever se uma imagem contém um cachorro ou um gato (classificação) ou pode querer prever o preço de venda de uma casa (regressão). O Boosting funciona bem para ambas as tarefas, especialmente quando os modelos subjacentes são fracos ou pouco complexos.
Recomendações de conteúdo
O Boosting aprimora as recomendações de conteúdo (por exemplo, filmes sugeridos pela Netflix para você) melhorando iterativamente a precisão da previsão para as preferências do usuário. Quando um modelo de recomendação não consegue capturar certos padrões de visualização (como preferências sazonais ou escolhas dependentes do contexto), o boosting cria modelos adicionais que se concentram especificamente nesses padrões perdidos. Cada novo modelo na sequência dá peso extra às preferências do usuário anteriormente mal previstas, resultando em erros menores.
Detecção de fraude
Na detecção de fraudes, um caso de uso comum para empresas financeiras, o impulsionamento se destaca aprendendo progressivamente com transações classificadas incorretamente. Se os modelos iniciais não perceberem padrões de fraude sofisticados, os modelos mais recentes e reforçados visam especificamente estes casos problemáticos. A técnica adapta-se particularmente bem às mudanças nas táticas de fraude, atribuindo pesos mais elevados a erros de classificação recentes, permitindo ao sistema manter altas taxas de detecção.
Vantagens de impulsionar
O reforço é excelente para reduzir o viés do modelo e, em menor grau, a variância. Em comparação com outras técnicas de conjunto, requer menos dados e dá às pessoas mais controle sobre o overfitting.
Viés e variância reduzidos
Alto viés significa que os modelos geralmente estão errados. Boosting é uma ótima técnica para reduzir preconceitos em modelos. Como cada modelo se concentra na correção dos erros dos modelos anteriores, o conjunto como um todo reduz sua taxa de erro.
A variância reduzida também tem um efeito colateral: modelos mais recentes podem ter diferentes combinações de dados de treinamento, permitindo que erros em modelos diferentes se anulem.
Precisa de menos dados
Ao contrário de outras técnicas de conjunto, o boosting não precisa de um grande conjunto de dados para funcionar bem. Como cada novo modelo se concentra principalmente nos erros dos modelos mais antigos, ele tem um objetivo restrito e não precisa de muitos dados. O novo modelo pode usar os dados de treinamento existentes e treinar repetidamente com base nos erros.
Mais controle sobre overfitting
O Boosting possui alguns hiperparâmetros que controlam o quanto cada novo modelo contribui para a previsão do conjunto. Ao modificar esses hiperparâmetros, os usuários podem reduzir a influência de novos modelos. Isso aumentaria o viés, mas potencialmente reduziria a variância, dando aos usuários o controle de onde eles desejam chegar na compensação entre viés e variância.
Desafios e limitações do boosting
Boosting tem suas ressalvas. Requer mais tempo para treinar e usar, é sensível a dados discrepantes e requer mais ajuste de hiperparâmetros.
Maior tempo de treinamento
No boosting, cada novo modelo depende dos erros do conjunto anterior. Isso significa que os modelos devem ser treinados um de cada vez, levando a longos tempos de treinamento. Outra desvantagem é que o treinamento sequencial significa que você pode não saber se o reforço será eficaz até treinar uma dúzia de modelos.
Sensibilidade atípica
Ao impulsionar, os modelos mais recentes concentram-se apenas nos erros dos modelos anteriores. Alguns dados discrepantes no conjunto de treinamento que deveriam ser ignorados podem, em vez disso, tornar-se o único foco de modelos posteriores. Isto pode degradar o desempenho geral do conjunto e desperdiçar tempo de treinamento. Pode ser necessário um processamento cuidadoso de dados para neutralizar os efeitos de valores discrepantes.
Mais ajustes de hiperparâmetros
A vantagem de dar aos usuários mais controle sobre o overfitting também significa que os usuários precisam ajustar mais hiperparâmetros para encontrar um bom equilíbrio entre viés e variância. Freqüentemente, são necessários vários experimentos de reforço, o que torna o treinamento sequencial ainda mais tedioso. Boosting requer muitos recursos computacionais.