Uma Introdução ao Aprendizado Semissupervisionado (SSL)

Willian Dihanster
DataLab Log
Published in
16 min readJan 20, 2023
Imagem gerada por um modelo de difusão online utilizando o prompt "robot labeling a picture". Fonte: stablediffusionweb.com

Soluções de Aprendizado de Máquina (AM) estão cada vez mais presentes em aplicações no mundo atual. No contexto financeiro aplicações como predição de inadimplência, previsão de renda e segmentação de clientes, são exemplos de problemas de classificação, regressão e clusterização, respectivamente.

Esses problemas são categorizados em diferentes paradigmas, pois existem diferentes formas de construir um modelo de AM. Em geral, a definição do paradigma a ser utilizado depende do problema de interesse e o tipo de dado disponível. Os paradigmas de aprendizado mais populares são:

  • Aprendizado Supervisionado (SL): o modelo deve aprender utilizando os pares de entrada e saída (atributos-rótulos) e é comum tarefas de classificação (rótulos são categorias) ou regressão (rótulos são valores contínuos). Esse tipo de aprendizado é utilizado quando o problema pode ser modelado como um problema de atribuir categorias ou valores aos exemplos.
  • Aprendizado Não-Supervisionado (UL): o modelo busca aprender padrões nos dados de entrada, sem que qualquer rótulo seja dado (sem supervisão). Alguns exemplos são as tarefas de agrupamento (clustering) e redução de dimensionalidade. É mais utilizado quando não há rótulos para os exemplos e a aplicação de interesse pode ser modelada como um problema de encontrar grupos ou realizar pré-processamentos/transformações nos dados de entrada.
  • Aprendizado Por Reforço (RL): em geral, o modelo aprende por tentativa e erro, recebendo recompensas ou punições (a única supervisão disponível). Um exemplo é o treinamento de caminhada de um robô.

A figura abaixo resume e exemplifica esses paradigmas de aprendizado.

Exemplos dos paradigma de aprendizado do AM. Fonte: J. Peng, E. C. Jury, P. Dönnes, Ciurt.

Portanto, uma grande diferença entre os paradigmas de aprendizado é o tipo de supervisão (rótulos) disponível para treinamento do algoritmo. No aprendizado supervisionado, por exemplo, há a necessidade de rótulos para todos os seus exemplos de treino.

Porém, podem existir aplicações em um mesmo problema onde existam dados rotulados e dados que não possuem rótulo (por algum motivo) e são a grande maioria do dataset. Caso o objetivo inicial fosse criar modelo de AM supervisionado com esses dados, existem duas opções mais óbvias:

  1. Criar um modelo supervisionado utilizando apenas a pequena quantidade de exemplos rotulados.
  2. Partir para uma abordagem não-supervisionada com todos os exemplos, mas sem utilizar nenhum dos rótulos disponíveis.

Na primeira opção os resultados podem ser insuficientes, já que em certas aplicações é necessário uma grande quantidade de exemplos rotulados, principalmente se for um problema de deep learning. A segunda opção pode contornar isso, mas ignorar os rótulos pode levar a perda de informação relevante. Além disso, se o objetivo inicial era criar um modelo supervisionado, a segunda opção é bem diferente considerando a construção do modelo, saída do modelo, interpretação, métricas, etc. Então a grande pergunta é:

Como atribuir rótulos ou incorporar esses exemplos (sem rótulo) na modelagem, a fim de criar melhores modelos supervisionados e sem precisar de ação manual?

Utilizando Aprendizado Semissupervisionado (SSL)!

Essa é grande ideia desse outro paradigma de aprendizado, o Aprendizado Semissupervisionado (SSL). De acordo com (Chapele et al, 2009) o Aprendizado Semissupervisionado pode ser visto como um intermédio entre o Aprendizado Supervisionado e Não-Supervisionado, pois é capaz de trabalhar com dados rotulados e não-rotulados.

Ilustração da diferença entre os paradigmas de aprendizado. Fonte: KDnuggets.

Formalmente, dado um conjunto de exemplos X, existe:

  • Xₗ, o conjunto de exemplos rotulados, com seus respectivos rótulos em Yₗ = {y₁, y₂, …, yₙ}.
  • Xᵤ, o conjunto de exemplos não-rotulados, com Yᵤ = {∅}.
  • Assim X = Xₗ ∪ Xᵤ e geralmente o conjunto de rotulados é o menor.

