Como o aprendizado por transferência pode tornar o Machine Learning mais eficiente

Você já se perguntou como escalar o processo de treinamento de modelos de machine learning sem ter que usar um novo dataset a cada vez? O aprendizado por transferência é uma técnica de machine learning usada para resolver uma tarefa rapidamente, aproveitando o conhecimento obtido ao resolver uma tarefa relacionada.

Os modelos pré-treinados podem ser redefinidos de várias maneiras, dependendo da relação da tarefa, portanto, apenas um pequeno número de exemplos rotulados da nova tarefa é necessário. 

O aprendizado por transferência pode ser uma ferramenta poderosa para cientistas de dados e engenheiros, permitindo que aqueles que não têm os meios para treinar um modelo desde o início se beneficiem dos poderosos recursos aprendidos por modelos profundos (deep models). 

O que é aprendizado por transferência? 

Aprendizagem supervisionada é o problema de aprender uma função que mapeia inputs (observações) e outputs (rótulos) com base em pares de exemplos. O aprendizado por transferência é uma variante da aprendizagem supervisionada que podemos usar quando nos deparamos com uma tarefa com um número limitado de exemplos rotulados. Ou, se a escassez de dados não for um problema, podemos alavancar o aprendizado por transferência quando quisermos evitar um grande número de recursos necessários para treinar um modelo que consome grande quantidade de dados. 

Essa falta de dados de treinamento pode surgir se os exemplos rotulados forem difíceis ou caros de coletar ou anotar, mas, ao mesmo tempo, a tarefa ainda pode exigir um grande modelo de machine learning (e, portanto, com grande quantidade de dados) para resolvê-la. Por esses motivos, geralmente não há dados suficientes para treinar um modelo a um nível aceitável de precisão (ou outro critério de desempenho) desde o início.

Para superar a escassez de dados ou evitar o treinamento de um modelo do zero, podemos aproveitar o conhecimento adquirido com o treinamento de um modelo em uma tarefa relacionada (a tarefa de origem), para a qual existem muitos exemplos rotulados, para resolver a tarefa original em questão. Esse é o conceito principal do aprendizado por transferência, e geralmente é bem-sucedido quando as tarefas de origem e destino exigem informações semelhantes para serem resolvidas.

Diagrama da abordagem geral do aprendizado por transferência. Estamos interessados em alavancar o conhecimento contido em um modelo treinado em uma tarefa para informar um modelo usado para resolver outra tarefa.

Por exemplo, modelos de machine learning treinados em imagens aprendem recursos semelhantes (bordas, cantos, gradientes, formas simples, etc.) de diferentes conjuntos de dados de imagem, sugerindo que esses recursos podem ser reutilizados para resolver outras tarefas de reconhecimento de imagem.

O aprendizado por transferência pode ser ainda mais fragmentado, dependendo das semelhanças e diferenças entre as tarefas de origem e de destino:

  • As tarefas de origem e destino podem ou não compartilhar um espaço de input (recurso) comum (exemplo: a entrada da tarefa de origem é de imagens RGB de 32×32, enquanto a entrada da tarefa de destino é de imagens 128×128 em tons de cinza)
  • A distribuição dos recursos das tarefas de origem e destino pode ou não ser diferente (exemplo: a tarefa de origem é classificar desenhos animados de gatos e cães, enquanto a tarefa de destino é classificar imagens reais de cães e gatos)
  • As tarefas de origem e de destino podem ou não compartilhar um espaço de output (rótulo) comum (exemplo: a tarefa de origem envolve a classificação de imagens de gatos e cães, enquanto a tarefa de destino é desenhar caixas delimitadoras (detectar) quaisquer gatos ou cães em uma imagem)
  • A distribuição condicional dos recursos dos rótulos de tarefa de origem e destino pode ou não ser diferente (exemplo: ambas as tarefas de origem e destino envolvem classificação com o mesmo espaço de rótulo, mas na tarefa de destino, alguns rótulos são muito mais raros do que outros)

Como o Transfer Learning é implementado?

