Guia para iniciantes do AutoML Vision

Introdução

Imagine que você trabalhe em um conselho de preservação arquitetônica que está tentando identificar bairros que tenham um estilo consistente na cidade. Você tem centenas de milhares de instantâneos de casas para filtrar, mas é maçante tentar categorizar todas essas imagens manualmente, além de ter grandes chances de erros. Um estagiário rotulou algumas centenas deles alguns meses atrás, e ninguém mexeu neles desde então. Seria tão útil se você pudesse ensinar seu computador a fazer isso por você!

Imagens de exemplo de quatro tipos de estilo arquitetônico

Por que o machine learning (ML) é a ferramenta certa para esse problema?

imagem de representação de programação Na programação clássica, o programador faz um passo a passo das instruções que precisam ser seguidas pelo computador. Essa abordagem funciona para resolver diversos problemas, mas não para categorizar residências da maneira que você gostaria. São muitas as variações de composição, cores, ângulos e detalhes estilísticos. Não dá para imaginar a criação do passo a passo de um conjunto de regras que faça com que uma máquina classifique como rústico ou moderno o estilo de uma residência unifamiliar em uma fotografia. É difícil imaginar por onde começar. Felizmente, os sistemas de machine learning estão bem preparados para resolver esse problema.

Qual a ferramenta ideal para mim: a API Vision ou o AutoML?

A API Vision é usada para classificar as imagens em milhares de categorias predefinidas, detectar objetos e rostos individuais em imagens e localizar e ler palavras impressas contidas nas imagens. Se você quiser detectar objetos individuais, rostos e texto em seu conjunto de dados ou se a necessidade de classificação de imagens for bastante genérica, avalie a API Vision e veja se ela funciona para você. No entanto, caso seja necessário rótulos próprios para classificar as imagens, vale a pena testar um classificador personalizado para ver se ele atende às suas necessidades.

imagens de rótulos genéricos da API Cloud Vision versus rótulos personalizados do AutoML

Avaliar a API Vision Primeiros passos com o AutoML

No que consiste o machine learning no AutoML?

representação gráfica de uma rede neural simples O machine learning inclui o uso de dados para treinar algoritmos e alcançar determinado resultado. As especificidades do algoritmo e dos métodos de treinamento mudam de acordo com o caso de uso. Há muitas subcategorias diferentes de machine learning. Em cada uma delas, há diferentes soluções para problemas distintos, e o trabalho é feito dentro de restrições específicas. Com o AutoML Vision, é possível executar o aprendizado supervisionado, que envolve o treinamento de um computador para reconhecer padrões de dados rotulados. Com o aprendizado supervisionado, é possível treinar um modelo para reconhecer os padrões e o conteúdo que queremos nas imagens.

Preparação de dados

Para treinar um modelo personalizado com o AutoML Vision, é necessário fornecer exemplos rotulados dos tipos de imagens (entradas) que você gostaria de classificar e as categorias ou rótulos (a resposta) de que você quer receber a previsão do sistema de ML.

Avaliar o caso de uso

gráfico com ponto inicial e final

Ao definir o conjunto de dados, sempre comece pelo caso de uso. Comece com as perguntas a seguir:

  • Que resultado você está tentando alcançar?
  • Quais tipos de categorias você precisa reconhecer para alcançar esse resultado?
  • Essas categorias podem ser reconhecidas por pessoas? Mesmo que o AutoML Vision possa processar uma magnitude maior de categorias do que os humanos são capazes de lembrar e atribuir a qualquer momento, se uma pessoa não puder reconhecer uma categoria específica, o AutoML Vision também terá dificuldades.
  • Que exemplos refletem com mais precisão o tipo e o intervalo de dados que seu sistema classificará?

Um princípio fundamental que sustenta os produtos de ML do Google é o machine learning centrado na pessoa, uma abordagem que enfatiza práticas de IA responsáveis (em inglês), incluindo a imparcialidade. O objetivo da imparcialidade no ML é entender e evitar o tratamento injusto ou preconceituoso de pessoas, em relação a raça, renda, orientação sexual, religião, gênero e outras características historicamente associadas à discriminação e marginalização, quando e onde se manifestem em sistemas algorítmicos ou na tomada de decisões auxiliada por algoritmos. Para mais informações, acesse nosso guia e veja as observações sobre imparcialidade nas diretrizes a seguir. À medida que avançar pelas diretrizes para definir seu conjunto de dados, recomendamos que você pense na imparcialidade com o machine learning, quando relevante ao seu caso de uso.

Fonte dos dados

