Saltar para o conteúdo

Technical

Avaliação Objectiva da Qualidade de Dados

Paulo Maia · 27 de fevereiro de 2020

Em Inteligência Artificial, é fundamental medir a qualidade dos dados que pretendemos utilizar.

Por exemplo, se queremos classificar uma imagem de colo de acordo com o grau de cancro, como sabemos se essa imagem segue o protocolo de aquisição e pode ser utilizada para diagnosticar o paciente [1], de forma a confiarmos na nossa previsão? Noutro domínio, se queremos classificar o tema de um dado texto (que pode estar escrito em linguagem coloquial), como sabemos se o texto é útil ou tem boa qualidade?

Em Machine Learning, existe um princípio bem conhecido: dados de má qualidade produzem resultados de má qualidade. Os modelos têm a qualidade dos dados que consomem.

A estimação da qualidade de imagem é um problema complexo, uma vez que a qualidade depende do utilizador e da tarefa em questão. Isto é particularmente relevante quando medimos a qualidade segundo vários factores e a utilizamos para tomar decisões (por exemplo, eficiência, durabilidade, preço).

Já nos deparámos com o desafio de estimar objectivamente a qualidade em várias áreas (imagem, texto) e indústrias (TelCo, saúde). Neste artigo, vamos discutir algumas alternativas da comunidade de Data Science, bem como uma metodologia que temos utilizado com sucesso para estimar a qualidade de dados sem supervisão na tarefa de qualidade.

O que existe actualmente?

A investigação em avaliação de qualidade tem tido como objectivo criar previsões de qualidade que estejam alinhadas com a opinião de observadores humanos. A medição de qualidade é normalmente feita com etiquetas muito subjectivas – algo que tem boa qualidade para um observador pode ter má qualidade para outro.

Por exemplo, em [2], redes Convolutional Neural Networks são utilizadas para prever qualidade subjectiva de imagens em bases de dados como a LIVE Image Quality Assessment Database, utilizando etiquetas de qualidade avaliadas por humanos.

Algumas abordagens não supervisionadas [3] agrupam também as métricas de qualidade de imagem em vários grupos, como artefactos de compressão, ruído de imagem, artefactos de cor, desfoque e distorções. Porém, estas abordagens focam-se numa visão "técnica" de qualidade (qualidade de sinal) em vez de percepção semântica ou humana. No domínio de texto [4], um conjunto de regras automáticas é definido para qualidade de documentação de software, baseadas principalmente em legibilidade humana e facilidade de implementação.

Todas as abordagens mencionadas têm sido aplicadas com algum sucesso, mas a maioria centra-se na quantificação de erros de aquisição de dados. Em alguns domínios, como o médico, é importante ter conhecimento semântico da qualidade. Como exemplo, em imagens de fundo de retina, uma métrica comum é a Agrupamento de Estrutura de Imagem (Image Structure Clustering, ISC). O ISC avalia uma distribuição correcta de intensidades de pixel correspondentes às estruturas anatómicas relevantes presentes na retina [5].

Contudo, criar tais métricas e conseguir a sua aceitação pela comunidade de investigadores não é viável para cada área, com muitas regras específicas do domínio. Além disso, a maioria dos métodos de medição de qualidade focam-se numa modalidade específica: imagens.

Neste artigo, propomos uma forma de medir objectivamente a qualidade de qualquer modalidade (imagem, texto, dados tabulares), para problemas de classificação e regressão e apresentamos alguns casos de uso em que isto pode ser aplicado.

Metodologia Geral

Suponhamos que estamos a tentar classificar uma determinada amostra (por exemplo, uma imagem ou um documento) e queremos medir objectivamente a qualidade dessa amostra.

Podemos considerar que uma amostra de boa qualidade é aquela que alcança pontuações elevadas numa tarefa secundária (por exemplo, classificar a classe de amostras, estimar correctamente um valor de regressão, segmentar a imagem, etc.).

Temos algum conhecimento semântico de qualidade para um determinado domínio ao modelar a qualidade como específica da tarefa, mas que é generalizável para qualquer problema.

