Imagine que você está estudando para uma prova de geografia. Você tem duas maneiras principais de se preparar. A primeira é decorar todas as capitais do mundo exatamente como estão no mapa, ou seja, você decora os exemplos. A segunda é estudar o conceito de por que certas cidades se tornam capitais (por questões históricas, políticas ou econômicas) e, a partir dessa regra, você consegue deduzir qual deve ser a capital de um país mesmo que não tenha decorado. No mundo do Aprendizado de Máquina, essa diferença fundamental existe e separa os algoritmos em duas famílias: o Aprendizado Baseado em Instância e o Aprendizado Baseado em Modelo. Entender essa distinção é a chave para saber quando o computador está apenas “decorando” ou quando ele realmente “aprendeu a lógica” (generaliza).
Aprendizado Baseado em Instância
Como o nome sugere, esse método é extremamente “preguiçoso” (em termos técnicos, chamamos até de “algoritmos preguiçosos” ou Lazy Learners). Isso acontece porque, durante o treinamento, o sistema praticamente não faz nada além de guardar todo o conjunto de dados na memória. Sim, é isso mesmo: ele simplesmente memoriza os exemplos. Quando você faz uma pergunta nova (um novo dado) e quer uma resposta, o sistema então “acorda” e vai comparar essa nova informação com todas as instâncias (exemplos) que ele guardou. Ele procura o exemplo mais parecido que já viu e responde com base nessa semelhança.
Pense no sistema de reconhecimento facial do seu celular. Quando você cadastra seu rosto, ele tira algumas fotos e guarda aquelas referências. Depois, quando você pega o celular, ele compara o rosto ao vivo com as fotos salvas. Se forem parecidas o suficiente, ele te reconhece. Isso é aprendizado baseado em instância: o sistema nunca criou uma “regra” abstrata do que é o seu rosto; ele apenas compara a imagem atual com as imagens da gaveta. O exemplo clássico disso é o algoritmo K-Nearest Neighbors (KNN) , ou “K Vizinhos Mais Próximos”. Ele classifica um ponto novo olhando para os vizinhos mais próximos que estão na memória e “vota” no resultado mais comum entre eles.
Aprendizado Baseado em Modelo
Esse método não está interessado em guardar os exemplos. Em vez disso, ele usa os exemplos para “treinar” e extrair uma lógica, uma função ou uma regra geral. É como um aluno que estuda a fundo as fórmulas da física. Ele não precisa decorar que “a maçã caiu da árvore na terça-feira”; ele precisa entender a Lei da Gravidade. Depois que ele entende a regra (o modelo), ele pode aplicar aquela fórmula para qualquer situação nova, inclusive para prever o que aconteceria com uma caneta cainda em Júpiter, algo que ele nunca viu.
Nesse caso, o sistema consome os dados de treino, procura padrões e relacionamentos (por exemplo: “se a renda da pessoa é alta e a idade é baixa, então ela provavelmente comprará este produto”) e cria uma representação matemática dessa relação. Uma vez que o modelo está pronto, você pode descartar os dados originais se quiser. O modelo agora é auto-suficiente. O exemplo mais comum disso são as Regressões Lineares. Se você tem dados de tamanho de casa e preço, o algoritmo desenha uma reta que melhor representa essa relação. Quando chega uma casa de tamanho novo, ele não precisa procurar na memória por casas parecidas; ele simplesmente usa a fórmula da reta (o modelo) para calcular o preço.
Quando usar um ou outro?
A escolha entre um método e outro depende do seu problema e dos seus recursos.
Use o Aprendizado Baseado em Instância quando:
-
Seu problema é complexo e difícil de generalizar: Às vezes, os dados são tão específicos que criar uma regra geral é muito difícil. É mais seguro comparar com casos reais.
-
Os dados mudam rapidamente: Como o sistema só guarda os exemplos, é fácil adicionar um novo exemplo à memória sem precisar “retreinar” um modelo complexo.
-
Você quer entender o contexto local: O KNN é ótimo para problemas onde a decisão depende muito do contexto dos vizinhos, e não de uma tendência global.
No entanto, ele tem desvantagens claras: ele exige que você guarde todos os dados históricos (o que consome muita memória) e, além disso, a resposta pode ser lenta porque, a cada nova pergunta, ele precisa comparar com toda a base de dados.
Por outro lado, use o Aprendizado Baseado em Modelo quando:
-
Você quer fazer previsões rápidas: Depois que o modelo está treinado, a resposta é quase instantânea, pois é só aplicar uma fórmula.
-
Você busca entender as relações entre os dados: O modelo geralmente nos dá “insights”. Por exemplo, em um modelo de vendas, você descobre que a propaganda tem 3x mais impacto que o preço. Isso não é possível no método por instância, que é uma “caixa preta” de exemplos.
-
Você tem limitação de memória: O modelo ocupa pouquíssimo espaço, enquanto a base de dados original pode ser gigantesca.
Conclusão
Pense no Aprendizado Baseado em Instância como um detetive que resolve um caso novo folheando livros de casos antigos para encontrar o mais parecido. Já o Aprendizado Baseado em Modelo é um cientista que, depois de estudar vários casos, cria uma teoria geral e a aplica para resolver qualquer mistério. Ambos resolvem crimes, mas um depende da biblioteca e outro depende da teoria. Na prática, os melhores sistemas de Inteligência Artificial muitas vezes combinam os dois, mas entender essa diferença já coloca você um passo à frente na jornada do Machine Learning.