gráfico com pontos de dados Depois de determinar quais dados são necessários, é preciso achar uma maneira de localizá-los. Para começar, considere todos os dados que sua organização coleta. Talvez você descubra que já está coletando os dados necessários para treinar um modelo. Se você não tiver os dados de que precisa, será possível consegui-los manualmente ou terceirizar essa tarefa.

Incluir exemplos rotulados suficientes em cada categoria

gráfico de treinamento de modelo O mínimo necessário para o treinamento do AutoML Vision é de 100 exemplos de imagens por categoria/rótulo. A probabilidade de reconhecer com sucesso um rótulo aumenta com o número de exemplos de alta qualidade para cada um. Em geral, quanto mais dados rotulados você incluir no processo de treinamento, melhor será o modelo. Segmente, pelo menos, 1.000 exemplos por rótulo.

Distribuir exemplos igualmente entre as categorias

É importante capturar quantidades similares de exemplos de treinamento para cada categoria. Mesmo que você tenha muitos dados para um rótulo só, é melhor ter uma distribuição igual para cada um deles. Para entender isso, imagine se 80% das imagens que você usar para construir um modelo forem fotos de casas unifamiliares em estilo moderno. Com uma distribuição tão desequilibrada de rótulos, é muito provável que o modelo aprenda que é seguro sempre dizer que uma foto é de uma casa unifamiliar moderna, em vez de tentar predizer um rótulo muito menos comum. É como elaborar um teste de múltipla escolha em que a maioria das respostas corretas é "C". Se a pessoa que for respondê-lo tiver experiência com testes, logo descobrirá que pode responder "C" todas as vezes sem nem ler a pergunta.

imagem com fotos do treinamento para quatro tipos de arquitetura

Sabemos que nem sempre é possível conseguir um número similar de exemplos para cada rótulo. Pode ser mais difícil conseguir exemplos imparciais e de alta qualidade para algumas categorias. Nessas circunstâncias, há uma regra básica a ser seguida: o rótulo com o menor número de exemplos precisa ter pelo menos 10% dos exemplos do rótulo com o maior número de exemplos. Portanto, se o maior rótulo tiver 10.000 exemplos, o menor rótulo precisa ter pelo menos 1.000 exemplos.

Capturar a variação no espaço do problema

Por motivos semelhantes, tente garantir que os dados capturem a variedade e a diversidade do espaço do seu problema. Quanto mais ampla for a seleção do processo de treinamento do modelo, mais rapidamente ele será generalizado para novos exemplos. Por exemplo, se você estiver tentando classificar fotos de aparelhos eletrônicos em categorias, se o modelo for exposto no treinamento a uma variedade maior de aparelhos eletrônicos, mais chances ele terá de distinguir entre um novo modelo de tablet, smartphone ou laptop, mesmo que nunca tenha visto esse modelo específico antes.

gráfico de vários tipos de aparelhos eletrônicos

Relacionar dados ao resultado pretendido do modelo

imagem de treinamento combinada com a imagem esperada de saída

Encontre imagens visualmente semelhantes às que você pretende usar para as previsões. Se você estiver tentando classificar imagens de casas no inverno e com neve, provavelmente não conseguirá um ótimo desempenho de um modelo treinado apenas com imagens de casas em dias ensolarados, mesmo que você as tenha marcado com as classes do seu interesse, porque a iluminação e o cenário podem ser diferentes o suficiente para afetar o desempenho. O ideal é que seus exemplos de treinamento sejam dados do mundo real, extraídos do mesmo conjunto de dados que você pretende usar o modelo para classificar.

Considerar como o AutoML Vision usa o conjunto de dados ao criar um modelo personalizado

O conjunto de dados contém conjuntos de treinamento, de validação e de teste. Se você não especificar as divisões (consulte Como preparar os dados), o AutoML Vision usará automaticamente 80% das suas imagens para treinamento, 10% para validação e 10% para testes.

representação gráfica da divisão de treinamento, validação e teste

Conjunto de treinamento

figura de binóculos A maior parte dos dados deve estar no conjunto de treinamento. São esses os dados que seu modelo "vê" durante o treinamento e que são usados para aprender os parâmetros do modelo, ou seja, os pesos das conexões entre os nós da rede neural.

Conjunto de validação

figura de planta O conjunto de validação, às vezes chamado de conjunto "dev", também é usado durante o processo de treinamento. Depois que os dados são incorporados pelo framework de aprendizado do modelo em cada iteração do processo de treinamento, o desempenho do modelo é usado no conjunto de validação para ajustar os hiperparâmetros do modelo, que são variáveis que especificam a estrutura dele. Se você tentar usar o conjunto de treinamento para ajustar os hiperparâmetros, provavelmente o modelo enfatizará os dados de treinamento de maneira excessiva e terá dificuldade para generalizar exemplos que não correspondam exatamente a eles. O modelo terá melhor capacidade de generalização se você usar um conjunto de dados relativamente novo para ajustar a estrutura.

