As diferentes formas de aprendizado de máquina - Instituto Eldorado
14 de Abril de 2021

As diferentes formas de aprendizado de máquina

Lucas

Lucas Gessoni

Engenheiro de Software no Instituto ELDORADO

Autor
aprendizado de máquina

Atualmente, há grande interesse por inteligência artificial e aprendizado de máquina (Machine Learning), já que essas tecnologias permitem a automatização de processos e análises que não eram possíveis previamente. No entanto, pode ser um desafio tentar entender os diversos termos utilizados para descrever as diferentes formas de aprendizado de máquina e os tipos de problemas que podem ser resolvidos.

Por isso, neste artigo, vamos conferir alguns termos básicos de Machine Learning (ML), as várias formas de aprendizado de máquina e os problemas que podemos resolver por meio dessa tecnologia.

Conceitos Básicos

A forma mais comum de se realizar aprendizado de máquina é coletar exemplos (dados históricos), e então treinar um modelo para realizar inferência sobre os dados.

Modelo:

Um modelo de ML é uma representação de como tomar uma decisão. É possível fazer um modelo que possui como entrada, uma imagem e que decide se a imagem contém uma pessoa ou não, por exemplo. Há diferentes tipos de modelos de ML, como Árvores de Decisão, Redes Neurais, Naive Bayes e Support Vector Machine. Diferente de um programa tradicional de computador, em que pessoas criam regras de decisão manualmente, os modelos de ML aprendem as regras analisando dados de exemplo. O tipo de modelo define quais regras podem ser apreendidas.

Treinamento:

O treinamento é o processo pelo qual um modelo de ML aprende como tomar a decisão de interesse, analisando dados históricos. Durante o treinamento, um algoritmo de otimização altera os valores dos parâmetros das regras de decisão do modelo para que esse obtenha boas decisões para os dados históricos.

Inferência:

Depois que o modelo é treinado em dados históricos, ele pode ser utilizado para tomar decisões (fazer inferência) em novos dados, que ele não viu durante o treinamento. É possível que o modelo seja bom para tomar a decisão nos dados históricos, mas que seja ruim para tomar decisões em dados nunca vistos antes. Nesse caso, dizemos que ocorreu Overfitting e que o modelo não generaliza para novos dados. Conseguir generalização é um dos grandes desafios de ML, principalmente quando há poucos dados de exemplo. Caso o modelo não consiga tomar boas decisões nem para os dados de treinamento, dizemos que ocorreu Underfitting e pode ser que seja necessário utilizar um modelo mais complexo. O termo predição pode ser usado como sinônimo de inferência.

Aprendizado por tentativa e erro:

Embora o mais comum seja treinar modelos de aprendizado de máquina através de exemplos (dados históricos), alguns algoritmos realizam o treinamento por tentativa e erro. Esses algoritmos são geralmente utilizados em situações em que o modelo de IA precisa interagir com um ambiente externo, como jogar xadrez contra um oponente humano. Dependendo do caso, é possível misturar os conceitos e realizar um treinamento inicial através de exemplos e depois incorporar tentativa e erro.

Formas de aprendizado de máquina básicas

  • Supervised Learning: técnicas para treinar modelo com dados anotados manualmente (ie: um especialista diz qual a saída esperada para cada dado histórico usado no treinamento). Usado para identificar padrões específicos (ex: qual objeto está presente em uma imagem). São as técnicas mais comumente empregadas.
  • Unsupervised Learning: técnicas para treinar modelo com dados que não são anotados (ie: não se sabe a saída esperada para cada dado histórico usado no treinamento). Pode ser usado para identificar correlações e fazer agrupamentos (ex: reconhecer quais imagens têm objetos parecidos, mas sem reconhecer qual o objeto contido na imagem).
  • Reinforcement Learning: técnicas que usam tentativa e erro para descobrir decisões ótimas de como interagir com ambiente ou outros agentes. Se baseia em uso de reforços positivos ou negativos para a otimização. Tais reforços podem vir depois de uma sequência grande de ações (ie: pode não ser óbvio quais ações contribuíram para o resultado positivo). São as técnicas menos empregadas.

 

Tipos de problemas comuns

Para escolher uma solução ou técnica adequada para o seu problema, é necessário entender quais os tipos de problema que geralmente são resolvidos através de aprendizado de máquina e qual a nomenclatura.

Problemas Gerais

  • Regressão (supervised): estimar um valor para alguma característica, baseado nos valores de outras características. Exemplo: estimar o peso de uma pessoa baseado na altura e idade.
  • Classificação (supervised): descobrir a qual classe algo pertence. Exemplos: determinar se uma imagem de uma peça industrial contém defeito ou não (ie: pertence à classe “com defeito” ou “sem defeito”); determinar se um e-mail é “spam”.
  • Previsão (Forecasting) (unsupervised): prever valores futuros. Exemplos: previsão do tempo (prever temperatura, umidade e precipitação); prever tendências de mercado (se preço ou demanda por algo vão aumentar, ou diminuir).
  • Detecção de Anomalia (unsupervised): identificar se algo está fora do padrão. Ex: analisar sensores de uma máquina e avisar se comportamento está desviando do padrão, o que pode indicar falha.
  • Agrupamento (Clustering) (unsupervised): agrupar dados com características em comum. Exemplo: agrupar produtos para sugerir similares em sites de compras.
  • Controle: fazer um agente autônomo que interage com um ambiente dinâmico, sendo que as ações do agente alteram o estado do ambiente e pode haver outros agentes presentes realizando interações. Exemplos: fazer uma IA para jogar xadrez; mover um robô em um ambiente.

 

