Modelos de Ensino com Dados Gratuitos

Uma visão geral do auto-supervisionamento em visão computacional

“Quanto mais vejo, menos sei” pode ser um ditado, mas não se aplica a modelos de IA. É bem sabido que o desempenho de uma rede neuronal artificial depende muito do volume e da diversidade dos dados que foram apresentados ao modelo. Isto acontece porque expor os modelos à diversidade ajuda-os a selecionar características relevantes e a mitigar potenciais preconceitos, ou seja, a compreender os objetos de estudo e a executar melhor as suas tarefas.

A obtenção de dados para alimentar tais modelos pode parecer trivial, pois os dados estão por todo o lado. No entanto, o acesso a dados bem estruturados, rotulados, livres de direitos de autor e não privados ainda é um problema para a maioria dos cientistas de dados.

Para superar isto, peritos em IA desenvolveram várias abordagens para otimizar o processo de aprendizagem, em particular, arquiteturas inteligentes para modelos de Aprendizagem Auto-Supervisionada.

Neste artigo do blogue, (re)apresentamos-lhe o Self-Supervised Learning, juntamente com uma das nossas estratégias favoritas –  Modelos siameses – e possíveis aplicações. Se quiser aprender ainda mais sobre Self Supervised Learning e outras técnicas de Machine Learning, inscreva-se no nosso curso online:

 

O que é Aprendizagem Auto-supervisionada?

A Aprendizagem Supervisionada é uma abordagem de aprendizagem automática que recebe dados de entrada juntamente com um objetivo específico e visa aprender os padrões dos dados e a função de transformação que converte a entrada na saída. Do outro lado da moeda, temos a Aprendizagem Não Supervisionada, que é um método que não necessita de um objetivo para cumprir a sua missão, uma vez que visa principalmente encontrar padrões nas distribuições dos dados.

De seguida, temos o Self Supervised Learning, que é um método de Unsupervised Learning visto que utiliza dados não rotulados e tem a particularidade de criar rótulos sintéticos para se comportar como um modelo de Supervised Learning.

Estes rótulos podem ser criados aplicando transformações triviais aos dados. Aqui ficam alguns exemplos:

Objetivo

Transformação

Etiqueta Sintética

Quantificar a rotação de imagem

Rotação aleatória

Ângulo de rotação

Avaliar a Qualidade dos Dados

Inserção de valores aleatórios num dataframe

Bandeira binária para dados corrompidos

Colorização de Imagem

RGB para preto e branco

Imagem RGB

 

Os modelos de autoaprendizagem podem ser utilizados de duas maneiras diferentes:

  • Para gerar previsões, caso a tarefa sintética corresponda ao propósito principal do modelo. Por exemplo, treinar um modelo de colorização de imagens e utilizá-lo para colorir imagens a preto e branco.
  • Para partilhar o seu conhecimento (ao partilhar os seus pesos) com um modelo de Aprendizagem Supervisionada com uma tarefa diferente. Por exemplo, treinar um modelo de Autoaprendizagem para detetar se uma imagem está invertida e usar os pesos para inicializar um modelo de deteção de objetos.
Curso

O Espectro do Machine Learning

Se quiser saber mais sobre aprendizagem auto-supervisionada e outros métodos de aprendizagem, consulte este curso.

Saber mais

Como é que aplicamos isto?

Na NILG.AI, uma das nossas arquiteturas de modelo favoritas é a Redes Siamese. Os modelos siameses são compostos por uma arquitetura de modelo com dois (ou mais) ramos, onde cada um deles recebe uma entrada diferente. Os pesos dos ramos podem ser partilhados ou não e, na camada final do modelo, as saídas dos ramos são comparadas.

Abaixo pode ver um exemplo de arquitetura para uma rede siamesa aplicada a imagens, que implementámos para lhe demonstrar a utilidade destes modelos:

Este modelo tem dois ramos que partilham pesos. Cada ramo é composto por um codificador (modelo CNN para extração de características) e um bloco de camadas totalmente ligadas. A saída dos dois ramos é então combinada para calcular a função de perda. 

Para alimentar o modelo, implementámos um gerador de dados que recebe uma imagem como entrada, aplica uma transformação definida pelo utilizador e retorna as duas imagens transformadas juntamente com um alvo sintético. A função de transformação é definida na inicialização do modelo, mas a magnitude da transformação deve ser um valor aleatório que se encaixe no intervalo fornecido. Por exemplo, para ensinar um modelo a aprender a orientação dos objetos, pode ser passada uma função de rotação juntamente com o intervalo de ângulos possíveis. O gerador de dados selecionará dois ângulos aleatórios do intervalo fornecido e rodará a imagem de entrada considerando esses ângulos, criando duas imagens transformadas diferentes. O gerador compara os dois ângulos: se o ângulo da primeira transformação for superior ao ângulo da segunda transformação, o rótulo sintético é definido como 1, caso contrário, o rótulo é definido como 0. No final, o gerador produz as duas imagens transformadas e o rótulo sintético correspondente.

 

Resultados de Base