Por exemplo, no atendimento ao cliente, podemos medir o quão informativa é a descrição do problema técnico do cliente para compreender o que aconteceu com ele ou para entender o quão perto está de cancelar o serviço. Para imagens médicas, podemos medir o quão boa é uma imagem para classificar uma determinada forma de cancro (que pode depender de condições de iluminação, artefactos específicos do domínio, etc.).

O primeiro passo envolve um modelo que possa estimar a probabilidade de essa amostra pertencer a uma determinada classe (modelo discriminativo) ou um modelo de regressão que estime um resultado contínuo.

Podemos depois calcular o erro associado a essa estimação com a métrica de interesse. Por exemplo, como numa tarefa de classificação ou pelo erro absoluto ou quadrado numa tarefa de regressão. Podemos ter um erro associado a cada instância ao guardar as previsões fora da amostra de treino.

Depois precisamos de um segundo modelo que tente prever o erro utilizando a amostra como entrada para estimar automaticamente a qualidade da amostra.

Amostras com maior erro como resultado do segundo modelo terão qualidade inferior e, portanto, serão mais propensas a ter um desempenho pior como resultado do primeiro modelo.

Qualidade de Imagem em Fashion-MNIST

Fashion-MNIST é um conjunto de dados com 60 mil imagens em escala de cinzentos de 28×28 pixels de 10 categorias de moda, junto com um conjunto de teste de 10 mil imagens, disponível nos conjuntos de dados do Keras. Escolhemos duas classes para ilustrar a nossa abordagem de estimação de qualidade (T-shirt/top versus calças). Como podemos estimar a qualidade deste problema de classificação binária?

Inicialmente, os conjuntos de treino e teste foram concatenados, uma vez que pretendemos calcular erros fora da amostra de treino.

Para simplificar, introduzimos zoom aleatório com um factor de escala que pode ser manipulado para simular o grau de agressividade da nossa abordagem (neste caso, foi utilizado um intervalo de 0,5-0,9 do ImageDataGenerator do Keras). Quanto maior for o factor de escala, mais degradada pode ser a imagem. Com factores de escala demasiado baixos, a imagem pode não ter sido alterada. Por outro lado, se o factor de escala for demasiado alto, as imagens perdem o seu significado. Porém, não precisa de aplicar aumento de dados num cenário real. Em vez disso, pode simplesmente utilizar as suas imagens originais com variações de qualidade como entrada.

Abaixo, 8 imagens foram aleatoriamente escolhidas antes e depois de adicionar ruído.

Modelo 1: Classificar amostras

Utilizámos uma CNN standard tipo VGG para classificar as amostras.

O erro da amostra fora do treino foi calculado utilizando 5-Fold Cross-Validation.

A figura seguinte mostra a Estimação de Densidade Kernel do erro do modelo. Pode-se ver que o modelo conseguiu obter um erro baixo na maioria das amostras, uma vez que se trata de um problema de classificação binária que utiliza um conjunto de dados relativamente simples, mas há algumas amostras com erro elevado.

Modelo 2: Estimar o erro da amostra

Tentámos criar um modelo que pudesse calcular o erro da amostra a partir dos erros fora do treino. As amostras fora do treino foram aleatoriamente divididas em 30% teste e 70% treino, e uma arquitectura semelhante foi aplicada, com activação sigmoid e binary cross-entropy loss. MSE não foi utilizado, uma vez que binary cross-entropy mostrou ter melhor convergência, e o nosso resultado está entre 0 e 1.

O coeficiente de correlação de Spearman foi 44%, mostrando que podemos estimar adequadamente o erro de classificação e a sua monotonicidade apenas a partir de uma imagem.

Abaixo, as imagens que o modelo considerou ter a pior qualidade (maior erro estimado) são mostradas.

Pode-se ver que se trata de imagens com más condições de aquisição e com formas enganosas. Mesmo o olho humano tem dificuldade em distinguir ambas as classes (top/calças versus calças) em algumas das imagens.

