Introdução
Este guia para iniciantes é uma introdução ao AutoML. Para entender as principais diferenças entre o AutoML e o treinamento personalizado, consulte Como escolher um método de treinamento.
Imagine:
- Você é técnico de um time de futebol.
- Você faz parte do departamento de marketing de um varejista digital.
- Você está trabalhando em um projeto arquitetônico que identifica tipos de edifícios.
- Sua empresa disponibiliza um formulário de contato no site.
O trabalho de selecionar vídeos, imagens, textos e tabelas manualmente é uma tarefa tediosa e demorada. Não seria mais fácil ensinar um computador a identificar e sinalizar automaticamente o conteúdo?
Imagem
Você trabalha 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 capturas de tela de casas para filtrar. No entanto, tentar categorizar todas essas imagens manualmente é monótono e propenso a erros. Um estagiário atribuiu identificadores a algumas centenas delas alguns meses atrás, mas ninguém mais analisou os dados. Seria tão útil se você pudesse ensinar seu computador a fazer essa análise por você!
Tabular
Você trabalha no departamento de marketing de um varejista digital. Você e sua equipe estão
criando um programa de e-mail personalizado com base nos perfis dos clientes. Você criou os perfis e os e-mails de marketing prontos para uso. Agora, você precisa criar um sistema que agrupe os clientes em cada perfil com base nas preferências de compras e no comportamento de gastos, mesmo no caso de novos clientes. Para maximizar o engajamento do cliente, você também quer prever os hábitos de consumo para
otimizar quando enviar e-mails.
Como sua empresa é um varejista digital, você tem dados sobre os clientes e as compras que eles fizeram. Mas e quanto aos clientes novos? É possível calcular esses valores dos clientes atuais com longos históricos de compras usando as abordagens tradicionais. No entanto, essa abordagem não funciona quando aplicada a clientes com poucos dados históricos. E se fosse possível criar um sistema capaz de prever esses valores e acelerar a entrega de programas de marketing personalizados aos clientes?
Felizmente, o machine learning e a Vertex AI estão bem posicionados para resolver esses problemas.
Texto
Sua empresa disponibiliza um formulário de contato no site. Todos os dias você recebe muitas mensagens do formulário, e muitas delas são acionáveis de alguma forma. Como todos se reúnem, é fácil
ficar atrasado em lidar com eles. Diferentes funcionários lidam com diferentes tipos de mensagens.
Seria ótimo se um sistema automatizado pudesse categorizá-las para que a pessoa certa visse
os comentários certos.
Você precisa de um sistema para analisar os comentários e decidir se eles representam reclamações, elogios por serviços anteriores, envolvem uma tentativa de saber mais sobre sua empresa, uma solicitação para agendar um horário ou são uma tentativa de estabelecer uma relação.
Vídeo
Você tem uma grande biblioteca de vídeos de jogos que quer usar para análise. No entanto, há centenas de horas de vídeo para analisar. Assistir a todos os vídeos e marcar manualmente os segmentos para destacar cada ação é um trabalho tedioso e demorado. E você precisa repetir esse trabalho em todas as temporadas. Agora imagine um modelo de computador que pode identificar e sinalizar automaticamente essas ações para você sempre que aparecerem em um vídeo.
Veja alguns cenários específicos de objetivos.
- Reconhecimento de ação: encontre ações como fazer um gol, causar uma falta, cobrar um
pênalti. Útil para treinadores que estudam os pontos fortes e fracos da equipe.
- Classificação: classifique cada cena do vídeo como primeiro/segundo tempo, visualização do jogo, visualização do público, visualização do treinador. Útil para treinadores que buscam apenas as cenas que os interessam.
- Rastreamento de objetos: rastreie a bola ou os jogadores. Útil para treinadores para receber estatísticas dos jogadores, como mapa de calor no campo e passadas bem-sucedidas.
Neste guia, mostramos como a Vertex AI funciona para conjuntos de dados e modelos do AutoML e ilustramos os tipos de problemas que a Vertex AI foi projetada para resolver.
Uma observação sobre imparcialidade
O Google tem o compromisso de fazer progresso nas práticas responsáveis de IA. Para isso, nossos produtos de ML, incluindo o AutoML, foram projetados com base em princípios básicos como imparcialidade e machine learning centrado no ser humano. Para mais informações sobre as práticas recomendadas para minimizar o viés ao criar seu próprio sistema de ML, consulte o Guia de ML inclusivo: AutoML.
Por que a Vertex AI é a ferramenta certa para esse problema?
A programação clássica requer que o programador especifique instruções passo a passo a serem seguidas. Mas considere o caso de uso na identificação de ações específicas em jogos de futebol. Há muita variação de cor, ângulo, resolução e iluminação que exigiriam a codificação de muitas regras para ensinar uma máquina a tomar a decisão correta. É difícil imaginar por onde você começaria. Ou o caso em que os comentários dos clientes, que usam uma estrutura e um vocabulário amplos e variados, são muito diversos para serem capturados por um simples conjunto de regras. Se você tentar criar filtros manuais, perceberá rapidamente que não conseguiu categorizar a maioria dos comentários dos clientes. Você precisa de um sistema que generalize uma grande variedade de comentários. Em um cenário em que uma sequência de regras específicas se amplia exponencialmente, você precisa de um sistema que aprenda a partir de exemplos.
Felizmente, o machine learning está propício para resolver esses problemas.
Como a Vertex AI funciona?
A Vertex AI envolve tarefas de aprendizado supervisionadas para conseguir
um resultado pretendido.
As especificidades dos algoritmos e dos métodos de treinamento mudam com base no
tipo de dados e no
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.
Imagem
Você treina, testa e valida o modelo de machine learning com exemplos de imagens que são anotados com rótulos para classificação ou com rótulos e caixas delimitadoras para detecção de objetos. Com o aprendizado supervisionado, é possível treinar um modelo para reconhecer os padrões e o conteúdo que queremos nas imagens.
Tabular
Você treina um modelo de machine learning com dados de exemplo. A Vertex AI usa dados
em tabela (estruturados) para treinar um modelo de machine learning para fazer
previsões sobre novos dados. O modelo aprenderá a prever uma coluna
do conjunto de dados, chamada de objetivo. Um determinado número das demais colunas
de dados servem de entradas, chamadas de recursos, que o modelo usará para aprender padrões. É possível
usar os mesmos atributos de entrada para criar vários tipos de modelos.
Basta alterar a coluna de destino e as opções de treinamento. No exemplo de marketing de e-mail, isso
significa que é possível criar modelos com os mesmos atributos de entrada, mas com previsões
de destino diferentes. Um modelo pode prever o perfil de um cliente (um objetivo categórico), outro pode prever o gasto mensal (um objetivo numérico) e o outro pode prever a demanda diária dos produtos nos próximos três meses (série de objetivos numéricos).
Texto
Com a Vertex AI, você realiza a aprendizagem supervisionada. Isso envolve o treinamento de um computador para reconhecer padrões de dados rotulados. Com o aprendizado supervisionado, é possível treinar um modelo do AutoML para reconhecer o conteúdo de seu interesse.
Vídeo
Você treina, testa e valida o modelo de machine learning com vídeos já rotulados. Com um modelo treinado, é possível inserir novos vídeos no modelo, que gera segmentos de vídeo com rótulos. Um trecho de vídeo define o ajuste do horário de início e término em um vídeo. O segmento pode ser o vídeo inteiro, o segmento de tempo definido pelo usuário, a captura de vídeo detectada automaticamente ou apenas um carimbo de data/hora no caso em que o horário de início é o mesmo que o horário de término. O rótulo é uma "resposta" prevista no modelo. Por exemplo, nos casos de uso de futebol mencionados anteriormente, para cada novo vídeo de futebol, dependendo do tipo de modelo:
- um modelo treinado de reconhecimento de ação gera ajustes de tempo no vídeo com rótulos que descrevem cenas de ação como "gol", "falta" e assim por diante.
- um modelo treinado de classificação gera segmentos de imagem com identificadores definidos pelo usuário automaticamente, como "visualização do jogo", "visualização do público".
- Um modelo de rastreamento de objetos treinado acompanha as bolas de futebol ou os jogadores por meio de caixas delimitadoras nos frames em que os objetos aparecem.
Fluxo de trabalho da Vertex AI
A Vertex AI usa um fluxo de trabalho de machine learning padrão:
- Coleta de dados: determine os dados necessários para treinar e testar o modelo com base no resultado pretendido.
- Preparação dos dados: verifique se os dados estão formatados e rotulados corretamente.
- Treinamento: defina os parâmetros e crie o modelo.
- Avaliação: analise as métricas do modelo.
- Implantação e previsão: disponibilize o modelo para uso.
Mas, antes de começar a coleta dos dados, você precisa pensar no problema que está tentando resolver. Isso informará seus requisitos de dados.
Preparação de dados
Avaliar o caso de uso
Comece com seu problema: qual é o resultado que você quer alcançar?
Imagem
Ao definir o conjunto de dados, sempre comece pelo caso de uso. Comece perguntando:
- Que resultado você está tentando alcançar?
- Que tipos de categorias ou objetos você precisa reconhecer para alcançar esse resultado?
- Pessoas são capazes de reconhecer essas categorias? A Vertex AI consegue processar uma maior magnitude de categorias do que as pessoas conseguem memorizar e atribuir a qualquer momento. Se uma pessoa não consegue reconhecer uma determinada categoria, a Vertex AI também terá dificuldades em fazer isso.
- Que exemplos refletem com mais precisão o tipo e o intervalo de dados que seu sistema verá e tentará classificar?
Tabular
Que tipo de dados estão na coluna de objetivo? Qual a quantidade de dados a que você tem acesso? Dependendo das suas respostas, a Vertex AI cria o modelo necessário para resolver seu caso de uso:
- Um modelo de classificação binária prevê um resultado binário, ou seja, que tenha uma entre duas classes. Esse tipo de modelo é adequado para perguntas com resposta “sim” ou “não”. Por exemplo, para prever se um cliente estaria disposto (ou não) a adquirir uma assinatura. Em circunstâncias iguais, um problema de classificação binária requer menos dados do que outros tipos de modelo.
- Um modelo de classificação multiclasse prevê um resultado que tenha uma entre três ou mais classes distintas. Esse tipo de modelo é adequado para categorizações. No exemplo do varejista, convém criar um modelo de classificação multiclasse para segmentar os clientes em perfis diferentes.
- Um modelo de previsão prevê uma sequência de valores. Por exemplo, como varejista, você pode prever a demanda diária dos seus produtos nos próximos três meses para poder estoque adequadamente nos estoques com antecedência.
- Um modelo de regressão prevê um resultado com valor contínuo. Para o exemplo de varejo, é conveniente criar um modelo de regressão para prever quanto um cliente gastará no próximo mês.
Texto
Ao definir o conjunto de dados, sempre comece pelo caso de uso. Comece perguntando:
- Que resultado você está tentando alcançar?
- Que tipos de categorias você precisa reconhecer para alcançar esse resultado?
- Pessoas são capazes de reconhecer essas categorias? A Vertex AI suporta mais categorias do que as pessoas podem memorizar e atribuir a qualquer momento. No entanto, se uma pessoa não conseguir reconhecer uma determinada categoria, a Vertex AI também terá dificuldades em fazer isso.
- Que exemplos refletem com mais precisão o tipo e o intervalo de dados que seu sistema classificará?
Vídeo
Dependendo do resultado que você está tentando alcançar, selecione o objetivo de modelo apropriado:
- Para detectar momentos de ação em um vídeo, como a identificação de um gol, uma falta feita ou uma cobrança de pênalti, use o objetivo de reconhecimento de ação.
- Para classificar cenas de TV nas seguintes categorias, comerciais, de notícias, programas de TV e assim por diante, use o objetivo de classificação.
- Para localizar e rastrear objetos em um vídeo, use o objetivo de rastreamento de objetos.
Consulte Como preparar dados de vídeo para mais informações sobre as práticas recomendadas ao preparar conjuntos de dados para objetivos de reconhecimento de ação, classificação e rastreamento de objetos.
Coletar dados
Depois de estabelecer o caso de uso, você precisará coletar dados para criar o modelo pretendido.
Imagem
Depois de estabelecer os dados necessários, encontre uma maneira de extraí-los. Comece considerando todos os dados que sua organização coleta. Talvez você já esteja
coletando os dados relevantes necessários para treinar um modelo. Caso não tenha esses dados,
é possível consegui-los manualmente ou contar com um provedor terceirizado.
Incluir exemplos rotulados suficientes em cada categoria
O mínimo necessário para o treinamento da Vertex AI é 100 exemplos de imagens por categoria/rótulo para classificação.
A probabilidade de um rótulo ser reconhecido corretamente aumenta com o número de exemplos de alta qualidade para cada um. Em geral, quanto mais dados rotulados você trouxer para o processo de treinamento, melhor será o modelo. Segmente pelo menos 1.000 exemplos por rótulo.
Distribuir exemplos igualmente entre categorias
É importante capturar quantidades similares de exemplos de treinamento para cada categoria. Mesmo que
você tenha muitos dados para um único rótulo, é 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 a sempre dizer que uma foto representa uma casa unifamiliar
moderna, em vez de tentar prever 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 perceberá que pode responder "C" todas as vezes sem nem ler
a pergunta.
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. For example, if you're trying to classify photos of consumer
electronics into categories, the wider a variety of consumer electronics the model is exposed to
in training, the more likely it'll be able to distinguish between a novel model of tablet,
phone, or laptop, even if it's never seen that specific model before.
Relacionar dados à saída pretendida do modelo
Encontre imagens visualmente semelhantes às que você pretende usar para fazer previsões. Se você estiver
tentando classificar imagens de casas tiradas 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.
Tabular
Depois de estabelecer o caso de uso, será necessário coletar dados para treinar o modelo.
A definição da origem de dados e a preparação são etapas fundamentais para a criação de um modelo de machine learning.
Os dados disponíveis informam o tipo de problema que você pode resolver. Qual a quantidade de dados
que você tem disponível? Seus dados são relevantes para as perguntas que você está tentando responder? Ao
coletar seus dados, lembre-se das considerações a seguir.
Selecionar atributos relevantes
Um atributo é uma entrada usada no treinamento do modelo. Os atributos são os elementos usados pelo modelo para identificar padrões para fazer previsões. Portanto, eles precisam ser relevantes para o problema. Por exemplo, para criar um modelo que prevê se uma transação com cartão de crédito é fraudulenta ou não, será necessário criar um conjunto de dados que contenha detalhes da transação, como comprador, vendedor, valor, itens comprados, data e hora. Outros atributos possivelmente úteis são as informações históricas sobre o comprador e o vendedor e com que frequência houve fraudes na compra do item em questão. Que outros atributos talvez sejam relevantes?
Considere o caso de uso de e-mail marketing do varejista da introdução. estas são algumas colunas de atributo que provavelmente serão necessárias:
- Lista de itens comprados (incluindo marcas, categorias, preços e descontos)
- Número de itens comprados (último dia, semana, mês e ano)
- Soma do valor gasto (último dia, semana, mês e ano)
- Para cada item, número total vendido por dia
- Para cada item, total em estoque a cada dia
- Se você está fazendo uma promoção por um dia específico
- Perfil demográfico conhecido do comprador
Incluir dados suficientes
Em geral, quanto mais exemplos de treinamento houver, melhor serão os resultados. A quantidade necessária
de dados de exemplo também aumenta ou diminui conforme a complexidade do problema que você quer solucionar. Não é
necessário reunir muitos dados para ter um modelo de classificação binária preciso, em comparação à quantidade exigida por um modelo multiclasses,
porque é menos complicado prever uma classe entre duas do que entre várias.
Não há uma fórmula perfeita. No entanto, há valores mínimos recomendados para os dados de exemplo:
- Problema de classificação: 50 linhas x o número de recursos
- Problema de previsão:
- 5.000 linhas x o número de atributos
- 10 valores exclusivos na coluna de identificador de série temporal x o número de atributos
- Problema de regressão: 200 x o número de atributos
Capturar variações
É necessário que o conjunto de dados capture a diversidade do espaço do problema. Quanto mais exemplos diversos um modelo vê durante o treinamento, mais rápido ele pode generalizar para exemplos novos ou menos comuns. Imagine se o modelo de varejo fosse treinado usando apenas dados de compras no período de inverno. Ele seria capaz de prever satisfatoriamente as preferências de vestuário ou os comportamentos de consumo no verão?
Texto
Depois de determinar quais dados são necessários, encontre uma maneira de rastreá-los. Para
começar, considere todos os dados que sua organização coleta. Você pode descobrir que já
está coletando os dados necessários para treinar um modelo. Se você não tiver os dados de que
precisa, é possível reuni-los manualmente ou terceirizar essa tarefa.
Incluir exemplos rotulados suficientes em cada categoria
A probabilidade de um rótulo ser reconhecido corretamente aumenta com o número de exemplos
de alta qualidade para cada um. Em geral, quanto mais dados rotulados você trouxer para o processo de treinamento,
melhor será o modelo. O número de
amostras necessárias também varia com o grau de
consistência nos dados que você quer
prever e com o nível de precisão desejado. É possível usar
menos exemplos para conjuntos de dados consistentes ou para ter 80% de precisão em vez de 97%.
Treine um modelo e avalie os resultados. Adicione mais exemplos e
treine novamente até atingir as metas de precisão, o que pode exigir que centenas ou até milhares de
exemplos por rótulo. Para mais informações sobre requisitos e recomendações de dados, consulte
Como preparar
dados de treinamento de texto para modelos do AutoML
Distribuir exemplos igualmente entre categorias
É importante capturar uma quantidade semelhante de exemplos de treinamento para cada categoria. Mesmo que
você tenha muitos dados para um único rótulo, é melhor ter uma distribuição igual para
cada um deles. Para entender o motivo, imagine que 80% dos comentários dos clientes usados para criar o modelo
são solicitações de orçamento. Com uma distribuição de rótulos tão desigual, o modelo provavelmente
aprenderá que um comentário de
cliente é sempre uma solicitação de orçamento, em vez de
tentar prever 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.
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, 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 fazer com que os dados capturem a variedade e a diversidade do
espaço do problema. Se você fornece um conjunto mais amplo de exemplos, a capacidade
do modelo de generalizar
dados novos é maior. Imagine que você esteja tentando classificar artigos sobre produtos eletrônicos de consumo em tópicos. Quanto mais
nomes de marca e especificações técnicas você fornecer, mais fácil será para o modelo
descobrir o tópico de um artigo, mesmo que seja sobre uma marca que não estava
no conjunto de treinamento. Também é possível incluir um rótulo "none_of_the_above" para
os documentos que não correspondem a nenhum dos rótulos definidos. Isso melhora ainda mais o desempenho do modelo.
Relacionar dados à saída pretendida do modelo
Encontre exemplos de texto semelhantes aos que você está tentando prever. Se o objetivo for classificar postagens em mídias sociais sobre vidro soprado, é pouco provável conseguir um bom desempenho com um modelo treinado em sites de informação sobre esse assunto, já que o vocabulário e o estilo podem ser muito diferentes. 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.
Vídeo
Depois de estabelecer o caso de uso, você precisará coletar dados de vídeo para criar o modelo. Os dados coletados para o treinamento informam os tipos de problemas que
podem ser resolvidos. Quantos vídeos você pode usar? Os vídeos contêm exemplos suficientes de
previsão do modelo? Ao coletar seus dados de vídeo, lembre-se das considerações a seguir.
Inclua vídeos suficientes
Geralmente, quanto mais vídeos de treinamento no conjunto de dados, melhor o resultado. O número de
vídeos recomendados também é determinado pela complexidade do problema que você está tentando resolver. Por
exemplo, no caso de classificação, você precisará de menos dados de vídeo para um problema de classificação binária
(previsão de uma classe de dois) do que um problema de vários rótulos (previsão de uma ou mais classes
de muitas).
A complexidade de o que você quer fazer também determina a quantidade de dados de vídeo que você precisa. Considere o caso de uso do futebol para a classificação, que está criando um modelo para distinguir as cenas de ações, em vez de treinar um modelo capaz de classificar estilos diferentes. Por exemplo, para distinguir entre nado de peito, borboleta, nado de costas etc., você precisará de mais dados de treinamento para identificar os diferentes estilos de nado para ajudar o modelo a aprender a identificar cada tipo com precisão. Consulte Como preparar dados de vídeo para orientação para entender as necessidades mínimas de dados de vídeo para reconhecimento de ações, classificação e rastreamento de objetos.
Talvez a quantidade de dados de vídeo necessária seja maior do que a atual. É possível conseguir mais vídeos por intermédio de um fornecedor terceirizado. Por exemplo, é possível comprar ou receber mais vídeos de beija-flores se não houver o suficiente para o modelo identificador de ação.
Distribua vídeos igualmente entre as classes
Forneça um número similar de exemplos de treinamento para cada classe. O motivo é simples: imagine que
80% do conjunto de dados de treinamento sejam vídeos de futebol de chutes ao gol, mas apenas 20% deles
retratem faltas ou cobranças de pênalti. Com uma distribuição tão desigual de classes, é mais provável
que o modelo preveja que uma determinada ação é um gol. Isso é parecido com criar um teste de múltipla escolha em que 80% das respostas corretas são “C”: o modelo mais aprimorado descobrirá rapidamente que “C” é um bom palpite na maioria das vezes.
Talvez não seja possível fornecer um número igual de vídeos para cada classe. Os exemplos imparciais e de alta qualidade também podem ser complicados em algumas classes. Basta seguir uma proporção de 1:10: se a maior classe tiver 10.000 vídeos, a menor terá pelo menos 1.000.
Capture variações
Os dados de vídeo precisam capturar a diversidade do espaço do seu problema. Quanto mais exemplos diversos um modelo vê durante o treinamento, mais rápido ele pode generalizar para exemplos novos ou menos comuns. Pense no modelo de classificação de ações de futebol: você precisa incluir vídeos com vários ângulos de filmagem, horários de dia e à noite e muitas jogadas. Expor o modelo a dados variados melhora a capacidade dele de distinguir uma ação da outra.
Relacione os dados ao resultado pretendido
![relacionar dados à saída pretendida](https://cloud.google.com/static/vertex-ai/docs/beginner/images/match-data-to-intended-output.png?authuser=9&hl=pt)
Encontre vídeos de treinamento que sejam visualmente semelhantes aos que você planeja inserir no modelo de previsão. Por exemplo, se todos os vídeos de treinamento foram filmados no inverno ou à noite, os padrões de iluminação e cor nesses ambientes afetarão o modelo. Se você usá-lo para testar vídeos filmados no verão ou à luz do dia, talvez não receba previsões precisas.
Considere estes outros fatores: resolução do vídeo, quadros por segundo do vídeo, ângulo de filmagem, plano de fundo.
Preparar os dados
Imagem
Depois de decidir qual é a opção ideal para você, uma divisão manual ou a padrão, adicione dados à
Vertex AI usando um dos seguintes métodos:
- É possível importar os dados do seu computador ou do Cloud Storage em um formato disponível (CSV ou linhas JSON) com os identificadores (e caixas delimitadoras, se necessário) in-line. Para mais informações sobre o formato do arquivo de importação, consulte Como preparar os dados de treinamento. Se quiser dividir o conjunto de dados manualmente, especifique as divisões no arquivo de importação CSV ou linhas JSON.
- Se os dados não foram anotados, é possível fazer upload de imagens sem rótulo e usar o Console do Google Cloud para aplicar anotações. É possível gerenciar essas anotações em vários conjuntos de anotações para o mesmo conjunto de imagens. Por exemplo, para um único conjunto de imagens, você pode ter um conjunto de anotações com uma caixa delimitadora e informações de rótulo para fazer a detecção de objetos, além de ter outro conjunto de anotações com apenas anotações de rótulo para classificação.
Tabular
Depois de identificar os dados disponíveis, é necessário ter certeza de que eles estão prontos para o treinamento.
Se os dados estiverem com viés ou tiverem valores ausentes ou incorretos, isso afetará a qualidade do modelo. Pense nos pontos abaixo antes de começar a treinar um modelo.
Saiba mais
Evitar vazamento de dados e distorção entre treinamento e exibição
O vazamento de dados ocorre quando são usados atributos de entrada durante o treinamento que “vazam” informações sobre o objetivo que você quer prever, que não fica disponível quando o modelo é exibido. É possível detectar esse tipo de ocorrência quando um atributo altamente correlacionado com a coluna de objetivo é incluso como um dos atributos de entrada. Por exemplo, imagine que você esteja criando um modelo para prever se um cliente adquirirá uma assinatura no próximo mês e um dos atributos de entrada é um pagamento futuro pela assinatura realizado por esse cliente. Isso pode resultar em um forte desempenho do modelo durante o teste, mas não quando ele for implantado na produção, já que as informações futuras de pagamentos pela assinatura não estarão disponíveis no momento da exibição.
A distorção entre treinamento e exibição ocorre quando os atributos de entrada usados durante o treinamento são diferentes daqueles fornecidos ao modelo durante a exibição, resultando na má qualidade do modelo quando em produção. Por exemplo, criar um modelo para prever as temperaturas a cada hora, mas treiná-lo com dados que contêm apenas temperaturas por semana. Outro exemplo seria sempre fornecer as notas de um aluno nos dados de treinamento ao prever a evasão escolar, mas não fornecer essas informações no momento de exibição.
Entender os dados de treinamento é importante para evitar o vazamento de dados e a distorção entre treinamento e exibição:
- Antes de usar qualquer dado, verifique se você sabe o que eles significam e se eles servem ou não como atributo.
- Verifique a correlação na guia "Treinar". Correlações altas precisam ser sinalizadas para revisão.
- Quanto à distorção entre treinamento e exibição, verifique se foram fornecidos ao modelo apenas atributos de entrada que estão disponíveis exatamente no mesmo formato no momento da exibição.
Limpar dados ausentes, incompletos e inconsistentes
É comum que os dados de exemplo incluam valores ausentes e imprecisos. Reserve um tempo para revisar e, se possível, melhorar a qualidade dos dados antes de usá-los no treinamento. Quanto mais valores ausentes, menos úteis serão os dados para treinar um modelo de machine learning.
- Verifique seus dados quanto a valores ausentes e corrija-os, se possível, ou deixe o valor em branco se a coluna estiver definida como anulável. A Vertex AI pode cuidar de valores ausentes, mas há mais chances de você conseguir melhores resultados se todos os valores estiverem disponíveis.
- Para previsão, verifique se o intervalo entre as linhas de treinamento é consistente. A Vertex AI pode cuidar de valores ausentes, mas há mais chances de você conseguir melhores resultados se todas as linhas estiverem disponíveis.
- Corrija ou exclua erros ou ruídos para limpar os dados. Garanta que os dados sejam consistentes: revise a ortografia, as abreviações e a formatação.
Analisar os dados após a importação
A Vertex AI oferece uma visão geral do conjunto de dados após a importação. Revise o conjunto de dados importado para garantir que cada coluna tenha o tipo de variável correto. A Vertex AI detectará automaticamente o tipo de variável com base nos valores das colunas, mas o melhor é analisar cada uma delas. Além disso, analise em cada coluna a nulidade, que determina se uma coluna pode ter valores ausentes ou NULOS.
Texto
Depois de decidir qual é a opção ideal para você, uma divisão manual ou a padrão, adicione
dados à Vertex AI usando um dos seguintes
métodos:
- Importe os dados do seu computador ou do Cloud Storage no formato CSV ou linhas JSON com os rótulos inline, conforme especificado em Como preparar seus dados de treinamento. Se quiser dividir o conjunto de dados manualmente, especifique as divisões no arquivo CSV ou linhas JSON.
- Se os dados não tiverem sido rotulados, será possível fazer upload de exemplos de texto não rotulados e usar o console da Vertex AI para aplicar rótulos.
Vídeo
Depois de coletar os vídeos que você quer incluir no conjunto de dados, verifique se os
vídeos contêm rótulos associados a segmentos ou caixas delimitadoras de vídeo. Para reconhecimento de ações,
o trecho de vídeo é um carimbo de data/hora e, para a classificação, o trecho pode ser uma cena de vídeo, um
trecho ou o vídeo inteiro. Para rastreamento de objetos, os rótulos são associados a caixas delimitadoras.
Por que meus vídeos precisam de caixas delimitadoras e rótulos?
Para rastrear um objeto, como um modelo da Vertex AI aprende a identificar padrões? É para isso que os rótulos e caixas delimitadoras são usados durante o treinamento. No exemplo do futebol: cada vídeo de exemplo precisará conter caixas delimitadoras em torno dos objetos que você tem interesse em detectar. Essas caixas também precisam de rótulos como "pessoa" e "bola" atribuídos a elas. Caso contrário, o modelo não saberá o que procurar. Desenhar caixas e atribuir rótulos aos exemplos de vídeos pode demorar.
Se os dados ainda não tiverem identificadores, também será possível fazer upload dos vídeos sem identificadores e usar o console do Google Cloud para aplicar caixas delimitadoras e identificadores. Para mais informações, consulte Rotular dados usando o console do Google Cloud.
Treinar modelo
Imagem
Pense em como a Vertex AI 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 Preparar seus dados), a Vertex AI usará automaticamente 80% das imagens para treinamento,
10% para validação e 10% para testes.
Conjunto de treinamento
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
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 framework utiliza o desempenho do modelo 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, o modelo provavelmente 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
do modelo.
Conjunto de teste
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
será o desempenho do modelo com dados reais.
Divisão manual
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 vida do treinamento do modelo.
Tabular
Após importar o conjunto de dados, a próxima etapa é treinar um modelo. A Vertex AI gerará um modelo de machine learning confiável com os padrões de treinamento. No entanto, talvez você queira ajustar alguns dos parâmetros de acordo com seu caso de uso.
Selecione o máximo possível de colunas de atributos para o treinamento, mas analise cada uma para garantir que sejam apropriadas. Lembre-se do seguinte ao selecionar os atributos:
- Não selecione colunas de atributos que vão causar ruídos, como colunas de identificador atribuídas aleatoriamente com um valor exclusivo para cada linha.
- Certifique-se de entender cada coluna de recursos e os valores correspondentes.
- Se você pretende criar vários modelos usando um único conjunto de dados, remova as colunas de objetivo que não fazem parte do problema de previsão atual.
- Lembre-se dos princípios de imparcialidade: você está treinando o modelo com um atributo que poderia resultar em decisões enviesadas ou injustas com relação a grupos marginalizados?
Como a Vertex AI usa o conjunto de dados
O conjunto de dados é dividido em conjuntos de treinamento, validação e teste. A
divisão padrão que o Vertex AI aplica depende do tipo de modelo que
você está treinando. Também é possível especificar as divisões (as divisões manuais), se
necessário. Para mais informações, consulte Sobre divisões de dados para modelos do
AutoML.
Conjunto de treinamento
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
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 framework utiliza o desempenho do modelo 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, o modelo provavelmente 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
do modelo.
Conjunto de teste
O conjunto de teste não faz parte do processo de treinamento. Depois que o treinamento do modelo for
totalmente concluído, a Vertex AI usará o conjunto de teste como um desafio completamente novo para o modelo.
O desempenho do modelo no conjunto de teste serve para que você tenha uma boa ideia de como ele vai lidar com dados reais.
Texto
Pense em como a Vertex AI usa o conjunto de dados para 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, conforme explicado em Preparar seus
dados, a Vertex AI usa automaticamente 80% dos seus documentos
de conteúdo para treinamento, 10% para validação e 10% para testes.
Conjunto de treinamento
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
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 framework utiliza o desempenho do modelo 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, o modelo provavelmente 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
do modelo.
Conjunto de teste
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 desafio completamente novo para o modelo. O
desempenho do modelo no conjunto de teste serve para que você tenha uma boa ideia de como
será o desempenho do modelo com dados reais.
Divisão manual
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 vida do treinamento do modelo.
Vídeo
Depois que os dados do vídeo de treinamento estiverem prontos, será possível criar um modelo de machine learning. Observe que é possível criar conjuntos de anotações para objetivos de modelo diferentes no mesmo conjunto de dados. Consulte Como criar um conjunto de anotações.
Um dos benefícios da Vertex AI é que os parâmetros padrão orientarão você a um modelo de machine learning confiável. No entanto, talvez você precise ajustar parâmetros dependendo da qualidade dos dados e do resultado pretendido. Exemplo:
- Tipo de previsão é o nível de granularidade em que os vídeos são processados
- Frame rate é importante se os rótulos que você quer classificar forem sensíveis a alterações de movimento, como no reconhecimento de ação. Por exemplo, considere corrida e caminhada. Um clipe de caminhada com poucos frames por segundo pode parecer uma corrida. O rastreamento de objetos também é sensível ao frame rate. Basicamente, o objeto rastreado precisa ter sobreposição suficiente entre os frames adjacentes.
- Resolução para o rastreamento de objetos é mais importante do que para o reconhecimento de ação ou a classificação de vídeo. Quando os objetos forem pequenos, certifique-se de fazer upload de vídeos com maior resolução. O pipeline atual usa 256x256 para treinamento normal ou 512x512 se houver muitos objetos pequenos (com área inferior a 1% da área da imagem) nos dados do usuário. A recomendação é usar vídeos de no mínimo 256 pixels. O uso de vídeos de maior resolução pode não ajudar a melhorar o desempenho do modelo, uma vez que os frames de vídeo são reduzidos para aumentar a velocidade de treinamento e inferência.
Avaliar, testar e implantar seu modelo
Avaliar o modelo
Image
Depois que o treinamento do modelo for concluído, você receberá um resumo do desempenho do modelo. Clique em avaliar ou ver avaliação completa para visualizar uma análise detalhada.
A depuração de um modelo se refere mais à depuração dos dados do que do 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 eles podem ser
melhorados.
Quais tipos de análise posso executar na Vertex AI?
Na seção de avaliação da Vertex AI, é possível verificar o desempenho do modelo personalizado usando o resultado do modelo em exemplos de teste e métricas comuns de machine learning. Nesta seção, abordaremos o significado de cada um desses conceitos.
- 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
Como interpretar a saída do modelo?
A Vertex AI extrai exemplos dos dados de teste para apresentar desafios totalmente novos para o
modelo. Para cada exemplo, o modelo gera vários números que informam a intensidade com que
cada 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.
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. O controle deslizante de limite de pontuação no console do Google Cloud é uma ferramenta visual para testar o efeito de diferentes limites para todas as categorias individuais e categorias no conjunto de dados.
Se o limite de pontuação for baixo, o modelo classificará mais imagens, mas haverá o risco de algumas serem classificadas incorretamente. Se o limite de pontuação for alto, o modelo classificará menos imagens, mas o risco de classificação incorreta será menor. É possível ajustar os limites por categoria no console do Google Cloud para experimento. No entanto, ao usar o modelo na produção, é necessário aplicar os limites que você achou ideais.
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 classificadas em uma
destas quatro categorias:
os limites que você achou ideais.
É 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 precisaram ser categorizados com determinado rótulo, dentre todos os que receberam um rótulo. O recall indica, de todos os exemplos
de teste que deveriam ter recebido um determinado rótulo, quantos realmente foram rotulados.
É necessário otimizar a precisão ou o recall?
Dependendo do caso de uso, é preciso otimizar a precisão ou o recall. Considere os dois casos de uso a seguir ao decidir qual abordagem funciona melhor para você.
Caso de uso: privacidade em imagens
Suponha que você queira criar um sistema que detecte automaticamente informações sensíveis e desfoque-as.
Neste caso, os falsos positivos são elementos que não precisam ser desfocados, mas são,
o que pode ser irritante, mas não prejudicial.
Neste caso, os falsos negativos são elementos que precisam ser desfocados, mas não são,
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 estão sendo deixados de fora em todas as previsões feitas. Um modelo de alto recall provavelmente identificará exemplos marginalmente relevantes. Isso é útil para casos em que sua categoria tem dados de treinamento escassos.
Caso de uso: pesquisa em banco de fotos
Suponha que você queira criar um sistema que encontre a melhor foto em um banco de fotos com uma determinada palavra-chave.
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.
Neste caso, 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, não é um grande problema.
Neste caso, é melhor otimizar a precisão. Essa métrica mede, em todas as previsões feitas, o quanto elas estão corretas. Um modelo de alta precisão provavelmente rotulará apenas os exemplos mais relevantes, o que é útil para casos em que a classe é comum nos dados de treinamento.
Como usar a matriz de confusão?
Como interpretar as curvas de precisão/recall?
Com a ferramenta de limite de pontuação, é possível ver como a pontuação escolhida afeta a precisão e o recall. À medida que você arrasta o controle deslizante, é possível ver a
posição da curva de compensação de recall e precisão, além de entender como esse limite
afeta cada um deles individualmente. Para modelos com várias classes, nesses gráficos,
o único rótulo usado para calcular as métricas de precisão e recall é o que apresenta melhor pontuação
no conjunto de rótulos retornados. Isso pode ajudar você a encontrar um bom equilíbrio de 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 pode significar muitas previsões incorretas para alguns rótulos, o que pode ajudar você a escolher um limite por classe 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). Nessa categoria, há vários falsos positivos. Nesse caso, você pode decidir 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. Ela mede o desempenho do seu modelo em todos os limites de pontuação. Na Vertex AI, essa métrica é chamada de precisão média. Quanto mais próximo de 1 essa pontuação for, melhor será o desempenho do modelo no conjunto de testes. Um modelo capaz de adivinhar aleatoriamente cada rótulo teria uma precisão média em torno de 0,5.
Tabular
Após o treinamento do modelo, você receberá um resumo do desempenho dele. As métricas de avaliação são
baseadas no desempenho do modelo em relação a uma parte do conjunto de dados (o conjunto de dados de teste). Há algumas métricas e conceitos importantes a serem considerados ao determinar se o modelo está pronto para ser usado em dados reais.
Métricas de classificação
Limite de pontuação
Imagine um modelo de machine learning que prevê se um cliente comprará uma jaqueta no próximo
ano. Qual nível de certeza o modelo precisa ter para prever que um determinado cliente comprará uma
jaqueta? Nos modelos de classificação, é atribuída a cada previsão uma pontuação de confiança, que é uma avaliação
numérica da certeza do modelo de que a classe prevista está correta. O limite de pontuação é
o número que determina quando uma determinada pontuação é convertida em uma decisão de “sim” ou “não”, isto é,
o valor em que o modelo diz “sim, essa pontuação de confiança é alta o suficiente
para concluir que
esse cliente comprará um casaco no próximo ano”.
Se o limite de pontuação for baixo, o modelo correrá o risco de fazer classificações errôneas. Por isso, o limite de pontuação precisa ser baseado em um caso de uso específico.
Resultados da predição
Depois de aplicar o limite de pontuação, as previsões feitas pelo modelo são classificadas em uma de quatro categorias. Para entender essas categorias, imagine novamente o modelo de classificação binária da jaqueta. Nesse exemplo, a classe positiva (o que a modelo está tentando prever) é que o cliente comprará uma jaqueta no próximo ano.
- Verdadeiro positivo: o modelo prevê corretamente a classe positiva. O modelo previu corretamente que o cliente comprou uma jaqueta.
- Falso positivo: o modelo prevê incorretamente a classe positiva. O modelo previu que o cliente compraria uma jaqueta, mas isso não ocorreu.
- Verdadeiro negativo: o modelo prevê corretamente a classe negativa. O modelo previu corretamente que o cliente não comprou uma jaqueta.
- Falso negativo: o modelo prevê incorretamente uma classe negativa. O modelo previu que o cliente não comprou uma jaqueta, mas o cliente comprou.
Precisão e recall
Com as métricas de precisão e recall, é possível entender o desempenho do modelo na captura de informações e o que ele está deixando de fora. Saiba mais sobre precisão e recall.
- A precisão é a fração das predições positivas que estava correta. De todas as previsões de que um cliente faria uma compra, qual é a fração de compras de fato realizadas?
- Recall é a fração de linhas com esse rótulo que o modelo previu corretamente. De todas as compras feitas por clientes que poderiam ter sido identificadas, qual a fração das que foram identificadas de fato?
Dependendo do caso de uso, talvez seja necessário otimizar a precisão ou o recall.
Outras métricas de classificação
- AUC PR: área sob curva de precisão-recall (PR, na sigla em inglês). Ela varia de zero a um. Um valor maior indica um modelo de melhor qualidade.
- AUC ROC: área sob a curva de característica de operação do receptor (ROC, na sigla em inglês). Ela varia de zero a um. Um valor maior indica um modelo de melhor qualidade.
- Precisão: fração de previsões de classificação produzidas pelo modelo que estavam corretas.
- Perda de registro: entropia cruzada entre as previsões do modelo e os valores desejados. Ela varia de zero a infinito. Um valor menor indica um modelo de melhor qualidade.
- Pontuação F1: média harmônica de precisão e recall. F1 é uma métrica útil quando você está procurando um equilíbrio entre precisão e recall e a distribuição de classes é desigual.
Métricas de previsão e regressão
Após a criação do modelo, o Vertex AI fornece uma variedade de métricas padrão para análise. Não há uma resposta perfeita sobre como avaliar seu modelo. Considere as métricas de avaliação de acordo com seu tipo de problema e o que você quer alcançar com o modelo. A lista a seguir apresenta uma visão geral de algumas métricas que a AIte AI pode fornecer.
Erro médio absoluto (MAE)
O erro médio absoluto (MAE, na sigla em inglês) é a diferença média absoluta entre os valores de objetivo e previstos. Essa métrica mede a magnitude média dos erros (a diferença entre um valor de objetivo e um valor previsto) em um conjunto de predições. Como essa métrica usa valores absolutos, o MAE não considera a direção da relação nem indica o desempenho abaixo ou acima do esperado. Ao avaliar o MAE, um valor menor indica um modelo de maior qualidade (0 representa um preditor perfeito).
Raiz do erro médio quadrático (REMQ)
A raiz do erro médio quadrático (REMQ) é a raiz quadrada da diferença média ao quadrado entre os valores de objetivo e previstos. A REMQ é mais sensível a outliers do que o MAE. Portanto, se houver a preocupação com erros grandes, talvez seja mais útil avaliar a REMQ. Assim como no caso do MAE, um valor menor indica um modelo de maior qualidade (0 representa um preditor perfeito).
Raiz do erro médio quadrático e logarítmico (RMSLE)
A raiz do erro quadrático e logarítmico (RMSLE, na sigla em inglês) é a REMQ em escala logarítmica. A RMSLE é mais sensível a erros relativos do que erros absolutos e enfoca mais o desempenho insatisfatório do que o desempenho acima do esperado.
Quantil observado (somente previsão)
Para um quantil de destino determinado, o quantil observado mostra o número real de valores observados abaixo dos valores de previsão de quantil especificados. O quantil observado mostra a distância entre o modelo e o quantil desejado. Uma diferença menor entre os dois valores indica um modelo de qualidade superior.
Perda de pinball em escala (somente previsão)
Mede a qualidade de um modelo em um determinado quantil de destino. Um número menor indica um modelo de qualidade superior. É possível comparar a métrica da perda de pinball em vários quantis para determinar a precisão relativa do seu modelo entre esses quantis diferentes.
Texto
Após treinar o modelo, você receberá um resumo do desempenho. Para ver uma análise detalhada, clique em avaliar ou ver a avaliação completa.
O que considerar antes de avaliar o modelo?
A depuração de um modelo se refere mais à depuração dos dados do que do modelo em si. Se o modelo começar
a agir de maneira inesperada durante a avaliação do desempenho antes e depois da
produção, será preciso retornar e verificar os dados para ver como o modelo pode ser melhorado.
Quais tipos de análise posso executar na Vertex AI?
Na seção de avaliação da Vertex AI, é possível verificar o desempenho do modelo personalizado usando o resultado do modelo com exemplos de teste e métricas comuns de machine learning. Esta seção aborda o significado de cada um dos conceitos a seguir:
- 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
Como interpretar a saída do modelo?
A Vertex AI extrai exemplos dos dados de teste para apresentar novos desafios para o
modelo. Para cada exemplo, o modelo gera vários números que informam a intensidade com que
cada 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.
Qual é o limite de pontuação?
O limite de pontuação permite que a Vertex AI converta probabilidades em valores binários
"on"/"off". Esse limite se refere ao nível de confiança que o modelo precisa ter para atribuir uma
categoria a um item de teste. O controle deslizante de limite de pontuação no console é uma ferramenta visual para testar o
impacto de diferentes limites no conjunto de dados. No exemplo acima, se definirmos o limite de pontuação como 0,8 para todas as categorias, "Ótimo serviço" e "Sugestão" serão atribuídos, mas "Solicitação de informação", não. Se o limite de pontuação for baixo, o modelo classificará mais itens de texto, mas
o risco de errar na classificação será maior. Se o limite de pontuação for alto,
o modelo classificará menos itens de texto, mas o risco de classificar itens de texto incorretamente
será menor. É possível ajustar os limites por categoria no console do Google Cloud para experimento.
No entanto, ao usar o modelo na produção, é necessário aplicar os limites que você achou ideais.
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 classificadas em uma das
quatro categorias a seguir.
Use essas categorias para calcular a precisão e o recall, que são métricas que 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 precisaram ser categorizados com determinado rótulo, dentre todos os que receberam um rótulo. O recall indica, de todos os exemplos
de teste que deveriam ter recebido um determinado rótulo, quantos realmente foram rotulados.
É necessário otimizar a precisão ou o recall?
Dependendo do caso de uso, é preciso otimizar a precisão ou o recall. Considere os dois casos de uso a seguir ao decidir qual abordagem funciona melhor para você.
Caso de uso: documentos urgentes
Digamos que você queira criar um sistema que priorize documentos urgentes.
Um falso positivo, neste caso, seria um documento que não é urgente, mas é marcado como tal.
O usuário pode dispensá-lo como não urgente e seguir em frente.
Já um falso negativo seria um documento urgente, mas que o sistema não sinalizou como tal. Isso pode causar problemas!
Nesse caso, é melhor otimizar o recall. Essa métrica mede quantos dados estão sendo deixados de fora em todas as previsões feitas. Um modelo de alto recall provavelmente identificará exemplos marginalmente relevantes. Isso é útil para casos em que sua categoria tem dados de treinamento escassos.
Caso de uso: filtro de spam
Digamos que você queira criar um sistema que filtra automaticamente as mensagens de e-mail
que sejam spam.
Um falso negativo, neste caso, seria um e-mail de spam que não seja detectado e vá parar na sua caixa de entrada. Normalmente, isso é um pouco irritante.
Neste caso, um falso positivo seria um e-mail falsamente marcado como spam e removido da sua caixa de entrada. Se o e-mail era importante, é possível que o usuário seja afetado negativamente.
Nesse caso, é melhor otimizar a precisão. Essa métrica mede, em todas as previsões feitas, o quanto elas estão corretas. Um modelo de alta precisão provavelmente rotulará apenas os exemplos mais relevantes, o que é útil para casos em que a categoria é comum nos dados de treinamento.
Como usar a matriz de confusão?
Podemos comparar o desempenho do modelo em cada rótulo com 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 os itens de teste.
Como interpretar as curvas de precisão/recall?
A ferramenta de limite de pontuação permite explorar como o limite de pontuação escolhido afeta a precisão e o recall. À medida que você arrasta o controle deslizante, é possível ver a
posição da curva de compensação de recall e precisão, além de entender como esse limite
afeta cada um deles individualmente. Para modelos com várias classes, nesses gráficos,
o único rótulo usado para calcular as métricas de precisão e recall é
que apresenta melhor pontuação no conjunto de rótulos retornados. Isso pode ajudar você a encontrar um bom equilíbrio
de 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 por rótulo. Em alguns casos, isso pode significar muitas previsões incorretas para alguns rótulos, o que pode ajudar você a escolher um limite por classe personalizado para esses rótulos. Por exemplo, digamos que, no conjunto de dados de comentários de clientes, você perceba que um limite de 0,5 tem precisão e recall razoáveis para todos os tipos de comentário exceto "Sugestão", talvez porque essa seja uma categoria bem genérica. Nessa categoria, há vários falsos positivos. Nesse caso, você pode optar por um limite de 0,8 apenas para "Sugestão" 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. Ela mede o desempenho do seu modelo em todos os limites de pontuação. Na Vertex AI, essa métrica é chamada de precisão média. Quanto mais próximo de 1,0 essa pontuação for, melhor será o desempenho do modelo no conjunto de testes. Um modelo capaz de adivinhar aleatoriamente cada rótulo teria uma precisão média em torno de 0,5.
Vídeo
Após o treinamento do modelo, você recebe um resumo do desempenho dele. As métricas de avaliação são
baseadas em como o modelo foi executado em relação a uma parte do conjunto de dados (conjunto de dados de teste). Há
algumas métricas e conceitos importantes a serem considerados quando você determina se o modelo está pronto para
ser usado com novos dados.
Limite de pontuação
Como um modelo de machine learning sabe quando um gol é realmente um gol? É atribuída a cada
previsão uma pontuação de confiança, que é uma avaliação numérica da certeza do modelo de que um determinado trecho
de vídeo contém uma classe. O limite de pontuação é o número que determina quando uma certa pontuação
é convertida em "sim" ou "não", ou seja, o valor em que o modelo diz "sim, esse
número de confiança é alto o suficiente para concluir que o trecho de vídeo contém um gol".
Se o limite de pontuação for baixo, o modelo correrá o risco de rotular incorretamente os segmentos de vídeo. Por isso, o limite de pontuação precisa ser baseado em um caso de uso específico. Imagine um caso de uso médico, como o diagnóstico de câncer. As consequências de uma rotulagem incorreta são piores do que em vídeos esportivos. No diagnóstico de câncer, um limite de pontuação mais alto é apropriado.
Resultados da predição
Depois de aplicar o limite de pontuação, as previsões feitas pelo modelo são classificadas em uma de quatro categorias. Para entendê-las, vamos imaginar que você criou um modelo para detectar se um determinado segmento contém um gol. Nesse exemplo, um gol é a classe positiva (o que o modelo está tentando prever).
- Verdadeiro positivo: o modelo prevê corretamente a classe positiva. O modelo previu corretamente um gol no trecho de vídeo.
- Falso positivo: o modelo prevê incorretamente a classe positiva. O modelo previu um gol no segmento, mas não havia um gol.
- Verdadeiro negativo: o modelo prevê corretamente a classe negativa. O modelo previu corretamente que não havia um gol no segmento.
- Falso negativo: o modelo prevê incorretamente uma classe negativa. Ele previu que não havia um gol no segmento quando realmente havia.
![resultados da previsão](https://cloud.google.com/static/vertex-ai/docs/beginner/images/prediction-outcomes-video.png?authuser=9&hl=pt)
Precisão e recall
Com as métricas de precisão e recall, é possível entender o desempenho do modelo na captura de informações e o que ele está deixando de fora. Saiba mais sobre precisão e recall.
- A precisão é a fração das predições positivas que estava correta. De todas as previsões rotuladas como "gol", qual fração realmente continha um gol?
- Recall é a fração de todas as previsões positivas que foram realmente identificadas. De todos os gols identificados, qual era a fração?
Dependendo do caso de uso, talvez seja necessário otimizar a precisão ou o recall. Considere os seguintes casos de uso:
Caso de uso: informações particulares em vídeos
Imagine que você está criando um software que detecta automaticamente informações confidenciais em um vídeo e as desfoca. Os resultados falsos podem incluir o seguinte:
- Um falso positivo identifica algo que não precisa ser desfocado, mas
que é censurado. Isso pode ser um incômodo, mas não é algo prejudicial.
- Um falso negativo não identifica informações que precisam ser censuradas, como o número de
um cartão de crédito. Na pior das hipóteses, informações privadas seriam vazadas.
Nesse caso de uso, é essencial otimizar o recall para garantir que o modelo encontre todos os casos relevantes. É mais provável que um modelo otimizado para recall rotule exemplos pouco relevantes e também os incorretos, desfocando mais do que o necessário.
Caso de uso: pesquisa de vídeos salvos
Digamos que você queira criar um software que permita aos usuários pesquisar em uma biblioteca de vídeos com base em uma palavra-chave. Considere os resultados incorretos:
- Um falso positivo retorna um vídeo irrelevante. Como o sistema está tentando fornecer apenas
vídeos relevantes, o software não está realmente fazendo o que foi criado para fazer.
- Um falso negativo não retorna um vídeo relevante. Como muitas palavras-chave têm centenas de vídeos, esse problema não é tão ruim quanto retornar um resultado irrelevante.
Nesse exemplo, é bom otimizar a previsão para garantir que o modelo forneça resultados corretos e altamente relevantes. Um modelo de alta precisão provavelmente rotulará apenas os exemplos mais relevantes, mas pode deixar alguns de fora. Saiba mais sobre as métricas de avaliação de modelos.
Testar o modelo
Imagem
Para testar o modelo, a Vertex AI usa 10% dos dados automaticamente ou, se você escolher dividir os dados, qualquer porcentagem que você escolheu usar. Na página "Avaliar", você vê o desempenho do modelo nos dados de teste. Se você quiser, há algumas maneiras de verificar a confiança do modelo. A mais fácil é fazer upload de algumas imagens na página "Implantar e testar" e observar os rótulos escolhidos pelo modelo para seus 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 "Implantar e testar" também informa como fazer chamadas para o modelo programaticamente.
Tabular
Avaliar as métricas do modelo significa, antes de mais nada, determinar se o modelo está pronto para ser implantado. No entanto, também é possível testá-lo com dados novos. Faça o upload de novos dados para ver se as previsões do modelo correspondem às suas expectativas. Com base nas métricas de avaliação ou nos testes com dados novos, talvez seja necessário aprimorar mais o desempenho do modelo.
Texto
A Vertex AI usa 10% dos dados automaticamente (ou, se você escolheu a divisão de dados, qualquer porcentagem que você escolheu usar) para testar o modelo, e a página Avaliar informa o desempenho do modelo nesses dados de teste. Se você quiser, há algumas maneiras de verificar o modelo. Depois de implantar o modelo, insira exemplos de texto no campo da página Implantar e testar e veja os identificadores escolhidos pelo modelo para os exemplos. Com sorte, eles vão corresponder às suas expectativas. Teste alguns exemplos de cada tipo de comentário que você espera receber.
Se você quiser usar seu modelo em testes automatizados, a página Implantar e testar fornece um exemplo de solicitação de API que mostra como fazer chamadas para o modelo programaticamente.
Se você quiser usar seu modelo em testes automatizados, a página Implantar e testar fornece um exemplo de solicitação de API que mostra como fazer chamadas para o modelo programaticamente.
Na página Previsões em lote, é possível criar uma previsão em lote, que agrupa muitas solicitações de previsão em uma só. Uma previsão em lote é assíncrona, o que significa que o modelo aguardará até que todas as solicitações de previsão sejam processadas antes de retornar os resultados.
Vídeo
Para testar o modelo, o vídeo da Vertex AI usa 20% dos dados automaticamente. Se você escolher a divisão de dados, ela usará a porcentagem que for especificada. A guia "Avaliar" no console mostra o desempenho do modelo nos dados de teste. Se você quiser, há algumas maneiras de verificar o 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 de visualização de previsões, além de analisá-las em três escalas temporais: intervalos de um segundo, cenas de câmera de vídeo após a detecção automatizada no limite de captura e segmentos de vídeo inteiros.
Implantar seu modelo
Imagem
Quando o desempenho for satisfatório para você, estará na hora de usar o modelo. Isso pode significar o uso em escala de produção ou talvez em uma única solicitação de previsão. Dependendo do caso de uso, o modelo poderá ser usado de maneiras diferentes.
Previsão em lote
A previsão em lote é útil para fazer muitas solicitações de previsão de uma só vez. A previsão em lote é assíncrona, ou seja, o modelo vai aguardar até que todas as solicitações de previsão sejam processadas antes de retornar um arquivo JSON Lines com valores de previsão.
Previsão on-line
Implante seu modelo para disponibilizá-lo para pedidos de previsão com uma API REST. A previsão on-line é síncrona (em tempo real), o que significa que ela retornará rapidamente uma previsão. No entanto, ela aceita apenas uma solicitação por chamada de API. A previsão on-line será útil quando o modelo fizer parte de um aplicativo e houver elementos do sistema que dependam do retorno rápido das previsões.
Tabular
Quando o desempenho for satisfatório para você, estará na hora de usar o modelo. Isso pode significar o uso em escala de produção ou talvez em uma única solicitação de previsão. Dependendo do caso de uso, o modelo poderá ser usado de maneiras diferentes.
Previsão em lote
A previsão em lote é útil para fazer muitas solicitações de previsão de uma só vez. A previsão em lote é assíncrona, o que significa que o modelo aguardará o processamento de todas as solicitações de previsão antes de gerar resultados em um arquivo CSV ou uma Tabela do BigQuery com os valores de previsão.
Previsão on-line
Implante seu modelo para disponibilizá-lo para pedidos de previsão com uma API REST. A previsão on-line é síncrona (em tempo real), o que significa que ela retornará rapidamente uma previsão. No entanto, ela aceita apenas uma solicitação de previsão por chamada de API. A previsão on-line será útil quando o modelo fizer parte de um aplicativo e houver elementos do sistema que dependam do retorno rápido das previsões.
Vídeo
Quando o desempenho for satisfatório para você, será hora de usar o modelo. A Vertex AI usa a previsão em lote, que permite fazer o upload de um arquivo CSV com caminhos de arquivos para vídeos hospedados no Cloud Storage. O modelo processará cada vídeo e predição de saída em outro arquivo CSV. A predição em lote é assíncrona, indicando que o modelo processará todas as solicitações antes de gerar os resultados.
Limpeza
Para evitar cobranças indesejadas, cancele a implantação do modelo quando ele não estiver em uso.
Quando terminar de usar o modelo, exclua os recursos criados para evitar cobranças indesejadas na conta.
- Dados de imagem do Hello: limpar seu projeto
- Dados tabulares do Hello: limpar seu projeto
- Dados tabulares do Hello: limpar seu projeto
- Dados de vídeo do Hello: limpar seu projeto