Avaliando, Validando e Testando o seu Modelo: Metodologias de Avaliação de Performance

“The definition of genius is taking the complex and making it simple.”― Albert Einstein

Para validar e testar o seu Modelo de Reconhecimento de Padrões ou Visão Computacional (Etapa IV em nosso gráfico de cruzamento de Domínios X Etapas na Visão Computacional), você vai necessitar de metodologias adequadas.

Esta página tem por objetivo apresentar e explicar Metodologias de Avaliação de Performance para Aprendizado de Máquina, Reconhecimento de Padrões e Visão Computacional. Estas metodologias foram originalmente desenvolvidas para avaliar métodos estatísticos, mas hoje têm aplicação em uma gama muito mais ampla de áreas.


evaluate-model-how-to

Como entender a selva de métodos de avaliação?

metodos

Conceitos Básicos

Aqui nós vamos apresentar alguns conceitos básicos como Matriz de Confusão, Acurácia, Valor Preditivo, ROC-AUC, F1, etc.

Modelos de Classificação

Modelos de classificação simplesmente avaliam se o seu modelo de reconhecimento de padrões acertou ou errou a classificação: só há acertos de erros e, a partir daí, cria-se métricas de como levar em consideração estes acertos e erros.

Verdadeiros positivos, verdadeiros negativos, Falsos positivos efalss negativos

true-false

Matriz de Confusão

confusion-matrix-81

Acurácia

accuracy

Sensibilidade (Recall) e Precisão

recall

precision

Especificidade

specificity

Escore F1

F1-score

ou:

f1 = 2*precision*recall/(precision + recall) 

Referências:

  1. https://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html

Curva AUC-ROC

roc-curve-97

AUC-curve-98

Perda Logarítmica (Logarithmic Loss)

log-loss

Onde:

  • y_ij, indicates whether sample i belongs to class j or not
  • p_ij, indicates the probability of sample i belonging to class j

Acurácia Multiclasse Balanceada

Observe a matriz de confusão abaixo (fonte: conjunto de validação (20%) gerado por nós a partir da ISIC 2019 Skin Cancer Challenge):

confusao-desequilibrada

Observe que actual X predicted está representado diferentemente da matriz-exemplo acima.

Evidentemente a classe NV possui muito mais instâncias que as outras classes. Isso significa que, em uma mtrica como a acurácia da seção anterior, o nosso resultado vai ser desmesuradamente influenciado por esta classe. Uma performance muito boa com NV e péssim com as outras classes ainda assim vai resultar em uma acurácia boa, o que não reflete adequadamente a confiabilidade desse modelo.

Quando ocorrem distribuições desbalanceadas de padrões como a acima, optamos por balancear o cálculo da acurácia, ponderando-o pelo número de instâncias de cada classe.

b_acc = (sensitivity + specificity)/2

O meu problema é multiclasse e desbalanceado. O que eu uso?

Modelos de Regressão

Modelos de regressão trabalham com valores contínuos e têm por objetivo servir para estimar o que seria a entrada de dados original que gerou o resultado que o seu modelo de reconhecimento depadrões está mostrando. Eles permitem não apenas prever a classe do dado de entrada, mas também prever o seu valor.

MAE

mae

RMSE

RMSE

Modelos Não Supervisionados

O nome modelos não supervisionados, escolhido pela autora do desenho diagramático acima no início da página, baseada na ideia de que são clustering methods, na verdade engana: estes modelos de avaliação, como quaisquer outros, necessitam de alguma referência para que se possa determinar o que está certo e o que está errado.

Rand Index

Durante muito tempo, o modelo mais utilizado em visão computacional dentre estes modelos, foi o Rand Index. Ele é um modelo usado para avaliar a qualidade da segmentação gerada por algoritmos de segmentação por crescimento de regiões clássicos.

Este modelo usa um ou mais Ground Truths – GTs, normalmente gerados a mão por humanos, e compara o resultado de uma segmentação clássica por crescimento de regiões a estes GTs. Tipicamente os GTs são formados por bordas de regiões ou segmentos e o modelo é usado considerando-se essas bordas como limites de conjuntos e analisando-se o resultado das segmentações pertence ou não a esses conjuntos.

