Contenuti del Corso
Fondamenti di Computer Vision
Fondamenti di Computer Vision
Apprendimento Trasferito nella Visione Artificiale
Il transfer learning consente di riutilizzare modelli addestrati su grandi dataset per nuovi compiti con dati limitati. Invece di costruire una rete neurale da zero, si sfruttano modelli pre-addestrati per migliorare efficienza e prestazioni. Nel corso di questo corso, hai già incontrato approcci simili nelle sezioni precedenti, che hanno posto le basi per applicare efficacemente il transfer learning.
Cos'è il Transfer Learning?
Il transfer learning è una tecnica in cui un modello addestrato su un compito viene adattato a un altro compito correlato. In computer vision, modelli pre-addestrati su grandi dataset come ImageNet possono essere perfezionati per applicazioni specifiche come imaging medico o guida autonoma.
Perché il Transfer Learning è Importante?
Riduce i tempi di addestramento: poiché il modello ha già appreso caratteristiche generali, sono necessarie solo lievi modifiche;
Richiede meno dati: utile nei casi in cui ottenere dati etichettati è costoso;
Migliora le prestazioni: i modelli pre-addestrati offrono un'estrazione delle caratteristiche robusta, migliorando l'accuratezza.
Flusso di lavoro del Transfer Learning
Il flusso di lavoro tipico del transfer learning comprende diversi passaggi chiave:
Selezione di un modello pre-addestrato:
Scegliere un modello addestrato su un ampio dataset (ad esempio, ResNet, VGG, YOLO);
Questi modelli hanno appreso rappresentazioni utili che possono essere adattate a nuovi compiti.
Modifica del modello pre-addestrato:
Estrazione delle caratteristiche: congelare i primi strati e riaddestrare solo gli strati finali per il nuovo compito;
Fine-tuning: sbloccare alcuni o tutti gli strati e riaddestrarli sul nuovo dataset.
Addestramento sul nuovo dataset:
Addestrare il modello modificato utilizzando un dataset più piccolo specifico per il compito target;
Ottimizzare tramite tecniche come backpropagation e funzioni di perdita.
Valutazione e iterazione:
Valutare le prestazioni utilizzando metriche come accuratezza, precisione, recall e mAP;
Eseguire ulteriori fine-tuning se necessario per migliorare i risultati.
Modelli pre-addestrati più diffusi
Alcuni dei modelli pre-addestrati più utilizzati per la computer vision includono:
ResNet: reti neurali profonde residuali che permettono l’addestramento di architetture molto profonde;
VGG: un’architettura semplice con strati convoluzionali uniformi;
EfficientNet: ottimizzato per alta accuratezza con un numero ridotto di parametri;
YOLO: rilevamento oggetti in tempo reale allo stato dell’arte (SOTA).
Fine-Tuning vs. Estrazione delle Caratteristiche
L’estrazione delle caratteristiche consiste nell’utilizzare gli strati di un modello pre-addestrato come estrattori di caratteristiche fissi. In questo approccio, lo strato finale di classificazione del modello originale viene solitamente rimosso e sostituito con uno nuovo specifico per il compito target. Gli strati pre-addestrati rimangono congelati, ovvero i loro pesi non vengono aggiornati durante l’addestramento, il che accelera il processo e richiede meno dati.
Il fine-tuning, invece, va oltre sbloccando alcuni o tutti i layer pre-addestrati e riaddestrandoli sul nuovo dataset. Questo consente al modello di adattare le feature apprese in modo più specifico alle caratteristiche del nuovo compito, portando spesso a un miglioramento delle prestazioni—specialmente quando il nuovo dataset è sufficientemente ampio o differisce in modo significativo dai dati di addestramento originali.
Applicazioni del Transfer Learning
1. Classificazione delle Immagini
La classificazione delle immagini consiste nell'assegnare etichette alle immagini in base al loro contenuto visivo. Modelli pre-addestrati come ResNet ed EfficientNet possono essere adattati per compiti specifici come imaging medico o classificazione della fauna selvatica.
Esempio:
Selezionare un modello pre-addestrato (ad es., ResNet);
Modificare il layer di classificazione per adattarlo alle classi target;
Effettuare fine-tuning con un learning rate più basso.
2. Rilevamento Oggetti
Il rilevamento oggetti consiste sia nell'identificare gli oggetti sia nel localizzarli all'interno di un'immagine. Il transfer learning consente a modelli come Faster R-CNN, SSD e YOLO di rilevare oggetti specifici in nuovi dataset in modo efficiente.
Esempio:
Utilizzare un modello di rilevamento oggetti pre-addestrato (ad es., YOLOv8);
Effettuare fine-tuning su un dataset personalizzato con nuove classi di oggetti;
Valutare le prestazioni e ottimizzare di conseguenza.
3. Segmentazione Semantica
La segmentazione semantica classifica ogni pixel di un'immagine in categorie predefinite. Modelli come U-Net e DeepLab sono ampiamente utilizzati in applicazioni come guida autonoma e imaging medico.
Esempio:
Utilizzare un modello di segmentazione pre-addestrato (ad es., U-Net);
Addestrare su un dataset specifico del dominio;
Regolare gli iperparametri per una maggiore accuratezza.
4. Trasferimento di Stile
Il trasferimento di stile applica lo stile visivo di un'immagine a un'altra mantenendone il contenuto originale. Questa tecnica è comunemente utilizzata nell'arte digitale e nel miglioramento delle immagini, sfruttando modelli pre-addestrati come VGG.
Esempio:
Selezionare un modello di trasferimento di stile (ad es., VGG);
Inserire immagini di contenuto e di stile;
Ottimizzare per risultati visivamente gradevoli.
1. Qual è il principale vantaggio dell'utilizzo del transfer learning nella visione artificiale?
2. Quale approccio viene utilizzato nel transfer learning quando solo l'ultimo strato di un modello pre-addestrato viene modificato mantenendo fissi gli strati precedenti?
3. Quale dei seguenti modelli è comunemente utilizzato per il transfer learning nel rilevamento degli oggetti?
Grazie per i tuoi commenti!