A seguir, as imagens que o modelo considerou ter a melhor qualidade (menor erro estimado) são mostradas. Note-se que, uma vez que se trata de um problema de regressão desbalanceado, a maioria das imagens terá erro baixo e o exemplo apresentado abaixo não é totalmente representativo de todos os exemplos de "boa qualidade".

As imagens de qualidade superior – t-shirts – são as que seguem um "protocolo de aquisição de imagem" padrão e seguem os padrões globais de imagem.

Depois realizámos uma outra experiência removendo as imagens com aumento de dados artificial e retreinámos todo o processo. Neste novo processo, as imagens com maior erro são as seguintes:

Mais uma vez, imagens de qualidade inferior tiveram comportamento semelhante ao exemplo anterior. Por outro lado, as imagens com menor erro são as seguintes:

Estas imagens são também muito semelhantes às apresentadas abaixo. O modelo conseguiu ignorar os padrões dos desenhos das t-shirts e assumiu que a qualidade era boa se a forma visível seguisse os "padrões" de imagens de baixo erro no conjunto de treino.

Discussão

Criámos uma abordagem independente do domínio para estimar o erro da amostra em problemas de classificação sem depender de anotações subjectivas de humanos.

Na literatura, três abordagens foram previamente apresentadas: supervisionada, não supervisionada e específica do domínio. Podemos enquadrar a nossa abordagem como weakly supervised, uma vez que temos um proxy de etiquetas de qualidade e os erros na tarefa em si.

Embora a abordagem proposta tenha a vantagem principal de não exigir etiquetas humanas, tem algumas desvantagens. Em alguns casos, podemos ter um erro baixo, o que pode levar o modelo a pensar que uma imagem de má qualidade tem boa qualidade ou vice-versa. Alguns casos em que isto pode ocorrer são:

  • Etiquetas de classe de baixa qualidade
  • Áreas com baixa densidade (ou seja, tipos de imagens menos frequentes) que o modelo não conseguiu aprender correctamente
  • Casos que são difíceis de aprender e poderiam ter problemas no futuro (como imagens visualmente degradadas), mas o modelo foi suficientemente bom para as distinguir da outra classe.

Existem abordagens alternativas para medir qualidade que não são descritas aqui.

Uma vez que não se trata de um modelo generativo, não conseguimos resolver o problema de possivelmente ter um erro elevado em áreas de baixa densidade com dados de boa qualidade, uma vez que não sabemos se estamos em tais áreas. Podemos emparelhar o nosso modelo actual com outro modelo generativo ou pensar numa arquitectura diferente.

Utilizando modelos generativos, podemos enquadrar a avaliação de qualidade como um problema de detecção de anomalia. Por exemplo, assumindo que o conjunto de dados tem poucos exemplos de má qualidade, podemos aprender a sua distribuição. Quanto menor for a densidade de novas amostras, pior será a sua qualidade (ou mais não-conforme será).

Referências

  1. Fernandes, Kelwin, Jaime S. Cardoso, and Jessica Fernandes. "Transfer learning with partial observability applied to cervical cancer screening." Iberian conference on pattern recognition and image analysis. Springer, Cham, 2017.
  2. Po, L. M., Liu, M., Yuen, W. Y., Li, Y., Xu, X., Zhou, C., … & Luk, H. T. (2019). A Novel Patch Variance Biased Convolutional Neural Network for No-Reference Image Quality Assessment. IEEE Transactions on Circuits and Systems for Video Technology, 29(4), 1223-1229.
  3. D. Temel and G. AlRegib, Perceptual image quality assessment through spectral analysis of error representations. Signal Processing: Image Communication, Volume 70, 2019, Pages 37-46,ISSN 0923-5965
  4. Chen, M., & He, Y. (2017). Exploration on Automated Software Requirement Document Readability Approaches.
  5. Costa, P., Galdran, A., Meyer, M. I., Abràmoff, M. D., Niemeijer, M., Mendonça, A. M., & Campilho, A. (2017). Towards adversarial retinal image synthesis. arXiv preprint arXiv:1701.08974.