Práticas recomendadas

Nesta página, você encontra práticas recomendadas para preparar dados, além de avaliar modelos e melhorar o desempenho deles.

Como preparar os dados

  • Os dados usados no treinamento precisam ser o mais parecidos possível com aqueles em que você fará predições. Por exemplo, se o caso de uso incluir vídeos desfocados e de baixa resolução (como filmagens de uma câmera de segurança), os dados de treinamento precisarão ter vídeos desfocados e de baixa resolução. Em geral, forneça também vários ângulos, resoluções e planos de fundo nos vídeos de treinamento.
  • Os dados de treinamento precisam atender a alguns requisitos mínimos:

    • Todos os dados precisam ter rótulos.
    • Os rótulos precisam ser strings válidas sem vírgulas.
    • Todos os segmentos de vídeo precisam ter carimbos de data/hora válidos, além de início e fim. O horário de término precisa ser maior que 0 e menor que a duração total do vídeo, e o de início precisa ser menor que o horário de término.
    • Todos os URIs de vídeo no CSV precisam ser armazenados em um bucket acessível do Cloud Storage.
    • Os dados precisam incluir pelo menos duas classes diferentes, com cada classe tendo no mínimo 10 itens.
  • Quanto mais dados de treinamento e teste, melhor. Quanto mais avançado o modelo, mais ele precisa de dados.

  • A quantidade de dados necessária para treinar um bom modelo depende de diferentes fatores:

    • A quantidade de classes. Quanto mais classes únicas você tiver, mais amostras por classe serão necessárias.
    • Complexidade ou diversidade das classes. As redes neurais conseguem distinguir rapidamente vídeos de corrida e de natação. No entanto, elas precisam de muito mais amostras para classificar 30 estilos de dança diferentes.
    • Os modelos com vários rótulos são mais difíceis de serem treinados do que os multiclasse. Se a maioria dos seus casos tiver apenas um rótulo por amostra, use um treinamento de modelo multiclasse, em vez de com vários rótulos.
  • Como regra geral, é necessário ter pelo menos 200 amostras de treinamento por classe se você conta com classes diferentes e em pouca quantidade. Além disso, tenha mais de 1.000 amostras de treinamento se as classes tiverem mais nuances, e você contar com mais de 50 diferentes.

  • Evite treinar um modelo com dados muito desequilibrados. Em diversos casos, o número de amostras por classe não é igual. As diferenças não são grandes, e isso não é tão ruim. No entanto, isso se torna um problema quando há um desequilíbrio maior. Por exemplo, algumas classes são apresentadas 10 vezes mais do que outras. Embora a classificação do AutoML Video tente corrigir desequilíbrio de classe, ela não é a configuração ideal para o treinamento do modelo.

Para saber mais, consulte as informações sobre como preparar os dados.

Como dividir os dados

No machine learning, você normalmente divide os conjuntos de dados em três subconjuntos separados: treinamento, validação e teste. O conjunto de dados de treinamento é usado para criar um modelo, que testa vários algoritmos e parâmetros enquanto procura padrões nos dados de treinamento. À medida que o modelo identifica padrões, ele usa o conjunto de dados de validação para testar os algoritmos e padrões. Aqueles que tiverem melhor desempenho serão escolhidos entre os identificados durante o estágio de treinamento.

Depois que os algoritmos e padrões de melhor desempenho forem identificados, eles serão testados quanto à taxa de erros, qualidade e acurácia usando o conjunto de dados de teste. Você precisa ter um conjunto de dados de teste separado que possa ser usado para testar o modelo de forma independente.

Tanto um conjunto de dados de validação quanto um de teste são usados para evitar vieses no modelo. Durante o estágio de validação, são usados os parâmetros ideais do modelo, o que pode resultar em métricas tendenciosas. Usar o conjunto de dados de teste para avaliar a qualidade do modelo após o estágio de validação fornece uma avaliação imparcial da qualidade.