Como um exercício exploratório, NILG.AI desenvolvida várias funções de transformação e treinado um modelo com um conjunto de dados muito pequeno (menos de 100 amostras) de imagens aleatoriamente recolhidas de Unsplash. As transformações triviais incluíam:

  • Adição de Desfoque
  • Rotação de imagem
  • Desvio de brilho

A arquitetura do modelo siamês foi adaptada a cada função de transformação, criando três modelos diferentes. Um único ramo treinado do modelo siamês foi então usado para calcular as previsões em imagens únicas e estes são os resultados observados.

Note: The predictions correspond to the output of the last fully connected layer of the branch. These values should be interpreted as proxies of the magnitude of the transformations. To use these outputs as predictions of the real value of the transformation, e.g. rotation angle, the output should be calibrated.

Blur Addition

For the blur addition, we applied a gaussian blur filter with fixed window size and a variable sigma value. To test the model performance, we applied blur addition with different values of sigma to the same image and extracted the predictions from the model. In the image below, we can observe that the model output increases with the sigma, being able to distinguish the intensity of the transformation.

In the second test phase, we repeated the transformations in each image of the test set and extracted the correlation between the model output and the sigma. This model has a 95,5% correlation with the ground truth, having the potential to be used as a blur detector.

Finally, we extracted the predictions for the original images of the test set, presenting some examples in the grid below. Since we were dealing with high-quality images, the model returned low values for blur detection (usually lower than -6.4), except for the image with the coffee filter which contains a significant background blur.

Image Rotation

We repeated the same test for the rotation model, this time changing the angle value, getting the results below.

The correlation value for this model was 0.37, which is understandable considering the difficulty of the task. Recognizing if an object is tilted and identifying the correspondent angle implies prior knowledge of the object itself, which is hard to teach to a model with a set of only 100 images representing different objects. Therefore, to use this model as a rotation corrector, we might need to use a lot more data or put more constraints on the image selection, e.g. select images of interior decoration, only.

Since this task requires a higher knowledge of the objects, it can also be used as a secondary task of a multitask learning model. This strategy can help the model to better learn the features of the objects of interest avoiding extra labeling costs.

Brightness Deviation

The same analysis was made for the brightness model. For this example, the transformation relies on manipulating the value (V) on the HSV color representation by adding a random number. When testing the model for the same transformed image, we can observe that the predicted target increases with the added value.

Analyzing the performance of the model for the overall test set, we can confirm the correlation between the model outputs and the ground truth since the correlation rate is around 77,5%. This model can be used for brightness correction or image quality assessment. In the next section, you will see some practical examples of where to use these models.

Once again, the model predictions were extracted for the original images (shown below). These predictions are also eloquent since the model returned positive values for the brightest images and negative values for the darkest ones, in particular, the coffee filter and the bridge pictures.

Use Cases

Self Supervised learning can be very useful to pre-train encoders to be used by other models or to be used as an extra task, making the final model more robust. However, there’s also a lot of potential for these models to be used directly as predictors, and here are a few examples of where to use them.

Cuidados de saúde

Image quality assessment for medical imaging – trivial models like a blur, brightness, and crop detectors help can assess image quality in real-time, being useful to select the sample to be analyzed (by another model or by an expert).

Real State

Image standardization in the website – brighter and more colorful images are more attractive to prospects and, taking pictures in poor lighting conditions can influence the propensity of engagement with the image. With a brightness model as the one proposed above, it is possible to assess this feature and correct it automatically.

Car Dealership

Similar to the previous use case, the pictures that show the product (the car, in this case) may influence the propensity of a user to become a buyer. Trivial computer vision models like brightness quantifiers and blur detectors can be used to filter which images have enough quality to be published on the website.

Conclusão

As we saw in this post, you don’t always need a large dataset to build a model that meets the needs of your business.

If you’re interested in making your company’s decisions data-driven but you’re not sure you have a data structure prepared for that, contact us at [email protected], and let’s discuss some ideas!

If you want to learn more about it, enroll to our course:

Rafael Cavalheiro NILG.AI

Quer discutir esta ideia mais a fundo?

Marcar uma reunião com Rafael Cavalheiro

Conhece o Rafael Saber mais

Gosta desta história?

Subscreva a Nossa Newsletter

Ofertas especiais, últimas notícias e conteúdo de qualidade na sua caixa de entrada.

Registar publicação única

Consentimento(Obrigatório)
Este campo destina-se a fins de validação e não deve ser alterado.

Artigos recomendados

Article
Desbloqueie o Crescimento com a Previsão do Valor do Tempo de Vida do Cliente

Desbloqueie crescimento real com a previsão do valor do tempo de vida do cliente. Aprenda modelos chave, necessidades de dados e roteiros de implementação para resultados estratégicos.

Read More
Article
Estratégia de Transformação Empresarial: O Seu Guia para 2026

Domine a sua estratégia de transformação empresarial com o nosso guia de 2026. Aprenda a executar roteiros de IA, evitar armadilhas e impulsionar o crescimento.

Read More
Article
Um Guia Estratégico para IA Generativa para Transformação Empresarial

Desbloqueie o crescimento real com o nosso guia de IA generativa para transformação empresarial. Aprenda a construir um roteiro, a encontrar casos de uso de alto valor e a medir o retorno do investimento em IA.

Read More