Conjunto de teste

figura de béquer O conjunto de teste não faz parte do processo de treinamento. Depois que o treinamento do modelo for totalmente concluído, o conjunto de teste será usado como um novo desafio. O desempenho do modelo no conjunto de teste serve para que você tenha uma boa ideia de como ele vai lidar com dados reais.

Divisão manual

imagem de tubos de ensaio Também é possível dividir o conjunto de dados por conta própria. A divisão manual de dados é uma boa opção para ter mais controle sobre o processo ou quando houver exemplos específicos que você tem certeza de que quer incluir em determinada parte do ciclo de treinamento do modelo.

 

Preparar seus dados para a importação

Depois de decidir se uma divisão manual ou automática dos seus dados é adequada para você, existem três maneiras de adicionar dados no AutoML Vision:

  • É possível importar dados com imagens classificadas e armazenadas em pastas que correspondem aos rótulos.
  • É possível importar dados do Google Cloud Storage no formato CSV com os rótulos inline. Para saber mais, visite nossa documentação.
  • Se os dados ainda não tiverem sido rotulados, você também poderá enviar exemplos de imagens sem rótulos e usar a IU do AutoML Vision para aplicar rótulos a cada um deles.

Avaliar

Depois que seu modelo for treinado, você receberá um resumo do desempenho dele. Clique em “avaliar” ou “ver avaliação completa” para visualizar uma análise detalhada.

O que considerar antes de avaliar o modelo?

imagem de lupaA depuração de um modelo se concentra mais nos dados do que no modelo em si. A qualquer momento, caso seu modelo comece a agir de maneira inesperada enquanto você estiver avaliando o desempenho antes e depois da produção, retorne e verifique os dados para identificar como o modelo pode ser melhorado.

Quais tipos de análise posso executar no AutoML Vision?

Na seção de avaliação do AutoML Vision, é possível avaliar o desempenho do modelo personalizado usando a saída do modelo em exemplos de teste e as métricas comuns de machine learning. Nesta seção, abordaremos o significado de cada um desses conceitos.

  1. Saída do modelo
  2. Limite de pontuação
  3. Verdadeiros positivos, verdadeiros negativos, falsos positivos e falsos negativos
  4. Precisão e recall
  5. Curvas de precisão/recall
  6. Precisão média

Como interpretar a saída do modelo?

O AutoML Vision extrai exemplos dos dados de teste para apresentar desafios totalmente novos ao modelo. Para cada exemplo, são gerados pelo modelo vários números que servem para comunicar a intensidade da associação do rótulo a esse exemplo. Se o número for alto, o modelo terá certeza de que o rótulo precisa ser aplicado a esse documento.

imagem com exemplo de valores de previsão

Qual é o limite de pontuação?

Podemos converter essas probabilidades em valores binários "on"/"off" definindo um limite de pontuação. Esse limite se refere ao nível de confiança que o modelo precisa ter para atribuir uma categoria a um item de teste. Na interface do usuário, o controle deslizante limite de pontuação é uma ferramenta visual para testar o impacto de diferentes limites para todas as categorias e categorias individuais do conjunto de dados. Se o limite de pontuação for baixo, o modelo classificará mais imagens, mas há o risco de que algumas sejam classificadas de maneira incorreta. Se o limite de pontuação for alto, o modelo classificará menos imagens, mas o risco de classificar imagens de maneira incorreta será menor. Para testar, ajuste os limites por categoria na IU. No entanto, ao usar o modelo na produção, é necessário impor os limites que você achou ideais.

imagem de limite alto e poucas imagens classificadas e de limite baixo e muitas imagens classificadas

O que são verdadeiros positivos, verdadeiros negativos, falsos positivos e falsos negativos?

Depois de aplicar o limite de pontuação, as previsões feitas pelo modelo serão colocadas em uma das quatro categorias a seguir.

imagem com quatro descrições de categoria de confiança

É possível usar essas categorias para calcular a precisão e o recall, métricas que nos ajudam a avaliar a eficácia do modelo.

O que são precisão e recall?

A precisão e o recall nos ajudam a entender o desempenho do modelo na captura de informações e o quanto ele está deixando de fora. A precisão indica quantos exemplos de teste realmente precisam ser categorizados com um rótulo, dentre todos os que receberam um rótulo. De todos os exemplos de teste que deveriam ter recebido um determinado rótulo, o recall indica quantos realmente foram rotulados.

imagem de alta precisão, baixo recall

imagem de alto recall, baixa precisão

É necessário otimizar a precisão ou o recall?