Siga estas práticas recomendadas ao dividir os dados:

  • Recomendamos que todos os conjuntos de dados, também chamados de divisões, representem a mesma população e tenham vídeos semelhantes, com distribuição de rótulos parecida.

    Quando você fornece dados, a classificação do AutoML Video pode dividi-los automaticamente em conjuntos de treinamento, validação e teste. Também é possível atribuir os rótulos de divisão de treinamento. Todas as amostras precisam vir de um único vídeo ou de vários deles. Ter apenas alguns vídeos pode ser perigoso se eles forem diferentes, ou se a distribuição dos rótulos não for a mesma neles. Isso ocorre porque a classificação do AutoML Video gera as divisões de teste, validação e treinamento no nível do vídeo.

    Por exemplo, se você tem apenas três vídeos com milhares de segmentos anotados, mas algumas classes estão apenas em alguns vídeos, é possível que o modelo não seja treinado para alguns rótulos. Assim, o modelo pode perdê-los durante a predição.

  • Evite vazamento de dados. Isso acontece quando o algoritmo é capaz de usar durante o treinamento do modelo informações não disponibilizadas normalmente a ele, e elas não ficam disponíveis durante predições futuras. Isso gera resultados excessivamente otimistas nos conjuntos de dados de treinamento, validação e teste. No entanto, leva a um desempenho ruim ao fazer predições futuras de dados não vistos.

    Alguns exemplos de vazamento incluem determinados vieses: um baseado no ângulo de visão da câmera ou nas condições de iluminação (manhã/noite), um em vídeos com e sem comentaristas e um baseado nos vídeos com certos rótulos provenientes de regiões específicas, grupos de idiomas e comentaristas ou que incluam o mesmo logotipo.

    Para evitar o vazamento de dados, faça o seguinte:

    • Tenha um conjunto bem diversificado de vídeos e de amostras de segmentos.
    • Analise os vídeos para garantir que não haja dicas ocultas. Por exemplo, quando vídeos com amostras positivas são feitos durante a tarde, e os com amostras negativas são feitos durante a manhã.

Para saber mais, consulte as informações sobre como preparar os dados.

Exemplos de fontes de dados

Para ver exemplos de fonte de dados, consulte os seguintes conjuntos de dados de vídeo disponíveis ao público:

  • UCF-101: conjunto de dados de reconhecimento de ações (101 classes, multiclasse, 13.320 amostras/vídeos curtos)
  • HMDB-51: Human Motion DataBase (51 classes, multiclasse; 6.849 amostras/vídeos curtos)
  • Kinetics: conjunto de dados em grande escala para realizar o reconhecimento de ações (400/600/800 classes, multiclasse, mais de 400.000 amostras/vídeos curtos)
  • Something-Something: ações humanas com objetos (174 classes, 220.847 amostras/vídeos)
  • AVA: Atomic Visual Actions com anotações densas (80 classes, vários rótulos, 1,58 milhão de anotações em 430 clipes de vídeo de 15 min)

Como treinar o modelo

É possível usar os mesmos dados para treinar diferentes modelos e gerar tipos de predição distintos, dependendo do que você precisa. Além disso, treinar o mesmo modelo em dados iguais gera resultados um pouco diferentes. O treinamento do modelo de rede neural inclui operações aleatórias. Isso é para garantir que não seja possível treinar o mesmo modelo com entradas iguais, e as predições podem ser um pouco diferentes.

Para saber mais, consulte as informações sobre como gerenciar modelos.

Como avaliar o modelo

Depois que o modelo terminar o treinamento, será possível avaliar o desempenho em conjuntos de dados de validação e teste ou em outros novos.

As métricas comuns de classificação incluem:

  • Área sob a curva (AUC, na sigla em inglês), também conhecida como a "área sob a curva da característica de operação do receptor". A curva traça o recall da probabilidade de alarme falso em diferentes limites de pontuação. O intervalo de valores da AUC é entre 0,5 e 1. Essa métrica é usada principalmente nos problemas de classificação binária.
  • Área sob a curva de precisão/recall (AuPRC, na sigla em inglês), também conhecida como precisão média (AP, na sigla em inglês). É a integral dos valores de precisão sobre a faixa dos valores de recall. Ela é mais bem interpretada em problemas binários.
  • Valor intermediário da precisão média (mAP ou MAP, na sigla em inglês) é a média da AP em várias classes ou rótulos. Às vezes, a mAP e a AP são usadas de forma intercambiável.
  • Acurácia representa a proporção de amostras classificadas corretamente.
  • Nos problemas de binários e multiclasse, também é possível examinar a precisão e o recall em vários limites de pontuação de confiança de forma independente.
  • Se não houver muitos rótulos multiclasse, será possível examinar a matriz de confusão, que mostra quais rótulos foram mal classificados em quais predições. Como alternativa, a IU mostra as principais classes classificadas incorretamente na matriz de confusão.

