Source domain — pretrained backbone (6 classes)
Target domain — click a point to label it
Click points in the right panel to reveal a few-shot label
✕
Clicking a point in the target panel reveals its true label and adds it to a shared few-shot support set (capped per class by the slider). For each model, class prototypes are the mean embedding of the labeled points; every unlabeled point is scored by softmax over negative squared distance to those prototypes, exactly as in a Prototypical Network. Accuracy is measured only on the still-unlabeled points, never on the support set itself.
In Frozen mode the backbone weights never move — the frozen features already carry enough structure for a handful of examples to work well. In Fine-tune mode, gradient descent on
How it works
Both models are the same tiny networkŷ = tanh(W₂·tanh(W₁x+b₁)+b₂)·s mapping a 2-D
input to a bounded 3-D embedding. The transfer model's weights start hand-tuned to encode
rotational/harmonic features of the input — a stand-in for a backbone pretrained on many source
classes (left panel). The from-scratch model starts from small random weights.
Clicking a point in the target panel reveals its true label and adds it to a shared few-shot support set (capped per class by the slider). For each model, class prototypes are the mean embedding of the labeled points; every unlabeled point is scored by softmax over negative squared distance to those prototypes, exactly as in a Prototypical Network. Accuracy is measured only on the still-unlabeled points, never on the support set itself.
In Frozen mode the backbone weights never move — the frozen features already carry enough structure for a handful of examples to work well. In Fine-tune mode, gradient descent on
−log softmax(−‖e−cᵧ‖²) also updates W₁,b₁,W₂,b₂, which you
can see as the target-panel points drifting; with very few examples this can distort the space
before it helps. The from-scratch model always trains this way, and with only a few points per
class the mapping barely constrains the rest of the input space, so it needs far more labels to
catch up.