Dessa forma, em geral o SSL se baseia em ideias ou técnicas que utilizem os dados não-rotulados, seja rotulando-os (criando rótulos artificiais denominados pseudo-rótulos), seja agregando estes exemplos, de alguma forma com os exemplos rotulados, dentro de uma função objetivo. Assim, a ideia é sempre gerar melhores modelos, com base na teoria de que amostras de dados maiores colaboram para esse fim.

Mas para que os algoritmos SSL funcionem corretamente é necessário que a distribuição marginal p(x) do espaço de entrada contenha informações sobre a distribuição posterior p(y|x). Ou seja os dados não-rotulados devem contribuir com informações sobre p(x) e consequentemente sobre p(y|x). Além disso, existem 4 principais pressupostos:

  • P1 — Smoothness Assumption: se dois pontos x₁ e x₂, em uma região de alta densidade (alta quantidade de pontos) estão próximos, então as saídas correspondentes ye y devem ser iguais;
  • P2 — Cluster Assumption: se dois pontos x₁ e x₂ estão em um mesmo cluster, então provavelmente são da mesma classe;
  • P3 — Low-Density Assumption: a fronteira de decisão deve estar em uma região de baixa densidade de pontos;
  • P4 — Manifold Assumption: os dados de alta dimensão estão aproximadamente em um manifold de baixa dimensão. Esse conceito também é conhecido como "variedade" e pode ser visto como uma noção multidimensional de uma superfície. Portanto, se dois pontos x₁ e x₂ estão em um mesmo manifold, então provavelmente são da mesma classe.

Alguns autores argumentam que todos esses pressupostos podem ser reduzidos ao Cluster Assumption, pois todos relacionam a similaridade entre pontos a um mesmo grupo (cluster). Assim, argumentam que para o SSL funcionar é necessário que os dados de entrada possam ser clusterizados. Vale destacar que existem pressupostos análogos para o aprendizado supervisionado, mas a grande diferença é que o SSL adiciona o fator da densidade de pontos, para incluir o uso dos dados não-rotulados.

A imagem a seguir ilustra os pressuposto P1, P2 e P3, onde à esquerda a fronteira de decisão é supervisionada e na direita, a fronteira de decisão é semissupervisionada.

Diferença entre fronteira de decisão supervisionada e semissupervisionada e exemplo de aplicações dos pres-
supostos do SSL. Fonte: Zhaoyi Xu, Joseph Homer Saleh.

Note na figura à esquerda que o algoritmo supervisionado só tem visibilidade dos pontos rotulados (os pontos em negrito) e portanto, encontrou uma fronteira de decisão supervisionada válida e que divide os exemplos (rotulados) corretamente em sua classe. Porém, usando essa mesma fronteira de decisão para os pontos não-rotulados, o modelo erraria para uma boa parte dos exemplos.

Assim, a ideia é que os dados não-rotulados contribuem e dão uma maior visibilidade da distribuição real dos seus dados e então, o modelo consegue generalizar mais. Por exemplo, na figura à esquerda dois pressupostos de SSL seriam violados: P1, pois existem pontos em um região de alta densidade que possuem classes diferentes (os pontos próximos à fronteira de decisão); P3, pois a fronteira de decisão passa por uma região de alta densidade de pontos. Já na figura à direita, temos a fronteira de decisão semissupervisionada que respeita todo os pressupostos e consegue representar bem a distribuição esperada dos dados de entrada (rotulados e não-rotulados).

Onde e quando aplicar? E quais as vantagens e desvantagens?

Como dito anteriormente, o SSL é comumente aplicado em contextos onde existem dados rotulados, mas o maior número de exemplos não possui rótulo. Isto ocorre em aplicações onde obter pontos é barato, mas obter os rótulos tem custos associados, seja em relação ao tempo, seja relativo à necessidade da ação/anotação de uma pessoa especialista.

Um exemplo onde SSL pode ser aplicado é na análise de sentimentos de postagens no twitter, já que para rotular um único exemplo é necessário a ação de uma pessoa especialista para ler o texto e então atribuir um rótulo. Porém, o dado geralmente é de fácil coleta, bastando apenas criar crawlers para a rede social.

Portanto, as principais vantagens do SSL são: 1) aproveitar os dados não-rotulados, com o objetivo de gerar melhores modelos; 2) economizar o tempo e/ou dinheiro que seria necessário para rotular dados com a ação de uma pessoa especialista.