Uma abordagem básica para o aprendizado por transferência com redes neurais é apresentada abaixo, assumindo que as tarefas de origem e destino compartilhem recursos e espaços de rótulo comuns:

  • Treine uma rede neural para obter um alto nível de precisão em uma tarefa de origem que esteja suficientemente relacionada à tarefa de destino em questão; isso é conhecido como fase de pré-treinamento. Outra opção é usar um modelo pré-treinado de um repositório de modelos.
  • Treine novamente as camadas posteriores da rede neural usando os exemplos marcados disponíveis para a tarefa-alvo; isso é conhecido como fase de ajuste fino. Uma opção é consertar, ou “congelar”, as primeiras camadas da rede neural antes do retreinamento (por exemplo, consertar todas as camadas da rede, exceto a última camada). Esta etapa é opcional e, dependendo da configuração, pode ajudar ou prejudicar o processo.

Usando essa abordagem, a rede neural no final da etapa #1 contém uma grande quantidade de informações relacionadas à solução da tarefa de origem. A etapa #2 “salva” a representação aprendida pela rede em suas camadas iniciais e, durante a etapa #3, é usada como ponto de partida para aprender a resolver a tarefa-alvo. 

Dessa forma, exigimos apenas um pequeno número de exemplos para ajustar os parâmetros das camadas posteriores da rede, em vez de um grande número de exemplos necessários para pré-treinar todo o modelo. Essa abordagem básica pode ser facilmente adaptada para se adequar aos diferentes tipos de aprendizado por transferência descritos na seção anterior.

Se as tarefas de origem e destino têm espaços de recursos semelhantes, podemos esperar que a rede retreinada da etapa #3 seja capaz de alavancar a representação aprendida com a tarefa de origem para resolver as tarefas de destino.

Um exemplo interessante dessa abordagem envolve o uso de recursos aprendidos de uma rede neural convolucional (CNN) treinada para classificar os datasets de imagens ImageNet ou Open Images

Aqui, os recursos convolucionais aprendidos pela CNN são considerados como uma representação geral da imagem e reaproveitados para resolver a classificação de imagem, reconhecimento de cena, reconhecimento refinado, detecção de atributo e tarefas de recuperação de imagem em uma coleção diversa de datasets – muitas vezes igualando ou superando o estado da arte, desde a abordagem inicial até a resolução do problema. 

Muitos desses datasets tinham menos exemplos rotulados do que os disponíveis para o treinamento ILSVRC13, demonstrando empiricamente a eficiência estatística que o aprendizado por transferência oferece.

Como o aprendizado por transferência democratizará as aplicações de machine learning? 

Como discutimos, o aprendizado por transferência é útil nos casos em que (1) não temos os meios para fazer a curadoria de um conjunto de dados grande o suficiente para treinar um modelo do zero, ou (2) desejamos evitar o gasto de recursos computacionais ou tempo necessário para treinar um modelo do zero. 

Nas situações certas, o aprendizado por transferência pode abrir portas para que mais engenheiros experimentem novas aplicações de deep learning. Por exemplo, uma aplicação (consulte o estudo de caso nº 1 neste artigo) faz o ajuste fino de um modelo ImageNet pré-treinado para obter alto desempenho com poucos exemplos de treinamento em uma tarefa de classificação de imagens de cães e gatos.

Mesmo sem um conhecimento profundo de curadoria de dataset, construção de modelo e otimização, os modelos existentes podem ser ajustados em um pequeno número de exemplos rotulados no domínio da tarefa de destino até que um nível satisfatório de desempenho seja alcançado. 

O aprendizado por transferência permite que indivíduos e pequenas organizações se beneficiem da poderosa capacidade de representação de modelos profundos, sem o tempo ou a capacidade orçamentária que eles normalmente exigem. 

Este é um artigo traduzido, você pode acessar a versão original em inglês aqui. Todos os créditos para o autor: Mark Kurtz

Postagem anterior
Próxima postagem

Deixe um comentário

O seu endereço de e-mail não será publicado.

formacao-desenvolvimento-web

Gama Experience - Formação em Desenvolvimento Web