Depois de treinar um modelo, o AutoML Vision usa os itens do conjunto de teste para avaliar a qualidade e a precisão do novo modelo.
Visão geral da avaliação
O AutoML Vision fornece um conjunto agregado de métricas de avaliação que indicam o desempenho geral do modelo, bem como as métricas de avaliação para cada rótulo de categoria, indicando o desempenho do modelo para esse rótulo.
AuPRC: área sob a curva de recall/precisão (em inglês), também conhecida como "precisão média". Normalmente entre 0,5 e 1. Valores mais altos indicam modelos mais precisos.
As curvas de limite de confiança mostram como diferentes limites de confiança afetam a precisão, o recall e as taxas de resultados verdadeiros e falsos positivos. Leia sobre a relação entre precisão e recall.
Matriz de confusão: presente apenas para modelos de um único rótulo por imagem. Representa a porcentagem de vezes que cada rótulo foi previsto no conjunto de treinamento durante a avaliação.
O ideal é que o rótulo
one
seja atribuído apenas a imagens classificadas comoone
e etc. Desse modo, uma matriz perfeita terá a seguinte aparência:100 0 0 0 0 100 0 0 0 0 100 0 0 0 0 100
No exemplo acima, se uma imagem foi classificada como
one
, mas o modelo previutwo
, a primeira linha terá esta aparência:99 1 0 0
Para ver mais informações, consulte matriz de confusão no machine learning.
O AutoML Vision cria a matriz de confusão para até dez rótulos. Se você tiver mais do que isso, a matriz incluirá os dez rótulos com a maior confusão (previsões incorretas).
Use esses dados para avaliar a prontidão do seu modelo. Alta confusão, baixa pontuação de AUC ou baixas pontuações de precisão e recall podem indicar que o modelo precisa de dados de treinamento extras ou tem rótulos inconsistentes. Uma pontuação AUC muito alta e precisão e recall perfeitos podem indicar que os dados são fáceis demais e têm pouca capacidade de generalização.
Listar avaliações do modelo
Depois de treinar um modelo, é possível listar as métricas de avaliação dele.
IU da Web
Abra a UI do AutoML Vision e clique na guia Modelos (com o ícone de lâmpada) na barra de navegação à esquerda para exibir os modelos disponíveis.
Para ver os modelos de outro projeto, selecione o projeto na lista suspensa na parte superior direita da barra de título.
Clique na linha do modelo que você quer avaliar.
Se necessário, clique na guia Avaliar abaixo da barra de título.
Se o treinamento do modelo tiver sido concluído, o AutoML Vision mostrará as métricas de avaliação.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto do GCP.
- model-id: o ID do seu modelo, a partir da
resposta de quando você o criou. Ele é o último elemento no nome do modelo.
Por exemplo:
- Nome do modelo:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID do modelo:
IOD4412217016962778756
- Nome do modelo:
- model-evaluation-id: o valor do ID da avaliação do
modelo. É possível conseguir IDs de avaliação do modelo por meio da operação de avaliações de modelo
list
.
Método HTTP e URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID"
PowerShell
execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante à amostra a seguir. Os campos específicos da detecção
de objeto-chave estão em negrito, e uma versão reduzida das
entradas classificationEvaluationMetrics
é exibida para maior clareza:
Go
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Java
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Node.js
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Outras linguagens
C#: Siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse a Documentação de referência do AutoML Vision para .NET.
PHP: Siga as Instruções de configuração do PHP na página das bibliotecas de cliente e acesse a Documentação de referência do AutoML Vision para PHP.
Ruby: Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a Documentação de referência do AutoML Vision para Ruby.
Conseguir valores de avaliação do modelo
Também é possível conseguir uma avaliação do modelo específica para um rótulo (displayName
) usando
um ID de avaliação. Para encontrar o ID de avaliação do modelo, execute a função
de avaliação de modelo de lista mostrada em Avaliações de modelo de lista.
IU da Web
Abra Vision Dashboard e clique no ícone de lâmpada na barra de navegação esquerda para exibir os modelos disponíveis.
Para ver os modelos de outro projeto, selecione o projeto na lista suspensa na parte superior direita da barra de título.
Clique na linha do modelo que você quer avaliar.
Se necessário, clique na guia Avaliar abaixo da barra de título.
Se o treinamento do modelo tiver sido concluído, o AutoML Vision mostrará as métricas de avaliação.
Para visualizar as métricas de um rótulo específico, selecione o nome dele na lista na parte inferior da página.
REST
Para receber apenas as métricas de avaliação de um rótulo específico, adicione
/{MODEL_EVALUATION_ID}
à solicitação acima da
resposta.
Por exemplo, você encontra o ID de avaliação do modelo para o rótulo rose
(displayName
) no nome da avaliação retornado da
operação list:
"name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/858136867710915695"
Antes de usar os dados da solicitação abaixo, faça estas substituições:
- project-id: o ID do projeto do GCP.
- model-id: o ID do seu modelo, a partir da
resposta de quando você o criou. Ele é o último elemento no nome do modelo.
Por exemplo:
- Nome do modelo:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID do modelo:
IOD4412217016962778756
- Nome do modelo:
- model-evaluation-id: o valor do ID da avaliação do
modelo. É possível conseguir IDs de avaliação do modelo por meio da operação de avaliações de modelo
list
.
Método HTTP e URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID"
PowerShell
execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Go
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Java
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Node.js
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Verdadeiros positivos, falsos negativos e falsos positivos (somente IU)
Nela, é possível observar exemplos específicos de desempenho de modelo, ou seja, instâncias verdadeiras positivas (VP), falsas negativas (FN) e falsas positivas (FP) dos conjuntos de TREINAMENTO e VALIDAÇÃO.
IU da Web
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Acesse a visualização VP, FN e FP na interface do usuário selecionando a guia Avaliar e, em seguida, selecionando qualquer rótulo específico.
Ao visualizar as tendências nessas previsões, é possível modificar o conjunto de treinamento para melhorar o desempenho do modelo.
As imagens verdadeiras positivas são amostras fornecidas ao modelo treinado que ele anotou corretamente:
As imagens falsas negativas são igualmente fornecidas ao modelo treinado, mas ele não pôde anotar corretamente a imagem referente ao rótulo especificado:
Por fim, as imagens falsas positivas são aquelas fornecidas ao modelo treinado que foram anotadas com o rótulo especificado, mas não precisavam ter sido anotadas:
O modelo está selecionando casos específicos interessantes, o que apresenta uma oportunidade de refinar as definições e rótulos para ajudar o modelo a entender as interpretações do rótulo. Por exemplo, uma definição mais rígida ajuda o modelo a entender se você considera uma pintura abstrata de uma rosa como "rosa" ou não.
O modelo exibirá, com ciclos repetidos de rótulo, treinamento e avaliação, outras ambiguidades desse tipo nos dados.
Também é possível ajustar o limite de pontuação nessa visualização na interface do usuário, e as imagens VP, FN e FP exibidas mostrarão a alteração do limite:
Iterar o modelo
Se você não estiver satisfeito com os níveis de qualidade, poderá voltar às etapas anteriores para melhorar a qualidade:
- Com o AutoML Vision, você pode classificar as imagens de acordo com o grau de confusão do modelo, pelo rótulo verdadeiro e pelo rótulo previsto correspondente. Analise essas imagens e verifique se elas estão rotuladas corretamente.
- Pense em incluir mais documentos a qualquer rótulo com baixa qualidade.
- Talvez seja necessário adicionar diferentes tipos de imagens (por exemplo, ângulo amplo, resolução maior ou menor, pontos de vista diferentes).
- Pense em remover rótulos completamente se não houver imagens de treinamento suficientes.
- Lembre-se de que a máquina não consegue ler o nome do rótulo. É apenas uma string aleatória de letras para ela. Se você tem um rótulo que diz "porta" e outro que diz "porta_com_maçaneta", a máquina não tem como descobrir a nuance além das imagens fornecidas.
- Aumente seus dados com mais exemplos de positivos e negativos verdadeiros. Exemplos especialmente importantes são aqueles que estão próximos do limite de decisão (isto é, que provavelmente produzem confusão, mas ainda assim rotulados corretamente).
- Especifique sua própria divisão TRAIN, TEST, VALIDATION. A ferramenta atribui aleatoriamente imagens, mas quase duplicatas podem acabar em TRAIN e VALIDATION, o que poderia levar a um sobreajuste e, em seguida, a um baixo desempenho no conjunto TEST.
Depois de fazer as alterações, treine e avalie um novo modelo até atingir um nível de qualidade alto o suficiente.