Como usar métricas para aprendizado profundo com Keras em Python

Como usar métricas para aprendizado profundo com Keras em Python

A biblioteca Keras fornece uma maneira de calcular e relatar um conjunto de métricas padrão ao treinar modelos de aprendizado profundo.

Além de oferecer métricas padrão para problemas de classificação e regressão, o Keras também permite definir e relatar suas próprias métricas personalizadas ao treinar modelos de aprendizado profundo. Isso é particularmente útil se você deseja acompanhar uma medida de desempenho que captura melhor a habilidade de seu modelo durante o treinamento.

Neste tutorial, você descobrirá como usar as métricas integradas e como definir e usar suas próprias métricas ao treinar modelos de aprendizado profundo no Keras.

Depois de concluir este tutorial, você saberá:

  • Como as métricas Keras funcionam e como você pode usá-las ao treinar seus modelos.
  • Como usar regressão e métricas de classificação em Keras com exemplos trabalhados.
  • Como definir e usar sua própria métrica personalizada no Keras com um exemplo prático.

Dê início ao seu projeto com meu novo livro Deep Learning With Python, incluindo tutoriais passo a passo e a Código-fonte Python arquivos para todos os exemplos.

Vamos começar.

  • Atualização janeiro / 2020: API atualizada para Keras 2.3 e TensorFlow 2.0.
Métricas e como usar métricas personalizadas para aprendizado profundo com Keras em Python

Métricas e como usar métricas personalizadas para aprendizado profundo com Keras em Python
Foto de Indi Samarajiva, alguns direitos reservados.

Visão geral do tutorial

Este tutorial é dividido em 4 partes; eles estão:

  1. Keras Metrics
  2. Keras Regression Metrics
  3. Métricas de classificação Keras
  4. Métricas personalizadas em Keras

Keras Metrics

Keras permite que você liste as métricas a serem monitoradas durante o treinamento do seu modelo.

Você pode fazer isso especificando o “Métricas”Argumento e fornecendo uma lista de nomes de função (ou apelidos de nome de função) para o compilar() função em seu modelo.

Por exemplo:

As métricas específicas que você lista podem ser os nomes das funções Keras (como mean_squared_error) ou apelidos de string para essas funções (como 'mse').

Os valores métricos são registrados no final de cada época no conjunto de dados de treinamento. Se um conjunto de dados de validação também for fornecido, a métrica registrada também será calculada para o conjunto de dados de validação.

Todas as métricas são relatadas na saída detalhada e no objeto de histórico retornado da chamada do ajuste() função. Em ambos os casos, o nome da função métrica é usado como a chave para os valores métricos. No caso de métricas para o conjunto de dados de validação, o “val_”Prefixo é adicionado à chave.

Tanto as funções de perda quanto as métricas Keras definidas explicitamente podem ser usadas como métricas de treinamento.

Keras Regression Metrics

Abaixo está uma lista das métricas que você pode usar no Keras em problemas de regressão.

  • Erro Quadrático Médio: mean_squared_error, MSE ou mse
  • Erro Médio Absoluto: mean_absolute_error, MAE, mae
  • Erro de porcentagem média absoluta: mean_absolute_percentage_error, MAPE, mape
  • Proximidade de cosseno: cosine_proximity, cosine

O exemplo abaixo demonstra essas 4 métricas de regressão integradas em um problema de regressão inventado simples.

Observação: Seus resultados podem variar devido à natureza estocástica do algoritmo ou procedimento de avaliação, ou diferenças na precisão numérica. Considere executar o exemplo algumas vezes e compare o resultado médio.

Executar o exemplo imprime os valores métricos no final de cada época.

Um gráfico de linha das 4 métricas ao longo dos períodos de treinamento é então criado.

Gráfico de linha de métricas Keras integradas para regressão

Gráfico de linha de métricas Keras integradas para regressão

Observe que as métricas foram especificadas usando valores de alias de string [‘mse‘, ‘mae‘, ‘mape‘, ‘cosine‘] e foram referenciados como valores-chave no objeto de histórico usando seu nome de função expandida.

Também podemos especificar as métricas usando seu nome expandido, da seguinte maneira:

Também podemos especificar os nomes das funções diretamente se eles forem importados para o script.

Você também pode usar as funções de perda como métricas.

Por exemplo, você pode usar o erro logarítmico médio quadrático (mean_squared_logarithmic_error, MSLE ou msle) função de perda como uma métrica da seguinte forma:

Métricas de classificação Keras

Abaixo está uma lista das métricas que você pode usar no Keras em problemas de classificação.

  • Precisão Binária: binary_accuracy, acc
  • Precisão categórica: categorical_accuracy, acc
  • Precisão categórica escassa: sparse_categorical_accuracy
  • Precisão categórica superior: top_k_categorical_accuracy (requer que você especifique o parâmetro ak)
  • Precisão categórica esparsa da parte superior k: sparse_top_k_categorical_accuracy (requer que você especifique o parâmetro ak)

A precisão é especial.

Independentemente de o seu problema ser um problema de classificação binária ou multiclasse, você pode especificar o 'precisão'métrica para relatar a precisão.

Abaixo está um exemplo de um problema de classificação binária com a métrica de precisão incorporada demonstrada.

Observação: Seus resultados podem variar devido à natureza estocástica do algoritmo ou procedimento de avaliação, ou diferenças na precisão numérica. Considere executar o exemplo algumas vezes e compare o resultado médio.

Executar o exemplo relata a precisão no final de cada período de treinamento.

Um gráfico de linha de precisão ao longo da época é criado.

Gráfico de linha de métricas Keras integradas para classificação

Gráfico de linha de métricas Keras integradas para classificação

Métricas personalizadas em Keras

Você também pode definir suas próprias métricas e especificar o nome da função na lista de funções para o “Métricas”Argumento ao chamar o compilar() função.

Uma métrica que sempre gosto de acompanhar é Root Mean Square Error, ou RMSE.

Você pode ter uma ideia de como escrever uma métrica customizada examinando o código de uma métrica existente.

Por exemplo, abaixo está o código para a função de perda mean_squared_error e métrica em Keras.

K é o back-end usado por Keras.

A partir deste exemplo e de outros exemplos de funções de perda ...

Você também pode estar interessado em