Nem todas as métricas podem ser usadas nos diferentes problemas de classificação de vídeo. Por exemplo, nosso entendimento sobre precisão e recall de uma classificação binária torna-se mais ambíguo quando consideramos várias classes (problema de multiclasse), ou se houver vários rótulos válidos por amostra (problema de vários rótulos). Principalmente no último caso, não há uma métrica única muito adotada. No entanto, pense na métrica de precisão média para tomar decisões de avaliação.

Lembre-se de que avaliar o desempenho do modelo com base em um único número ou métrica é uma abordagem muito simplificada. Analise métricas diferentes e as curvas de precisão e recall, por exemplo. Avalie também as distribuições de amostras classificadas incorretamente, como na matriz de confusão.

Veja outras dicas excelentes para avaliar o modelo:

  • Tenha cuidado com a distribuição de rótulos nos conjuntos de dados de treinamento e teste. Se os conjuntos estiverem desequilibrados, as métricas de alta acurácia podem estar incorretas. Como todas as amostras têm o mesmo peso durante a avaliação por padrão, um rótulo mais frequente pode ser mais pesado. Por exemplo, se houver 10 vezes mais rótulos positivos do que negativos, e a rede decidir simplesmente atribuir todas as amostras aos rótulos positivos, você ainda terá uma acurácia de 91%. No entanto, isso não significa que o modelo treinado seja tão útil assim.

  • Tente também analisar as informações e os rótulos de predição. Por exemplo, em um script Python usando o scikit-learn. Nele, você garante diferentes maneiras de analisar o peso dos rótulos durante a avaliação. As abordagens comuns incluem média macro (as métricas são calculadas por classe e, em seguida, a média é feita), ponderada (as métricas são calculadas por classe e, em seguida, a média é feita com base nos pesos de acordo com a frequência de classes individuais) e micro (cada amostra tem o mesmo peso, mesmo se houver qualquer desequilíbrio).

  • A depuração de um modelo se concentra mais nos dados do que no modelo em si. A qualquer momento, se o modelo começar a agir de maneira inesperada enquanto você estiver avaliando o desempenho antes e depois da produção, volte e verifique os dados para ver como o modelo pode ser melhorado.

Para saber mais, consulte as informações sobre como avaliar o modelo.

Como avaliar seu modelo no Console do Google Cloud

Na guia Avaliar da IU da classificação do AutoML Video, é possível avaliar o desempenho do modelo personalizado usando a saída dele em exemplos de teste e métricas comuns de machine learning. A guia exibe as seguintes informações sobre o modelo:

  • Saída
  • Limite de pontuação
  • Verdadeiros positivos, verdadeiros negativos, falsos positivos e falsos negativos
  • Precisão e recall
  • Curvas de precisão/recall
  • Precisão média