Já como desvantagem: a qualidade dos pseudo-rótulos dependerão do modelo SSL treinado e em certos casos, o desempenho do modelo final pode ser comprometido, já que o erro na atribuição dos pseudo-rótulos pode ser propagado.

E como funcionam as técnicas de SSL?

Existem diversas técnicas de SSL e em (VAN ENGELEN, Jesper E.; HOOS, Holger H. A, 2020) foi proposta uma taxonomia que busca agrupar as técnicas de SSL encontradas na literatura em categorias, como ilustrado na figura a seguir. Essa referência será utilizada para exemplificar cada uma das técnicas a seguir e caso queira ver com mais detalhes alguns delas, basta acessar a referência no final deste artigo.

Taxonomia das técnicas de SSL. Fonte: VAN ENGELEN, Jesper E.; HOOS, Holger H. A.

No 1° nível da taxonomia as técnicas são dividas entre duas categorias de algoritmos, considerando o modelo de otimização/construção do modelo, definidos a seguir.

Indutivos x Transdutivos

  • Indutivos: os modelos são treinados utilizando os dados de treino e o objetivo é aprender padrões e generalizar para criar um modelo preditivo aplicável a futuros novos dados de entrada. Os dados de teste são utilizados apenas na fase de inferência ou avaliação do modelo.
  • Transdutivos: os modelos são treinados utilizando os dados de treino e de teste (juntos) e dessa forma não criará um modelo preditivo para novos exemplos fora os utilizados durante essa fase de treino. Assim, caso haja novos exemplos para inferência, o modelo deve ser re-treinado. Logo, esses algoritmos podem ser mais custosos computacionalmente.

Os algoritmos indutivos são divididos em outras 3 categorias, de acordo com a forma a qual utilizam os dados não-rotulados em sua modelagem.

Wrapper Methods:

São métodos que estendem algoritmos supervisionados para um contexto semissupervisionado, treinando classificadores nos dados rotulados, e gerando predições para os dados não-rotulados (deminados pseudo-rótulos). A ideia é criar uma base maior de exemplos rotulados. Alguns exemplos:

  • Self-Training: aplica-se um modelo supervisionado (previamente treinado apenas com os dados rotulados) aos dados não-rotulados e os exemplos em que o modelo possuir maior confiança serão adicionados ao conjunto de exemplos rotulados. Repete-se esse processo até atingir um critério de convergência (todos os exemplos foram rotulados ou não há mais exemplos com um determinado limiar de confiança);
  • Co-Training: processo similar ao self-training, mas são k classificadores treinados separadamente, onde cada modelo deve ter uma visão diferente dos dados, para garantir diversidade. Por exemplo, um modelo pode ser treinado usando somente um conjunto de variáveis ou tipo de dado, e outro modelo utiliza outro conjunto de variáveis ou dado. No final as predições podem ser combinadas por técnicas do tipo ensemble, como votação entre os classificadores.
  • Boosting: similar ao processo de self-training, porém utilizando modelos de boosting para focar nos exemplos mais difíceis e combinar as predições por ensembles ao final.

A figura a seguir ilustra o processo de self-training, onde na primeira etapa treina-se um classificador que gera predições para os dados não-rotulados na etapa 2. Em seguida, na etapa 3, um novo modelo é treinado com os dados rotulados inicialmente e os pseudo-rótulos, e utiliza-se esse modelo final na etapa 4 para fazer predições e a avaliação do novo modelo.

Exemplo de funcionamento da técnica self-training. Fonte: Doug Steen.

Unsupervised Preprocessing:

Nesta categoria os algoritmos focam em técnicas que são não-supervisionadas, como algoritmos de clustering ou pré-processamentos nos dados. Por exemplo:

  • Feature Extraction: técnicas para criar novas features ou representar os exemplos em um espaço de menor dimensão e então atribuir rótulos aos exemplos não-rotulados.
  • Cluster-then-label: guia o processo de classificação por meio de clusterização. Assim, pode-se clusterizar os dados rotulados e não-rotulados, ao mesmo tempo, e então definir os pseudo-rótulos. Por exemplo, se um exemplo não rotulado cai em um cluster formado em sua maioria por exemplos da "Classe 1", atribui-se "Classe 1" a esse exemplo.
  • Pre-training: pode-se utilizar os dados rotulados e não-rotulados para iniciar um algoritmo. Por exemplo, treina-se um rede neural não-supervisionada (Autoenconders, Máquinas de Boltzmann), com os dados rotulados e não-rotulados. Então os pesos encontrados são utilizados para iniciar os pesos de uma rede neural supervisionada (mesma arquitetura, mas com camada de saída) só com os dados rotulados.

