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 aprendizado de máquina (AM) é a ferramenta certa para esse problema?

imagem de representação de programação Na programação clássica, o programador descreve instruções passo a passo que precisam ser seguidas pelo computador. Essa abordagem funciona para resolver uma ampla variedade de problemas, mas não para a tarefa de 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 é possível imaginar a criação passo a passo de um conjunto de regras que possa dizer a uma máquina como decidir se o estilo de uma residência unifamiliar em uma fotografia é rústico ou moderno. É difícil imaginar por onde você começaria. Felizmente, os sistemas de machine learning estão bem posicionados para resolver esse problema.

A API Vision ou o AutoML é a ferramenta certa para mim?

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 em 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, teste 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

Testar a API Vision Primeiros passos com o AutoML

O que o machine learning no AutoML envolve?

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. Existem muitas subcategorias de machine learning. Cada uma delas resolve problemas diferentes e tem 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 predição do sistema de ML.

Avaliar o caso de uso

gráfico com ponto inicial e final

Ao reunir o conjunto de dados, comece sempre com o caso de uso. Inicie com as seguintes perguntas:

  • Qual é o resultado que você está tentando alcançar?
  • Que tipos de categorias você precisaria 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 humanos são capazes de lembrar e atribuir a qualquer momento, se um ser humano não puder reconhecer uma categoria específica, o AutoML Vision também terá dificuldades.
  • Que exemplos refletem melhor o tipo e o intervalo de dados que o sistema vai classificar?

Um princípio fundamental que sustenta os produtos de ML do Google é o machine learning centrado no ser humano, uma abordagem que enfatiza práticas de IA responsáveis, incluindo a imparcialidade. O objetivo da imparcialidade no ML é entender e prevenir o tratamento injusto ou preconceituoso de pessoas, relacionado 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 abaixo. À medida que você avança nas diretrizes para montar seu conjunto de dados, recomendamos que você pense na imparcialidade com o aprendizado de máquina quando relevante para seu caso de uso.

Fonte dos dados

gráfico com pontos de dadosDepois de determinar quais dados são necessários, é necessário encontrar uma forma de rastreá-los. Pense em todos os dados que sua organização coleta. Talvez você descubra que está coletando os dados necessários para treinar um modelo. Se você não tiver esses dados, pode consegui-los manualmente ou por meio de um provedor terceirizado.

Incluir exemplos rotulados suficientes em cada categoria

gráfico de treinamento de modeloO 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ê puder trazer para o 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 são "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.

imagens de 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 deve ter pelo menos 10% dos exemplos que o rótulo com o maior número de exemplos. Portanto, se o maior rótulo tiver 10.000 exemplos, o menor rótulo deve 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, quanto mais o modelo for exposto no treinamento a uma variedade de aparelhos eletrônicos, maior será a probabilidade de ele ser capaz 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 que sejam visualmente semelhantes às que você planeja usar para as prediçõ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.

Levar em conta como o AutoML Vision usa o conjunto de dados ao criar um modelo personalizado

O conjunto de dados contém conjuntos de treinamento, validação e teste. Se você não especificar as divisões (consulte Como preparar seus 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 em treinamento, validação e teste

Conjunto de treinamento

figura de binóculos A grande maioria dos dados precisa estar no conjunto de treinamento. Esses são os dados que o modelo "vê" durante o treinamento: eles 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, também 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 ele. Seu modelo terá melhor capacidade de generalização se você usar um conjunto de dados novo para ajustar a estrutura do modelo.

Conjunto de testes

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

Divisão manual

figura 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:

  • Você pode importar dados com suas imagens classificadas e armazenadas em pastas que correspondem aos seus rótulos.
  • Você pode 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.

Outros fatores a considerar durante a importação:

figura de lupa A 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 ver 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 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 interpreto a saída do modelo?

O AutoML Vision extrai exemplos dos dados de teste para apresentar desafios totalmente novos para o 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 predição

O que é 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 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 alto limite e poucas imagens classificadas e de baixo limite 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 predições feitas pelo modelo serão colocadas em uma das quatro categorias a seguir.

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

Podemos 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 deveriam ser categorizados com um rótulo, entre todos aqueles a que um rótulo foi atribuído. O recall indica quantos exemplos de teste foram realmente rotulados, entre todos os que deveriam ter tido o rótulo atribuído.

imagem de alta precisão, baixo recall

imagem de alto recall, baixa precisão

Preciso otimizar para precisão ou 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 sigilosas e desfoque-as.

figura de data desfocada

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

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

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

Nesse caso, é melhor otimizar o recall. Essa métrica mede quantos dados não estão sendo considerados em todas as previsões feitas. Um modelo com recall alto provavelmente rotulará exemplos marginalmente 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 de 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 um grande fracasso.

imagem irrelevante combinada com pesquisa de violão

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

Nesse 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 explicando 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, você pode 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 seu modelo

figura de lâmpada Para testar o modelo, o AutoML Vision usa 10% dos dados automaticamente ou, se você escolher dividir os dados, qualquer porcentagem que você escolheu usar. Na página "Evaluate", você vê como o modelo funcionou nos dados de teste. Há algumas maneiras de verificar o modelo. O mais fácil é fazer upload de algumas imagens na página "Predict" e ver os rótulos escolhidos pelo modelo para os exemplos. Com sorte, eles vão corresponder às suas 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 programaticamente.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud AutoML Vision
Precisa de ajuda? Acesse nossa página de suporte.