Ao ler os dados de avaliação do modelo no Console do Google Cloud, lembre-se do seguinte:

  • A classificação do AutoML Video extrai exemplos de segmentos de vídeo dos dados de teste para apresentar desafios totalmente novos ao modelo. Para cada exemplo, são gerados vários números que servem para comunicar a intensidade com que o rótulo é associado a esse exemplo. Se o número for alto, o modelo terá certeza de que o rótulo precisa ser aplicado a esse documento.

  • É possível converter os números de confiança em um valor binário "on/off". Basta definir um limite de pontuação. O limite se refere ao nível de confiança que o modelo precisa ter para atribuir uma categoria a um item de teste. Na IU, o controle deslizante de pontuação é uma ferramenta visual para testar o impacto de diferentes limites em todas as categorias e categorias individuais do conjunto de dados. Se o limite de pontuação for baixo, o modelo classificará mais segmentos de vídeo. No entanto, você corre o risco de classificar incorretamente alguns segmentos de vídeo no processo, gerando menos falsos negativos, mas muitos falsos positivos. Se o limite de pontuação for alto, o modelo classificará menos segmentos de vídeo. No entanto, há um risco menor de classificar incorretamente os segmentos de vídeo, gerando poucos falsos positivos, mas muitos falsos negativos. 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.

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

    • Verdadeiro positivo: o modelo previu o rótulo corretamente.
    • Verdadeiro negativo: o modelo estava correto ao não prever esse rótulo.
    • Falso positivo: o modelo previu incorretamente o rótulo de um segmento de vídeo.
    • Falso negativo: o modelo não conseguiu prever o rótulo verdadeiro.

    Use essas categorias para calcular a precisão e o recall, que são métricas para avaliar a eficácia do modelo.

  • Com a precisão e o recall, é possível entender o desempenho do modelo na captura de informações e o quanto ele não está considerando. A pontuação de precisão avalia quantos exemplos de teste realmente precisavam ser categorizados com um rótulo, entre todos aqueles a que um rótulo foi atribuído. Já a de recall avalia quantos exemplos de teste foram realmente rotulados, entre todos os que precisavam ter o rótulo atribuído.

  • É possível comparar o desempenho do modelo em cada rótulo com uma matriz de confusão. Em um modelo ideal, todos os valores na diagonal são altos, e todos os outros são baixos. Isso mostra que as categorias estão sendo identificadas corretamente. Se quaisquer outros valores estiverem altos, isso indicará como o modelo está classificando incorretamente as imagens de teste.

  • 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 na barra de limite, é possível ver a posição da curva de troca de recall e precisão, além de entender como esse limite afeta a precisão e o recall individualmente. Para modelos multiclasse, 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. Assim, você encontra o melhor equilíbrio entre falsos positivos e falsos 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 de cada um. Em alguns casos, isso significa muitas predições incorretas para alguns rótulos, o que ajuda você a escolher um limite por categoria personalizado para esses rótulos.

  • Uma métrica útil para a acurácia do modelo é a área sob a curva de recall e precisão. Ela avalia o desempenho do modelo em todos os limites de pontuação. No AutoML Video, essa métrica é chamada de precisão média. Quanto mais próxima de 1 for essa pontuação, melhor será o desempenho do modelo no conjunto de teste. Um modelo que adivinhar aleatoriamente cada rótulo terá uma precisão média em torno de 0,5.

Como testar o modelo

A classificação do AutoML Video usa 30% dos seus dados automaticamente ou, se você mesmo escolher a divisão de dados, a porcentagem que optou para testar o modelo. A guia Avaliar na IU da classificação do AutoML Video mostra o desempenho do modelo nos dados de teste. Se você quiser, há algumas maneiras de verificar a integridade do modelo. Uma delas é fornecer um arquivo CSV com dados de vídeo para teste na guia "Testar e usar" e observar os rótulos que o modelo prevê para os vídeos. Com sorte, eles vão corresponder às suas expectativas.

É possível ajustar o limite na visualização de predições, além de analisá-las em três escalas temporais: intervalos de um segundo, fotos de câmeras de vídeo após a detecção automatizada no limite de captura e segmentos de vídeo inteiros.

Como melhorar o desempenho do modelo

Para continuar melhorando o desempenho inicial do modelo, adote algumas abordagens diferentes:

  • Aumente o número de amostras rotuladas, especialmente nas classes sub-representadas.
  • Examine atentamente onde o modelo não tem um desempenho tão bom:

    • Talvez uma classe seja muito ampla e precise ser dividida em duas ou mais?
    • Ou talvez algumas classes sejam muito específicas e possam ser mescladas sem afetar o objetivo final do projeto?
    • Rotule mais amostras, especialmente nas classes com os piores desempenhos.
  • Se aplicável, mude o problema de multiclasse para vários rótulos. Geralmente é mais fácil treinar um modelo de rede neural que classifica amostras em classes separadas do que tentar prever um conjunto de rótulos de comprimento desconhecido para cada amostra.

  • Reduza o desequilíbrio dos dados. Adicione mais amostras ou tente reduzir o número das que têm classe de alta frequência, especialmente nos casos em que há um grande desequilíbrio. Por exemplo, de 1 a 100 ou mais.

  • Verifique cuidadosamente e tente evitar qualquer vazamento de dados.

  • Elimine classes menos críticas para se concentrar em algumas mais importantes.

  • Revise outras opções disponíveis para você na página de suporte.