A figura a seguir ilustra o processo de cluster-then-label. Note que na segunda etapa os dados rotulados e não-rotulados (em azul) foram clusterizados, e então nas etapas seguintes atribui-se o rótulo de acordo com seu respectivo cluster.

Exemplo de funcionamento de técnica cluster-then-label. Fonte: Jonathan Hui.

Instrinsically Semi-Supervised:

A última categoria de técnicas SSL indutivas contém os algoritmos que utilizam os dados rotulados e não-rotulados de forma conjunta no seu processo de construção do modelo ou em sua função objetivo. Além do fato mencionado acima, essas técnicas são considerados intrinsecamente semissupervisionados pois se baseiam fortemente em alguns dos principais pressupostos do SSL.

  • Maximum-Margin: se baseiam no pressuposto de low-density, e a ideia é determinar a fronteira de decisão que tenha maior margem de separação em uma região de baixa densidade de pontos, utilizando os dados rotulados e não-rotulados. Um exemplo é o algoritmo Semi-Supervised Support Vector Machines (S3VMs), que se baseia em uma SVM, mas nesse caso maximiza a margem de separação incluíndo exemplos rotulados e não-rotulados.
  • Pertubation-Based: se baseiam no pressuposto de smoothness, onde os modelos terão maiores penalizações por erros em predições para exemplos que são muito similares. Exemplos dessa categorias são redes neurais adaptadas para incluir em sua função de loss um termo para os dados não-rotulados.
  • Manifolds: se baseiam no pressuposto de manifold e existem dois principais tipos de técnicas: 1) manifold regularization, onde os modelos terão penalizações maiores por erros em predições para exemplos que estão próximos (em distância geodésica); 2) manifold approximation, a ideia é estimar o manifold em que é possível representar os dados de entrada e então atribuir os rótulos.
  • Generative Models: a ideia é modelar o processo que gerou os dados de entrada, incluindo os dados rotulados os não-rotulados. Exemplos dessa categoria incluem Mixture Models, Generative Adversarial Networks e Autoenconders.

A figura a seguir ilustra o processo de manifold learning ou manifold approximation, que funciona como um algoritmo de redução dimensional, encontrando um subespaço de menor dimensão onde os dados de entrada se encontram.

Exemplo de manifold learning. Fonte: Kilian Q. Weinberger, Lawrence K. Saul.

Note que na etapa 1 o conjunto de dados original possui uma estrutura tridimensional. Já na etapa 2 os dados foram conectados com seus k=6 vizinhos mais próximos e então na etapa 3 um outro algoritmo "desenrola" essa estrutura. Por fim, na etapa 4, os pontos são projetados em subespaço bidimensional que maximiza a variância, mas mantendo a separação dos dados originais. Ao utilizar os dados rotulados e não-rotulados nesse processo, o método pode ser utilizado para inferir os rótulos.

Já os algoritmos transdutivos, como dito anteriormente, configuram uma classe de algoritmos que não geram funções e apenas rotulam os exemplos disponíveis durante sua fase de treino. Uma das técnicas mais comuns são os algoritmos baseados em grafos (graph-based).

Métodos Graph-Based

Esses algoritmos geralmente são do tipo label propagation, onde o rótulo dos exemplos são propagados para os exemplos não-rotulados de forma iterativa por meio de um grafo de similaridade.

Daí surgem três questões importantes:

  • Como construir esse grafo? por exemplo: pode-se assumir que todos os nós estão conectados com todos os outros nós, mas com pesos diferentes; assumir conexão apenas com os k vizinhos mais próximos; etc.
  • Como calcular o peso das arestas? por exemplo: peso pode ser calculado como a distância euclidiana entre dois vértices, mas existem diversas outras métricas de distância a serem utilizadas.
  • Como inferir/propagar a informação? existem diversos algoritmos para isso. Pode-se por exemplo classificar os exemplos de acordo com o rótulo dos seus vizinhos, de maneira iterativa.

A imagem a seguir demonstra o funcionamento básico de um algoritmo label propagation. Note que no estado inicial há apenas dois exemplos rotulados com suas respectivas classes (amarela e azul). Já no segundo estado o rótulo foi propagado para seus vizinhos diretos (os exemplos com uma aresta direta). Por fim, na terceiro estado, todos os exemplos foram rotulados via propagação de rótulos.

