Όραση υπολογιστών Ατομικό ακαδημαϊκό έργο 2026
Classification, segmentation και detection σε PyTorch
Πέντε ασκήσεις με δίκτυα εκπαιδευμένα από την αρχή ή με fine-tuning από προεκπαιδευμένα βάρη, που καταλήγουν σε σύγκριση ενός Vision Transformer με ένα CNN
- Περίοδος
- Φεβρουάριος 2026
- Πλατφόρμα
- PyTorch και torchvision σε GPU του Google Colab
- Πλαίσιο
- Χαροκόπειο Πανεπιστήμιο: Υπολογιστική Όραση και Γραφικά
Από ένα μικρό CNN σε ένα ResNet18 με fine-tuning
Ένα CNN με τρία convolutional layers, εκπαιδευμένο από την αρχή στο CIFAR-100, έφτασε από 30,62% έως 42,13% test accuracy σε τρεις ρυθμίσεις optimizer, ενώ η training accuracy του ανέβηκε περίπου στο 80% στις δύο καλύτερες εκτελέσεις.
Έπειτα προσάρμοσα ένα ResNet18, προεκπαιδευμένο στο ImageNet, στις 37 ράτσες του Oxford-IIIT Pet, σε τρεις εκτελέσεις των δέκα εποχών:
- Feature extraction
παγωμένο backbone· εκπαιδεύεται μόνο ένα νέο επίπεδο εξόδου 37 κλάσεων
Test accuracy 87,24%
- Fine-tuning
εκπαίδευση όλων των επιπέδων με learning rate 0,0001, συνεχίζοντας από την προηγούμενη εκτέλεση
Test accuracy 90,32%
- Augmentation
τυχαίες περιστροφές και οριζόντιες αναστροφές, με νέο fine-tuning από τα βάρη ImageNet
Test accuracy 88,28%
Το fine-tuning έδωσε το καλύτερο αποτέλεσμα, με training accuracy 100%. Το augmentation δεν ανέβασε την test accuracy, όμως εκείνη η εκτέλεση ξεκίνησε ξανά από τα βάρη ImageNet, οπότε η σύγκριση δεν είναι καθαρή.
ViT-B/16 και VGG16-BN με την ίδια ρύθμιση
Η τελευταία άσκηση σύγκρινε ένα Vision Transformer, το ViT-B/16, με ένα CNN, το VGG16-BN, στο CIFAR-10. Και τα δύο ξεκίνησαν από βάρη ImageNet με νέο επίπεδο εξόδου 10 κλάσεων, και εκπαίδευσα όλες τις παραμέτρους τους με τον ίδιο τρόπο: είσοδοι 224 × 224, χωρίς augmentation, Adam με 0,0001, batches των 64.
| Μοντέλο | 5 εποχές | 10 εποχές | Χρόνος ανά εποχή |
|---|---|---|---|
| ViT-B/16 | 95,85% | 95,63% | 376 s |
| VGG16-BN | 92,84% | 93,26% | 141 s |
Μία εκτέλεση ανά μοντέλο και διάρκεια, χωρίς σταθερό seed, σε NVIDIA A100. Ο χρόνος ανά εποχή περιλαμβάνει το testing σε 10.000 εικόνες.
Το ViT-B/16 τελείωσε 2,4 έως 3,0 ποσοστιαίες μονάδες μπροστά, με περίπου 2,7 φορές τον χρόνο ανά εποχή. Στις δέκα εποχές, το test loss του VGG16-BN ανέβηκε από 0,216 μετά τη δεύτερη εποχή σε 0,270, ενώ του ViT-B/16 έμεινε κάτω από 0,20. Αυτό ισχύει για αυτό το dataset και αυτή τη ρύθμιση· δεν κατατάσσει τις δύο αρχιτεκτονικές.
Ένα U-Net από την αρχή και ένας detector με fine-tuning από COCO
- Segmentation
Υλοποίησα ένα U-Net από την αρχή και το εκπαίδευσα για 15 εποχές στο SBD, σε εικόνες 256 × 256 με 21 κλάσεις, κρατώντας το ένα πέμπτο των 8.498 εικόνων εκπαίδευσης για αξιολόγηση.
Pixel accuracy 75,79%
- Detection
Έκανα fine-tuning στο Faster R-CNN του torchvision, με backbone ResNet-50 FPN και βάρη COCO, στις 2.501 εικόνες του train split του VOC 2007, με νέο predictor για τις 20 κλάσεις του και το background.
Training loss, SGD, 10 εποχές 0,644 σε 0,161
Από τρεις ρυθμίσεις optimizer, ο AdamW έφτασε στο χαμηλότερο training loss, 0,144. Όμως το training loss δεν είναι ποιότητα detection: mAP δεν υπολόγισα, και τις προβλέψεις τις έλεγξα μόνο με το μάτι. Αντίστοιχα, η pixel accuracy περιλαμβάνει το background, και χωρίς IoU δεν δείχνει πόσο καλά έγινε το segmentation κάθε κλάσης.
Τι δείχνουν αυτοί οι αριθμοί και τι όχι
Αυτό που κρατώ από αυτές τις ασκήσεις: γράφω τη μετρική και το split δίπλα σε κάθε αριθμό, και συγκρίνω μοντέλα μόνο με την ίδια ρύθμιση.
Δύο πράγματα θα άλλαζα. Στις ασκήσεις classification το test split χρησίμευε και ως validation set μετά από κάθε εποχή, γι’ αυτό αναφέρω την τελευταία εποχή και όχι την καλύτερη· ένα ξεχωριστό validation split θα το διόρθωνε. Και η σύγκριση είχε μία εκτέλεση ανά μοντέλο χωρίς σταθερό seed: μετά από πέντε εποχές, δύο εκτελέσεις της ίδιας ρύθμισης του VGG16-BN βρίσκονταν στο 92,84% και στο 93,35%. Περισσότερα seeds, μαζί με IoU και mAP, θα έκαναν τις συγκρίσεις πιο σταθερές.
Πίσω στα έργα