Aprendizado em Conjunto
Às vezes, um único modelo não é o suficiente para garantir um bom desempenho em IA. A aprendizagem em conjunto em machine learning é uma abordagem poderosa que combina as previsões de vários modelos para criar uma previsão final mais robusta e precisa.
Modelos de machine learning processam dados de entradas e produzem um resultado. O resultado é uma previsão baseada no padrão que os modelos aprendem durante o processo de treinamento. Mas, em muitos casos, apenas um modelo não é suficiente. Quando e por que precisamos de vários modelos? E como treiná-los? Estes são os temas deste post.
Por que usar múltiplos modelos?
A ideia-chave por trás do aprendizado em conjunto é que, agregando as previsões de vários modelos básicos ou fracos, podemos criar um modelo forte, mais robusto e preciso. A aprendizagem em conjunto aproveita os pontos fortes de vários modelos para criar uma previsão melhor do que qualquer modelo único poderia alcançar por conta própria.
Modelos de aprendizado em conjunto, também conhecidos como ensemble models, costumam apresentar melhor desempenho preditivo e generalização. Além disso, eles têm boa capacidade para lidar com relacionamentos complexos em dados e são particularmente eficazes quando o conjunto de dados é limitado ou ruidoso.
Um único algoritmo pode não fazer a previsão perfeita para um determinado conjunto de dados. Os algoritmos de machine learning têm suas limitações e produzir um modelo com alta precisão é um desafio. Se construirmos e combinarmos vários modelos, teremos a chance de aumentar a precisão geral.
O treinamento de aprendizado em conjunto
A implementação de aprendizado em conjunto envolve treinar vários modelos individuais, geralmente chamados de alunos básicos, alunos fracos ou ainda estimadores de base. Esses modelos podem ser do mesmo tipo (por exemplo, várias árvores de decisão) ou de tipos diferentes (por exemplo, árvores de decisão, máquinas de vetores de suporte). Após o treinamento, as previsões desses modelos individuais são combinadas para produzir uma previsão final. Existem diferentes maneiras de fazer essa combinação. Entre as principais estão:
Média: as previsões de todos os modelos são usadas para calcular uma previsão média. Essa técnica é comumente usada para problemas de regressão.
Votação: para tarefas de classificação, a previsão final nesta técnica é feita com base na votação majoritária.
Média ponderada: às vezes, precisamos atribuir pesos a alguns modelos/algoritmos para produzir as previsões finais. Isso confere mais influência aos modelos que tiveram melhor desempenho historicamente.
Tipos principais de aprendizado em conjuntos
Embora haja um número aparentemente ilimitado de conjuntos que podem ser desenvolvidos para um problema de modelagem preditiva, existem três métodos que dominam o campo do aprendizado em conjunto. Em vez de desenvolverem algoritmos em si, cada método é um campo de estudo que gerou muitos métodos mais especializados. As três principais classes de métodos de aprendizado em conjunto são bagging (ensacamento), boosting (aumento) e stacking (empilhamento). Como essas são estratégias importantes em machine learning, é importante ter uma compreensão das ideias-chave por trás de cada uma delas.
Bagging (bootstrap aggregation)
Bagging, ou ensacamento, é um método de aprendizado em conjunto que busca um grupo diversificado de modelos variando os dados de treinamento. O nome bagging veio da abreviatura de Bootstrap AGGregatING. Como o nome indica, os dois principais ingredientes do bagging são bootstrap e agregação.
Bagging envolve normalmente o uso de um único algoritmo de machine learning, quase sempre uma árvore de decisão. Porém, o treinamento de cada modelo é feito usando uma amostra diferente do mesmo conjunto de dados de treinamento. As previsões feitas pelos membros do conjunto são então combinadas usando estatísticas simples, como votação ou média.
A chave do bagging é a maneira pela qual cada amostra do conjunto de dados é preparada para treinar os membros do conjunto. Geralmente, cada modelo obtém sua própria amostra exclusiva do conjunto de dados. Bagging adota a distribuição de bootstrap para obter os subconjuntos de dados para treinar os alunos básicos.
Esquema representativo do bagging (adaptado daqui).
Boosting
Boosting é um método de aprendizado em conjunto que treina modelos sequencialmente. O foco dessa técnica está nos modelos e em suas previsões. Como o boosting treina modelos sequencialmente, cada novo modelo na sequência se concentra nos erros cometidos pelos modelos anteriores.
Na prática, o boosting combina modelos por meio de uma soma ponderada, aumentando os pesos para instâncias classificadas incorretamente. Portanto, a principal propriedade do boosting é corrigir erros de previsão. Os modelos são ajustados e adicionados ao conjunto sequencialmente, de modo que o segundo modelo tenta corrigir as previsões do primeiro modelo, o terceiro corrige o segundo modelo e assim por diante.
Um dos principais métodos de boosting é o Adaptive Boosting (AdaBoost). Esse método consiste em um conjunto de algoritmos, onde construímos modelos em cima de vários modelos do tipo alunos fracos. Esses alunos são chamados de fracos porque geralmente são simples e com recursos de previsão limitados. A capacidade de adaptação do AdaBoost tornou essa técnica um dos primeiros classificadores binários bem-sucedidos.
Stacking
Stacking, também conhecido como generalização empilhada ou empilhamento, é um método de aprendizado em conjunto que busca um grupo diversificado de membros. Ele opera variando os tipos de modelo que se ajustam aos dados de treinamento e usando um modelo para combinar previsões. Ou seja, o stacking é um procedimento geral em que um aluno é treinado para combinar os alunos individuais.
Os alunos individuais são chamados de alunos de primeiro nível ou nível 0, enquanto o combinador é chamado de aluno de segundo nível, nível 1, ou meta-aluno. A hierarquia de dois níveis de modelos é a abordagem mais comum, embora mais camadas possam ser usadas. Portanto, o stacking é um processo de aprendizagem que cria um modelo mais forte a partir das previsões de modelos fracos. O modelo agregador usa a previsão de cada modelo do nível inferior como recurso.
Qualquer modelo de machine learning pode ser usado para agregar as previsões, embora seja comum o uso de um modelo linear mais simples, como regressão linear para regressão e regressão logística para classificação. Isso direciona a complexidade do método para os modelos do conjunto de nível inferior.
As limitações do aprendizado em conjunto
A combinação de decisões de vários modelos pode ajudar a melhorar o desempenho geral de uma aplicação de machine learning. Mas isso tem um custo. Computacionalmente, o aprendizado em conjunto é muito mais caro do que o uso de modelos simples. Mas essa não é a única desvantagem da técnica.
Os modelos de machine learning, especialmente aqueles colocados em ambientes de produção, devem ser simples de explicar. Porém, a explicabilidade de um sistema que combina vários modelos é drasticamente reduzida.
Outra limitação se refere aos tempos de inferência. A quantidade de tempo necessário para passar os dados de entrada por vários modelos pode ser grande e o impacto disso precisa ser considerado caso a caso. Portanto, aprendizado em conjunto em IA é uma técnica poderosa e que, geralmente, apresenta desempenho melhor em comparação com outras estratégias baseadas no uso de um único modelo. Mas seu uso precisa ser planejado para que suas vantagens compensem suas limitações.
Você pode ler mais sobre aprendizado em conjunto aqui, aqui e aqui.
Veja também:
O que é machine learning (aprendizado de máquina)?
Como machine learning (aprendizado de máquina) funciona?
Como machine learning (aprendizado de máquina) aprende?
Como implementar um modelo de machine learning?
Como escolher um bom modelo de machine learning?
Classificação e regressão em machine learning
O que é conjunto de dados (dataset) em machine learning?
Onde conseguir conjuntos de dados para machine learning?
Salve localmente conjuntos de dados para machine learning
Pré-processamento de dados em machine learning
Regressão Linear e Machine Learning
Conjuntos de treinamento e teste em machine learning
Função de perda em machine learning
Scikit-learn para machine learning
Matrizes de Confusão em Machine Learning
Floresta aleatória com Scikit-learn
Detecção de anomalias com Isolation Forest
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.