Exemplo de funcionamento de um algoritmo label propagation. Fonte: Neo4j.

Portanto, essa é uma visão geral das principais técnicas de SSL encontradas na literatura.

Implementações de Algoritmos SSL

Entre as bibliotecas mais famosas de AM, o sklearn possui uma seção de técnicas semissupervisionadas contendo 3 técnicas SSL, sendo elas:

  • Self-Training, que é um método wrapper agnóstico, podendo ser utilizado qualquer modelo supervisionado como classificador base.
  • Label Propagation e o Label Spreading, ambos modelos graph-based, mas propagam informação de maneira diferente.
Exemplo da seção de SSL no sklearn. Fonte: sklearn.

A Microsoft criou o USB: A Unified Semi-supervised learning Benchmark for CV, NLP, and Audio Classification, que é um repositório Github e contém implementações de técnicas mais avançadas de SSL como MixMatch, FlexMatch, dentre outros algoritmos, e datasets para benchmarks de modelos SSL.

Detalhes de conteúdo do repositório USB. Fonte: Microsoft-Github.

Existem repositórios com implementações de outros algoritmos baseados em grafos, como o de yamaguchiyuto, que implementa 5 algoritmos do tipo label propagation.

Lista de algoritmos label propagation implementados. Fonte: yamaguchiyuto-Github.

Mas e na prática, SSL funciona mesmo?

Assim como tudo em AM, não há almoço grátis. Como visto anteriormente nas definições de SSL, é importante que seus dados não-rotulados sejam significativos e possuam informação relevante. Além disso, devem seguir (ou parcialmente) algum dos pressupostos.

Na literatura existem diversas aplicações, mas para exemplificar e aproveitar o gancho do USB da Microsoft, podemos comentar o resultados reportados nos experimentos de benchmark. Um dos datasets utilizados é o CIFAR-10 que possui 10 classes, exemplificadas abaixo, e contém 50.000 exemplos para treino e 10.000 exemplos para teste.

Exemplos de imagens para classe no dataset. Fonte: CIFAR-10.

Pra simular esse dataset em uma aplicação semissupervisonada, os experimentos do USB foram montados de forma que existam apenas 40, 250 ou 4.000 exemplos inicialmente rotulados, distribuídos igualmente para cada classe, e o restante dos rótulos originais são excluídos.

Dessa forma, cria-se um modelo SSL para cada valor inicial de exemplos rotulados e infere-se rótulos para todo o restante, até que todos os exemplos de treino estejam novamente rotulados (50.000), daí essa base de exemplos rotulados (rótulos originais e pseudo-rótulos) de treino é utilizada em um modelo de classificação pra prever os rótulos para base de teste. Os resultados obtidos podem ser visualizados a seguir:

Resultados para os experimentos do USB. Fonte USB/Microsoft.

Note que a primeira linha se refere aos resultados da base original, com 100% dos rótulos originais, em um modelo supervisionado e foi obtido uma acurácia de 95.38+-0.05. Note também que com o modelo PiModel foi obtido uma acurácia de apenas 25.66+-1.76 utilizando 40 exemplos rotulados inicialmente, já com 4.000 exemplos obteve uma acurácia de 84.92+-0.19. O FlexMatch, um modelo mais avançado, com apenas 40 exemplos (0.08%) rotulados inicialmente já obtém uma acurácia de 95.03+-0.06, muito próximo do obtido pela base original que utiliza 100% dos rótulos originais (50.000) em um modelo supervisionado. Mostrando aí o ganho no uso do SSL para esse dataset, onde com apenas 0.08% da base rotulada já é possível obter um ótimo resultado.

Algumas questões do SSL