Problemas específicos de Visão Computacional

  • Detecção (supervised): além de identificar quais os objetos presentes em uma imagem, serve para identificar a posição de cada um (desenhando um retângulo em torno de cada objeto).
  • Segmentação (supervised): além de identificar quais os objetos presentes em uma imagem, serve para identificar a região exata ocupada por cada um (desenhando um contorno em volta de cada objeto)
  • Tracking (supervised): reconhecer a identidade de objetos ao longo de um vídeo. Exemplo: em um vídeo com vários pedestres, reconhece que uma pessoa que estava na esquerda no começo do vídeo, é a mesma pessoa que andou para a direita, até o fim do vídeo.

 

Problemas específicos de NLP (Natural Language Processing)

  • Language Modelling (supervised): Prever as próximas palavras de uma frase. Exemplos: usado em smartphones para sugerir palavras enquanto você digita. Também é usado para “representation learning”.
  • Question Answering (supervised): Responder perguntas feitas em linguagem natural. Exemplo: uma das funcionalidades de assistentes como Alexa e Siri; possível funcionalidade de chatbots.
  • Structure from Text (supervised): Extrair informações estruturadas de textos corridos, escritos sem um padrão. Exemplo: analisar relatórios de vendas escritos em texto corrido por diferentes vendedores e fazer uma tabela padronizada que pode ser facilmente filtrada e analisada.

 

aprendizado de máquina

Variações das formas de aprendizado de máquina básicas

Tendo conhecimento das formas básicas de aprendizado e dos problemas que podem resolver, é possível entender algumas variações comuns.

Active Learning:

Apenas pequena parte dos dados são anotados, e então é feito o treinamento e a inferência nos dados não anotados. Em uma segunda etapa, mais dados são anotados manualmente, mas focando nos casos em que o modelo tem menor certeza sobre a decisão. O processo é repetido em várias iterações.

Semi-Supervised Learning:

Técnicas para treinar modelo com uma mistura de dados anotados manualmente e dados não anotados. Usado quando não é viável anotar todos os dados manualmente para realizar “Supervised Learning”.

Weakly-Supervised Learning:

Técnicas de ML que lidam com dados anotados de maneira imprecisa/inconsistente ou sem detalhes, podem incluir também dados não anotados.

Self-Supervised Learning:

Técnicas para treinar modelo com dados anotados automaticamente. “Contrastive Learning” é um exemplo de Self-Supervised learning, em que dados são alterados parcialmente de modo automático e é treinado um modelo para identificar quais dados alterados são próximos dos dados originais. Geralmente, é usado para “Representation Learning”.

Representation Learning:

Técnicas que procuram construir representações dos dados que facilitem transferência de conhecimento em uma segunda etapa (ie: procuram facilitar “transfer learning”).

Metric/Similarity Learning:

Técnicas para descobrir parâmetros/funções para cálculo de métrica de distância/similaridade, a fim de facilitar uma segunda etapa (ex: facilitar agrupamento de elementos similares).

Model Based Reinforcement Learning:

Subdivisão de técnicas de “Reinforcement Learning”. Se refere às técnicas que prevêem estados futuros para tomada de decisão (ie: modela ambiente/interações). Se a técnica não faz a modelagem, é chamada de “Model-Free Reinforcement Learning”.

 

Formas adicionais de aprendizado de máquina

As técnicas abaixo são utilizadas em conjunto com alguma das formas básicas ou variações. É possível fazer “Transfer Learning” de uma técnica de “Supervised Learning”, por exemplo.

Transfer Learning:

Técnicas para adaptar um modelo já treinado para um novo domínio. Geralmente, se usa um domínio inicial bastante abrangente, facilitando o treinamento para o novo domínio mais específico. Exemplo: adaptar um modelo que reconhece se uma foto possui diversos tipos de objetos para reconhecer apenas a presença de pessoas.

Multi-task Learning:

Técnicas para criar modelos que conseguem resolver mais de uma tarefa ao mesmo tempo.

Few-Shot Learning:

Técnicas para criar modelos que podem ser treinados com poucos dados. Tem sobreposição com outros conceitos. Pode ter foco em gerar dados (ex: criação de dados sintéticos com técnicas como GANs), propor novas arquiteturas de modelos, ou sugerir modificações na forma de otimização.

Meta-Learning:

Técnicas que usam metadados sobre processo de treinamento para aprender parâmetros ou arquiteturas que deixem treinamento mais fácil e/ou rápido de convergir em uma boa solução (ie: aprender como aprender de forma melhor)

Continuous Learning:

Técnicas para continuar aprendizado, enquanto se faz inferência em novos dados.

Knowledge Distillation:

Técnica para treinar novos modelos menores e mais eficientes, baseados nos resultados de um modelo maior, mas menos eficiente.

 

Gostou de saber mais sobre Machine Learning? Confira nossos outros artigos para ficar por dentro das novidades do mundo da tecnologia. 

Cadastre-se em nossa newsletter

Created By Avanti