Aprendizado semi-supervisionado após fine-tuning de CNNs

1 – Aprendizado de Maquina
1.3 – Semi Supervisionado
1.3.3 – Semi Supervisionado apos fine-tuning
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

Este texto explica um modelo híbrido de machine learning. Ele combina redes convolucionais (CNNs) com aprendizado semi-supervisionado. Primeiro, a CNN é ajustada (fine-tuning) com poucos dados rotulados. Depois, ela aprende com muitos dados não rotulados. Assim, o modelo ganha precisão sem esforço manual enorme.

Características principais do modelo

Primeiramente, a arquitetura usa uma CNN pré-treinada (como ResNet ou VGG). Suas camadas convolucionais extraem características visuais. Em seguida, camadas totalmente conectadas fazem a classificação. A parte semi-supervisionada emprega pseudo-rotulação ou consistência. Consequentemente, o modelo reduz o overfitting em dados escassos. Os hiperparâmetros incluem taxa de aprendizado (0.0001 a 0.001). O peso da perda não supervisionada (λ) é tipicamente 0.5. A temperatura para suavização de pseudo-rotulos fica em 0.5. Dropout de 0.3 evita dependências excessivas.

Arquitetura e fórmulas matemáticas

A CNN extrai mapas de características f(x) da imagem x. A perda supervisionada L_s é entropia cruzada: \( L_s = -\frac{1}{B} \sum_{i=1}^{B} y_i \log(\hat{y}_i) \). Aqui B é o lote rotulado. y_i é o rótulo verdadeiro. Já a perda não supervisionada L_u usa consistência entre aumentações. Para um dado não rotulado u, duas aumentações geram u1 e u2. A perda é MSE entre predições: \( L_u = \frac{1}{N} \sum_{j=1}^{N} \| p_{\theta}(u1_j) – p_{\theta}(u2_j) \|^2 \). A perda total é \( L = L_s + \lambda L_u \). O fine-tuning ajusta pesos da CNN via backpropagation.

Hiperparâmetros e ajustes práticos

A taxa de aprendizado deve ser reduzida após fine-tuning. Um scheduler cíclico funciona bem. O parâmetro λ cresce linearmente de 0 a 0.5. Aumentações fortes (crop, flip, color jitter) são cruciais. O lote mistura 20% rotulados com 80% não rotulados. Esses ajustes são típicos em CIFAR-10 com 4000 rótulos.

Um exemplo clássico usa o dataset MNIST. Imagine que só 100 imagens por dígito são rotuladas. As outras 59.000 são não rotuladas. O objetivo é classificar os 10 dígitos com alta acurácia. O código abaixo implementa esse cenário.

Este código primeiro treina a CNN com apenas 1000 rotulados. Em seguida, ele gera pseudo-rótulos para os não rotulados. Apenas exemplos com confiança acima de 0.9 são mantidos. Por fim, o modelo é reajustado com o conjunto ampliado. Observe que a acurácia final melhora significativamente. Esse é o poder do aprendizado semi-supervisionado após fine-tuning.