Transfer learning on small datasets: what I learned
From a peer-reviewed project on eye-disease detection, why fine-tuning a pretrained network beats training from scratch when data is scarce, and where it still bites you.
Medical imaging datasets are small, imbalanced, and noisy, the opposite of what large convolutional networks were trained on. Working on a peer-reviewed eye-disease detection study, transfer learning was the difference between a model that generalised and one that just memorised.
Why from-scratch loses
A deep network trained on a few thousand images learns the dataset, not the problem. It nails the training set and falls apart on anything new. Starting from weights that already understand edges, textures, and shapes means you only have to teach the last mile.
VGG19 vs EfficientNetB0
We compared a heavier classic architecture against a leaner, efficiency-first one. The honest answer is that it's a trade-off: raw capacity versus a model you can actually deploy. Reporting both, instead of cherry-picking the flattering metric, is the part that makes the result trustworthy.
Where it still bites
Class imbalance doesn't go away because you used a pretrained backbone. Augmentation, careful validation splits, and not over-reading a single accuracy number matter as much as the architecture choice.