Eu estive pesquisando métodos de aprendizado semi-supervisionados e me deparei com o conceito de "pseudo-rotulagem".
Pelo que entendi, com a pseudo-rotulagem, você tem um conjunto de dados rotulados e um conjunto de dados não rotulados. Primeiro você treina um modelo apenas nos dados rotulados. Em seguida, você usa esses dados iniciais para classificar (anexar rótulos provisórios) os dados não rotulados. Em seguida, você alimenta os dados rotulados e não rotulados de volta ao treinamento do modelo, (re) ajustando-se aos rótulos conhecidos e aos previstos. (Itere esse processo, rotule novamente o modelo atualizado.)
Os benefícios reivindicados são que você pode usar as informações sobre a estrutura dos dados não rotulados para melhorar o modelo. Uma variação da figura a seguir é frequentemente mostrada, "demonstrando" que o processo pode estabelecer um limite de decisão mais complexo com base em onde estão os dados (não identificados).
Imagem do Wikimedia Commons por Techerin CC BY-SA 3.0
No entanto, não estou comprando exatamente essa explicação simplista. Ingenuamente, se o resultado original do treinamento somente com rótulo fosse o limite superior da decisão, os pseudo-rótulos seriam atribuídos com base nesse limite de decisão. O que quer dizer que a mão esquerda da curva superior seria branca pseudo-rotulada e a mão direita da curva inferior seria preta pseudo-rotulada. Você não obteria o bom limite de decisão curva após a reciclagem, pois os novos pseudo-rótulos simplesmente reforçariam o limite de decisão atual.
Ou, dito de outra forma, o atual limite de decisão somente rotulado teria precisão de previsão perfeita para os dados não rotulados (como é o que costumávamos fazer). Não há força motriz (nenhum gradiente) que nos faça mudar a localização desse limite de decisão simplesmente adicionando dados pseudo-rotulados.
Estou correto ao pensar que falta a explicação incorporada no diagrama? Ou há algo que estou perdendo? Caso contrário, qual é o benefício dos pseudo-rótulos, dado que o limite da decisão de pré-reciclagem tem precisão perfeita sobre os pseudo-rótulos?
Aviso, não sou especialista neste procedimento. Meu fracasso em produzir bons resultados não prova que a técnica não pode funcionar. Além disso, sua imagem possui a descrição geral do aprendizado "semi-supervisionado", que é uma área ampla com várias técnicas.
Concordo com a sua intuição, não estou vendo como uma técnica como essa poderia funcionar imediatamente. Em outras palavras, acho que você precisaria de muito esforço para fazê-lo funcionar bem em um aplicativo específico, e esse esforço não seria necessariamente útil em outros aplicativos.
Tentei duas instâncias diferentes, uma com um conjunto de dados em forma de banana, como o da imagem de exemplo, e outro mais fácil, com dois clusters distribuídos normais simples. Nos dois casos, não consegui melhorar o classificador inicial.
Como uma pequena tentativa de incentivar as coisas, adicionei ruído a todas as probabilidades previstas, na esperança de que isso causasse melhores resultados.
O primeiro exemplo, recriei a imagem acima o mais fielmente possível. Eu não acho que a rotulagem de psuedo possa ajudar em tudo aqui.
O segundo exemplo é muito mais fácil, mas mesmo aqui ele falha no aprimoramento do classificador inicial. Eu escolhi especificamente o ponto marcado do centro da classe esquerda e o lado direito da classe certa, esperando que mudasse na direção correta, sem essa sorte.
Código para o exemplo 1 (o exemplo 2 é semelhante o suficiente para não duplicar aqui):
fonte
Aqui está o meu palpite (também não sei muito sobre esse tópico, só queria acrescentar meus dois centavos a essa discussão).
Eu acho que você está certo, não faz sentido treinar um modelo clássico e usar suas previsões como dados, porque, como você diz, não há incentivo para o otimizador fazer melhor. Eu acho que os algoritmos de inicialização aleatória têm mais chances de encontrar o mesmo ótimo, porque eles "têm mais certeza" de que o ótimo encontrado anteriormente está correto, devido ao conjunto maior de dados, mas isso é irrelevante.
Dito isto, a primeira resposta que você recebeu tem um ponto - esse exemplo na Wikipedia fala sobre clustering, e acho que isso faz toda a diferença. Quando você obtém dados não rotulados, você basicamente tem vários pontos não rotulados em algum "espaço de recurso latente" compartilhado, como os outros rotulados. Você pode realmente fazer melhor do que um algoritmo de classificação treinado nos dados rotulados, se puder descobrir o fato de que os pontos não marcados podem ser separados e depois classificados com base em qual classe os pontos rotulados pertencem, neste espaço de recurso latente.
O que quero dizer é que você precisa fazer isso:
... e repita com dados não rotulados. Aqui, os limites do cluster aprendido não serão os mesmos, porque o cluster não se importa com rótulos de classe, tudo o que conta é transformar o espaço de recurso. O armazenamento em cluster gera um espaço de recurso latente, no qual o limite de classificação é aprendido, e isso depende apenas dos dados rotulados.
Algoritmos que não realizam nenhum tipo de agrupamento, acredito, não poderão alterar seu ótimo com base no conjunto de dados não rotulados.
A propósito, a imagem que você vinculou faz um bom trabalho, penso em explicar o que está acontecendo aqui; um limite de decisão é aprendido com base apenas no algoritmo de agrupamento. Você não tem idéia de quais são as classes corretas aqui - pode ser que sejam todas aleatórias - não sabemos. Tudo o que podemos agora é que parece haver alguma estrutura no espaço de recursos e parece haver algum mapeamento do espaço de recursos para os rótulos das classes.
Realmente não tenho referências, mas neste post do Reddit , pelo que entendi, há uma discussão sobre um GAN realizando aprendizado semi-supervisionado. É meu palpite que ele implica implicitamente um agrupamento, seguido de classificação.
fonte