Um conjunto de dados público muito conhecido que usa este modelo de GT é o Berkeley Dataset (https://www2.eecs.berkeley.edu/Research/Projects/CS/vision/bsds/). Neste conjunto de dados, a universidade de Berkeley usou alunos do curso de Artes para avaliar imagens e marcar a mão o que consideravam que seria o limite de cada objeto na imagem.

Imagem com limites definidos por um dos usuários humanos sendo mostrados em verde

Apenas os limites de cada objeto identificado pelo humano na imagem

O Rand index não é mais um modelo atual, por isso não vamos entrar em detalhes. Hoje utiliza-se um modelo muito mais simples e mais fácil de calcular, mas que possui expressividade equivalente: o modelo Intersection over Union (IoU).

Abaixo, algumas referências interessantes, dentre o artigo original do Rand Index e também alguns artigos antigos nossos, onde utilizamos este modelo para avaliação de segmentação por crescimento de regiões.

Links Interessantes:

Intersection over Union (IoU)

O Jaccard index, também conhecido como Intersecção sobre União ou coeficiente de similaridade de Jaccard, é uma estatística para estimar a similaridade entre dois conjuntos de amostras. Mede a similaridade entre dois conjuntos finitos e é dado pela seguinte fórmula:

Este modelo transformou-se no modelo padrão de avaliação de qualidade em segmentação semântica com redes neurais convolucionais, por isso nós vamos focar nele. Ele também é um modelo preferencialmente utilizado para avaliação de qualidade na detecção de objetos com redes neurais convolucionais.

Pictoricamente, a ideia geral e a da figura adiante:

a ideia básica é a de que a, quanto maior for a superposição entre o GT e o objeto identificado/previsto por um método de aprendizado de máquina, tanto melhor será o valor de IoU:

IoU na detecção de objetos

IoU na segmentação semântica

Na figura abaixo temos duas regiões: um GT e uma predição.

Na próxima figura vemos, à esquerda a intersecção, a direita a união:

Links Interessantes

  1. Apresentação de Nathalie Japkowicz na ICMLA 2011 com uma excelente visão geral. Comece por aqui: Overview of Performance Measures
    1. The slides of the tutorial presentation given at Canadian AI 2016, May 31, 9:00am – 12:00pm, Victoria, BC are downloadable here (2.33 MB, 87 Slides)
  2. Medium::Performance Metrics: When to Use What por Utkarsh Dixit
  3. Medium::Choosing the Right Metric for Evaluating Machine Learning Models — Part 1 por Alvira Swalin
  4. Medium::Choosing the Right Metric for Evaluating Machine Learning Models — Part 2 por Alvira Swalin
  5. TowardsDataScience::Various ways to evaluate a machine learning model’s performance – Because finding accuracy is not enough por Kartik Nighania
  6. TowardsDataScience::Metrics to Evaluate your Machine Learning Algorithm por Aditya Mishra
  7. Artigo::Peter Flach. Performance Evaluation in Machine Learning:The Good, The Bad, The Ugly and The Way Forward, AAAI 2019
  8. Datascience::Mine is better: Metrics for evaluating your (and others) Machine Learning models por Pablo Hernandez
  9. TowardsDataScience::Simplifying the ROC and AUC metrics – Taking the confusion out of classification metrics por Parul Pandey (MUITO bom!)
  10. TowardsDataScience::Understanding AUC – ROC Curve por Sarang Narkhede
  11. TowardsDataScience::Understanding Confusion Matrix por Sarang Narkhede

Sobre o Autor

possui graduação em Ciências da Computação pela Universidade Federal de Santa Catarina (1989) e Doutorado Acadêmico (Dr. rer.nat.) em Ciências da Computação pela Universidade de Kaiserslautern (1996). Atualmente é professor Titular da Universidade Federal de Santa Catarina, onde é professor do Programa de Pós-graduação em Ciência da Computação e dos cursos de graduação em Ciências da Computação e Sistemas de Informação. Tem experiência nas áreas de Informática em Saúde, Processamento e Análise de Imagens e Engenharia Biomédica, com ênfase em Telemedicina, Telerradiologia, Sistemas de Auxílio ao Diagnóstico por Imagem e Processamento de Imagens Médicas, com foco nos seguintes temas: analise inteligente de imagens, DICOM, CBIR, informática médica, visão computacional e PACS. Coordena o Instituto Nacional de Ciência e Tecnologia para Convergência Digital - INCoD. Foi o criador e primeiro Coordenador do Núcleo de Telessaúde de Santa Catarina no âmbito do Programa Telessaúde Brasil do Ministério da Saúde e da OPAS - Organização Pan-Americana de Saúde e criador do Núcleo Santa Catarina da RUTE - Rede Universitária de Telemedicina.