Dependendo do caso de uso, talvez seja melhor otimizar a precisão ou o recall. Vamos examinar como tomar essa decisão analisando os dois casos de uso a seguir.

Caso de uso: privacidade em imagens

Imagine que você quer criar um sistema que detecte automaticamente informações confidenciais e desfoque-as.

imagem de data desfocada

Neste caso, os falsos positivos são elementos que não precisavam ser desfocadas e foram, o que pode ser irritante, mas não prejudicial.

imagem de número de cartão de crédito

Os falsos negativos são elementos que precisavam ser desfocados, mas não foram, como um cartão de crédito, o que pode resultar em roubo de identidade.

Neste caso, é melhor otimizar o recall. Essa métrica mede quantos dados não estão sendo considerados em todas as previsões feitas. É provável que um modelo com recall alto rotule exemplos ligeiramente relevantes, o que é útil para casos em que a categoria tem poucos dados de treinamento.

Imagine que você quer criar um sistema que encontre a melhor foto em um banco de fotos para uma determinada palavra-chave.

imagem de violão combinada com pesquisa de violão

Neste caso, um falso positivo seria retornar uma imagem irrelevante. Como o foco do produto é retornar apenas as imagens com melhor correspondência, isso seria uma grande falha.

imagem irrelevante combinada com pesquisa de violão

Um falso negativo seria deixar de retornar uma imagem relevante para uma pesquisa de palavra-chave. Como muitos termos de pesquisa têm milhares de fotos com um forte potencial de correspondência, isso não é um problema tão grave.

Neste caso, é melhor otimizar a precisão. Essa métrica mede o quanto as previsões feitas estão corretas. Um modelo de alta precisão provavelmente rotulará apenas os exemplos mais relevantes, o que é útil para casos em que sua classe é comum nos dados de treinamento.

Como usar a matriz de confusão?

Podemos comparar o desempenho do modelo em cada rótulo usando uma matriz de confusão. Em um modelo ideal, todos os valores na diagonal serão altos e todos os demais serão baixos. Isso mostra que as categorias desejadas estão sendo identificadas corretamente. Se outros valores forem altos, será um indício de como o modelo está classificando erroneamente as imagens de teste.

imagem com explicação das matrizes de confusão

Como interpretar as curvas de precisão/recall?

imagem de várias curvas de precisão/recall

Com a ferramenta de limite de pontuação, é possível explorar como a precisão e o recall são afetados. À medida que você arrasta o controle deslizante, é possível ver a posição da curva de troca de recall e precisão, além de entender como esse limite afeta cada um individualmente. Para modelos com várias categorias, nesses gráficos, o único rótulo usado para calcular as métricas de precisão e recall é o mais bem classificado no conjunto retornado. Isso pode ajudar você a encontrar a melhor proporção de falsos positivos e negativos.

Depois de escolher um limite que pareça aceitável para o modelo como um todo, clique nos rótulos individuais e veja onde esse limite se encaixa na curva de recall e precisão. Em alguns casos, isso pode significar muitas previsões incorretas para alguns rótulos, o que pode ajudar você a escolher um limite por categoria personalizado para esses rótulos. Por exemplo, no conjunto de dados de casas, há um limite de 0,5 com precisão e recall razoáveis para cada tipo de imagem, exceto "Tudor" (talvez por ser uma categoria muito genérica). Para essa categoria, há muitos falsos positivos. Nesse caso, você pode usar um limite de 0,8 apenas para "Tudor" quando chamar o classificador de previsões.

O que é precisão média?

Uma métrica útil para a acurácia do modelo é a área sob a curva de recall e precisão. Ele mede o desempenho do seu modelo em todos os limites de pontuação. No AutoML Vision, essa métrica é chamada de Precisão média. Quanto mais próximo de 1 essa pontuação for, melhor será o desempenho do seu modelo no conjunto de testes. Um modelo que adivinhar aleatoriamente cada rótulo teria uma precisão média em torno de 0,5.

Como testar o modelo

imagem de lâmpada Para testar o modelo, o AutoML Vision usa 10% dos dados automaticamente ou, se você dividir os dados por conta própria, qualquer porcentagem escolhida. Na página "Avaliar", você vê como o modelo funcionou com os dados de teste. Há algumas maneiras de verificar esse modelo, se for do seu interesse. O mais fácil é fazer upload de algumas imagens na página "Prever" e ver os rótulos que ele escolheu para os exemplos. Com sorte, eles atenderão às expectativas. Teste alguns exemplos de cada tipo de imagem que você espera receber.

Se você quiser usar seu modelo em testes automatizados, a página "Prever" também informará como fazer chamadas para o modelo de maneira programática.