Aprendizado de Máquina (Machine Learning)
Entenda o que é Machine Learning (ML) e a diferença entre ML e IA
Imagine que queremos criar um programa capaz de identificar se uma imagem contém ou não um carro. Para isso, surgem alguns desafios fundamentais:
-
Como realizar essa distinção de forma programática?
Quais características de uma imagem permitem afirmar, com confiança, que ela contém um carro? -
Como lidar com a diversidade do mundo real?
Carros aparecem em diferentes cores, modelos, tamanhos, ângulos, escalas, condições de iluminação e até parcialmente ocultos. Como seria possível programar manualmente todas essas variações? -
Como generalizar para novos exemplos?
Mesmo que fosse viável cobrir muitos cenários conhecidos, como garantir que o sistema consiga identificar corretamente imagens que nunca foram apresentadas durante o seu treinamento?
Para resolver esse problema, não seria mais eficiente se o programa tivesse a capacidade de reconhecer padrões que caracterizam um carro?
É exatamente nesse ponto que o Aprendizado de Máquina (Machine Learning) ou simplesmente ML entra em cena. ML é uma área da Inteligência Artificial permite que sistemas aprendam padrões a partir de dados, em vez de depender exclusivamente de regras programadas manualmente.
Nesse sentido, o Machine Learning pode ser visto como uma evolução natural dos estudos de reconhecimento de padrões, tornando possível lidar com a complexidade e a variabilidade do mundo real.
Definições
Existem diversas definições para Aprendizado de Máquina. O livro The Hundred-Page Machine Learning Book adota uma definição relativamente simples:
Aprendizado de máquina é o processo de resolver problemas práticos por meio da coleta de dados e do uso desses dados para construir modelos estatísticos, utilizando algoritmos.
Diferentemente da abordagem puramente programática, o aprendizado de máquina busca solucionar problemas a partir de exemplos, e não apenas de regras explícitas. É justamente dessa característica que deriva o conceito de “aprendizado”: o sistema extrai padrões dos dados e os utiliza para generalizar soluções para novos cenários.
Conjunto de dados
A coleta de dados é uma das etapas iniciais e mais importantes do processo de aprendizado de máquina. Compreender os termos abaixo ajuda a entender como os dados são organizados e utilizados durante o treinamento de modelos:
-
Dataset: conjunto de dados que será objeto de estudo e utilizado para treinar, validar e testar modelos de aprendizado de máquina.
-
Features: conjunto de uma ou mais variáveis independentes que descrevem as características de cada registro no dataset.
-
Label: resultado esperado ou variável dependente associada às features. Pode ser um valor numérico, uma classe ou até estruturas mais complexas.
Datasets que possuem labels também são conhecidos como datasets anotados.
Por exemplo, imagine que queremos estimar o peso de uma pessoa com base na altura. Nesse caso, a altura é uma variável independente (feature), enquanto o peso é a variável dependente (label).
Vale observar que poderíamos utilizar outras variáveis independentes para tornar o modelo mais preciso, como a quantidade de calorias consumidas por dia, o sexo, a idade, o nível de atividade física, entre outras.
Exemplo de dataset:
| Altura (feature) | Peso (label) |
|---|---|
| 142 cm | 40 kg |
| 150 cm | 50 kg |
| 162 cm | 70 kg |
| 177 cm | 75 kg |
| 190 cm | 101 kg |
Os principais tipos de aprendizado de máquina:
- Aprendizado supervisionado
- Aprendizado semi-supervisionado
- Aprendizado não supervisionado
- Aprendizado por reforço
Aprendizado supervisionado (Supervised learning)
No aprendizado supervisionado, o conjunto de dados (dataset) contém tanto as features quanto as labels. Isso significa que, para cada conjunto de características, já conhecemos o resultado esperado da sua combinação. A partir desses valores conhecidos, é possível treinar modelos de aprendizado capazes de estimar as labels de novos registros que não fazem parte do dataset original.
Retomando o exemplo do peso em função da altura, podemos utilizar uma regressão linear para estimar, por exemplo, que uma pessoa com 170 cm de altura tenha aproximadamente 74 kg. É importante notar que esse valor é apenas uma estimativa: mesmo para dados já conhecidos, o modelo pode apresentar variações. Isso ocorre porque o modelo é relativamente simples e, para obter previsões mais precisas, seria necessário considerar mais features, como idade, sexo, composição corporal, entre outras.
Aprendizado não supervisionado (Unsupervised learning)
Ao contrário do aprendizado supervisionado, no aprendizado não supervisionado não conhecemos previamente o resultado da combinação das features, ou seja, o dataset não possui labels.
Nesse tipo de aprendizado, o objetivo é construir modelos capazes de extrair estrutura e padrões dos dados, transformando o dataset de diferentes formas, como:
- Agrupamento de registros (clustering)
- Identificação de outliers
- Redução de dimensionalidade
Essas técnicas são amplamente utilizadas para exploração de dados, descoberta de padrões ocultos e preparação de dados para etapas posteriores de análise ou modelagem.
Aprendizado semi-supervisionado (Semi-supervised learning)
O aprendizado semi-supervisionado é um modelo híbrido entre o aprendizado supervisionado e o não supervisionado, pois o dataset contém registros com e sem labels. Em muitos cenários, obter dados devidamente anotados é significativamente mais difícil e custoso do que coletar dados não anotados. Por isso, essa abordagem busca tirar proveito de ambos os tipos de dados para melhorar o desempenho dos modelos.
À primeira vista, a ideia de que dados sem labels possam contribuir para a qualidade do modelo pode parecer contraintuitiva. No entanto, voltando ao exemplo do peso em função da altura, imagine que dispomos de muitos registros de altura sem o peso correspondente. Ao aplicar técnicas de aprendizado não supervisionado, é possível obter uma base mais sólida para identificar padrões e detectar outliers, o que contribui indiretamente para a construção de modelos supervisionados mais robustos.
Outra técnica bastante comum consiste em treinar inicialmente o modelo apenas com os dados anotados, em seguida estimar as labels dos dados não anotados e, por fim, re-treinar o modelo utilizando todo o dataset.
Essa abordagem permite aproveitar a grande quantidade de dados não rotulados disponíveis, aumentando a base de treinamento e, potencialmente, melhorando a capacidade de generalização do modelo.
Aprendizado por Reforço (Reinforcement Learning)
Dentre os principais tipos de aprendizado de máquina, o aprendizado por reforço é, sem dúvida, o mais complexo - e também um dos mais poderosos. Nessa abordagem, o modelo utiliza o estado do ambiente como entrada para decidir qual ação deve ser executada.
Cada ação pode ou não alterar o estado do ambiente e, após sua execução, uma recompensa é calculada. Essa recompensa indica se o comportamento do modelo está melhorando ou piorando, o que dá origem ao conceito de reforço.
O objetivo do aprendizado por reforço é aprender uma política de ações que maximize a recompensa acumulada ao longo do tempo, permitindo que o agente tome decisões cada vez mais eficientes com base na experiência adquirida.
Esse tipo de aprendizado é especialmente adequado para tarefas que envolvem decisões sequenciais, como, por exemplo:
- Aprender a jogar um jogo
- Aprender a controlar um robô
- Otimização de logística, como roteamento e alocação de recursos
Conclusão
O Aprendizado de Máquina é uma subárea da Inteligência Artificial focada no reconhecimento de padrões a partir de dados. Atualmente, suas aplicações são amplas e abrangem diversos domínios, como análise de dados, visão computacional, sistemas de recomendação, automação e tomada de decisão inteligente, incluindo as populares LLMs (Large Language Models), como o ChatGPT.
O ChatGPT, por exemplo, utiliza Aprendizagem Profunda (Deep Learning), baseada em redes neurais artificiais do tipo Transformer, treinadas com grandes volumes de texto para identificar padrões da linguagem humana.
Durante o treinamento, o modelo aprende a prever a próxima palavra com base no contexto, o que possibilita responder perguntas, explicar conceitos e gerar textos coerentes.
Em resumo:
Inteligência Artificial → Aprendizado de Máquina → Aprendizado Profundo → ChatGPT
Referências:
- "The Hundred-Page Machine Learning", por Andriy Burkov
- Amazon: https://amzn.to/4qT8Tew
- Ler online: https://www.thelmbook.com/