Obviamente ainda existem diversos problemas e questões em aberto na área, mas focando em modelos graph-based (talvez os mais populares em SSL) apresento aqui alguns dos problemas estudados pelo meu grupo de pesquisa ( ̶s̶h̶a̶m̶e̶l̶e̶s̶s̶ ̶s̶e̶l̶f̶-̶p̶r̶o̶m̶o̶t̶i̶o̶n̶):

  • Como construir um grafo de similaridade para propagar informação? Essa é uma questão importante, que pode influenciar muito nos modelos criados e existem enumeras técnicas propostas na literatura. Em (Berton, L., & Lopes, A. D. A., 2014) usa-se os dados já rotulados inicialmente no processo de construção do grafo e os exemplos rotulados tem preferência de conexão por seus vizinhos em um processo similar as redes scale free (Newman, M. E., 2003) (redes complexas cuja distribuição de grau dos vértices segue uma lei de potência, em que a maioria dos vértices tem poucas ligações, e alguns vértices apresentam um elevado número de ligações). Em (Vega-Oliveros, D. A., Berton, L., Eberle, A. M., de Andrade Lopes, A., & Zhao, L., 2014) os autores exploram a geração de grafos regulares (todos os vértices possuem o mesmo grau) e analisaram se grafos homogêneos seriam interessante no SSL, além de propor um algoritmo para geração de grafos quase regulares com baixo custo computacional. Já em (Berton, L., Valverde-Rebaza, J., & de Andrade Lopes, A., 2015) os autores constroem uma minimum spanning tree e empregam medidas de predição de links para gerar novas conexões no grafo, gerando um grafo small world (a distância média entre todos os vértice é baixa). Por fim, em (Berton, L., de Andrade Lopes, A., & Vega-Oliveros, D. A., 2018) os autores comparam técnicas clássicas de construção de grafos (como kNN, mutual kNN, b-matching) e analisam qual tem o melhor custo-benefício.
  • Como SSL lida com dados desbalanceados? Será que os pseudo-rótulos criados para os dados não-rotulados serão piores? Ou será que esses dados não-rotulados podem ajudar e contribuir com a representatividade da classe minoritária? Essa foi a questão estudada por (DE OLIVEIRA, W. D. G.; BERTON, L., 2023) onde realizaram uma revisão sistemática na literatura buscando técnicas para dados desbalanceados no contexto de aprendizado semissupervisionado. Foram encontradas diversas técnicas para mitigar esse problema, onde os métodos de tratamento conseguiriam melhorar os resultados com o uso dos dados não-rotulados.
  • Se métodos graph-based propagam informação com base nos exemplos rotulados, como lidar com rótulos ruidosos? SSL pode propagar o ruído? Esse foi o problema endereçado por de (Aquino Afonso, B. K., Berton, L., 2020), que avaliaram modelos graph-based sob diversas taxas de exemplos ruidosos e conseguiram encontrar instâncias que são possivelmente ruídos e melhorar seus resultados.

Conclusões

Nesse artigo o objetivo foi dar uma noção geral do Aprendizado Semissupervisionado, apresentando sua definição, pressupostos, técnicas, aplicações e as vantagens e desvantagens. Em resumo:

  • O SSL pode ser utilizado em aplicações onde existem dados rotulados, mas a maior parte dos exemplos são não-rotulados e deseja-se criar melhores modelos. Para que o SSL funcione corretamente é necessário que os dados não-rotulados contribuam com informação sobre p(y|x), e de acordo com os pressupostos, seus dados de entrada possam ser clusterizados.
  • Como vantagem vale destacar sua capacidade de aumentar o conjunto de dados rotulados de forma automática. Isso é útil pois rotular, em geral, é um processo caro (em tempo e dinheiro) por necessitar de ação manual e/de uma pessoa especialista. Além disso, pode ajudar na representatividade das classes minoritária ou grupos minoritários em problemas de dados desbalanceado e fairness, respectivamente. Já como desvantagem, a qualidade do modelo final vai depender dos seus dados e do modelo utilizado, podendo ficar muito mais suscetível a ruídos.

Referências e Recomendação de Leitura

CHAPELLE, Olivier; SCHOLKOPF, Bernhard; ZIEN, Alexander. Semi-supervised learning. IEEE Transactions on Neural Networks, v. 20, n. 3, p. 542–542, 2009.

VAN ENGELEN, Jesper E.; HOOS, Holger H. A survey on semi-supervised learning. Machine Learning, v. 109, n. 2, p. 373–440, 2020

ZHU, Xiaojin Jerry. Semi-supervised learning literature survey. 2005.

DE OLIVEIRA, Willian Dihanster Gomes; BERTON, Lilian. A systematic review for class-imbalance in semi-supervised learning. Artificial Intelligence Review, v. 56, n. Suppl 2, p. 2349–2382, 2023.

--

--

Willian Dihanster
DataLab Log

Willian is a Data Scientist at Serasa Experian and a PhD student at UNIFESP.