Transfer Learning
Esplora il transfer learning per addestrare sistemi di IA altamente accurati con meno dati. Impara a sfruttare i pesi pre-addestrati di Ultralytics YOLO26 per accelerare i tuoi progetti di visione artificiale.
Il transfer learning è una tecnica potente nell'apprendimento automatico (ML) in cui un modello sviluppato per un'attività specifica viene riutilizzato come punto di partenza per un modello destinato a una seconda attività correlata. Invece di addestrare una rete neurale da zero, operazione che richiede enormi set di dati e una notevole potenza di calcolo, gli sviluppatori sfruttano le conoscenze che un sistema di AI ha già acquisito. Questo approccio imita il modo in cui apprendono gli esseri umani: ad esempio, saper suonare il pianoforte rende molto più facile imparare a suonare l'organo, perché la comprensione di base della teoria musicale e la destrezza delle dita vengono trasferite. Nel contesto del deep learning, ciò significa che un modello può raggiungere un'elevata accuratezza su un nuovo problema con molti meno dati e in molto meno tempo.
Come funziona il transfer learning#
L'efficacia del transfer learning risiede nella natura gerarchica dell'estrazione delle caratteristiche. I modelli di deep learning, in particolare quelli utilizzati nella computer vision, imparano a riconoscere i pattern attraverso vari livelli. I livelli iniziali del backbone rilevano caratteristiche semplici e universali, come bordi, curve e texture. Queste caratteristiche di basso livello sono applicabili a quasi qualsiasi attività visiva.
Il processo prevede generalmente due fasi principali:
-
Pre-addestramento: un modello viene addestrato su un dataset di benchmark di grandi dimensioni, come ImageNet, per apprendere rappresentazioni visive generali. Il risultato è un insieme di pesi del modello che comprendono già la struttura visiva.
-
Adattamento: il modello pre-addestrato viene quindi adattato a un'attività specifica di nicchia. Spesso ciò avviene "congelando" i livelli iniziali, mantenendo fissi i relativi pesi, e riaddestrando solo i livelli finali, ovvero la testa di rilevamento, su un dataset personalizzato più piccolo.
Applicazioni nel mondo reale#
Il transfer learning ha democratizzato l'AI, permettendo di sviluppare soluzioni specializzate senza le risorse delle grandi aziende tecnologiche.
- AI nella sanità: è difficile raccogliere milioni di immagini mediche annotate per ogni specifica malattia. Tuttavia, i ricercatori possono prendere un modello pre-addestrato su oggetti di uso quotidiano e applicarlo all'analisi di immagini mediche. Il modello trasferisce la propria capacità di rilevare forme e anomalie per identificare tumori nelle radiografie o nelle scansioni MRI con un'elevata precisione.
- AI nella produzione: negli ambienti industriali, i sistemi di ispezione visiva devono adattarsi rapidamente a nuove linee di prodotti. Un modello generalizzato di rilevamento dei difetti può essere aggiornato rapidamente per individuare anomalie in uno specifico nuovo componente, come un microchip, utilizzando flussi di lavoro di produzione intelligente per ridurre al minimo i tempi di inattività.
Relazione con altri concetti#
È utile distinguere il transfer learning da termini strettamente correlati:
- vs. Fine-Tuning: il fine-tuning è uno specifico metodo di implementazione del transfer learning. Mentre il transfer learning è il concetto generale di riutilizzo delle conoscenze, il fine-tuning si riferisce al processo operativo di sblocco di parti del modello e del loro addestramento su nuovi dati con un tasso di apprendimento inferiore.
- vs. Zero-Shot Learning: il transfer learning richiede una fase di addestramento con alcuni dati annotati per la nuova attività. Al contrario, lo zero-shot learning cerca di classificare oggetti che il modello non ha mai visto prima, basandosi spesso su descrizioni semantiche anziché su esempi visivi.
Esempio pratico#
Il seguente frammento di Python dimostra il transfer learning utilizzando la libreria ultralytics. Carichiamo il modello YOLO26, che include pesi pre-addestrati derivati dal dataset COCO. Quando avviamo l'addestramento su un nuovo dataset, il modello trasferisce automaticamente le caratteristiche apprese in precedenza alla nuova attività.
from ultralytics import YOLO
# Load a pre-trained YOLO26 model (transferring weights from COCO)
model = YOLO("yolo26n.pt")
# Train the model on a new, smaller dataset to adapt its knowledge
# This leverages the pre-learned backbone for faster convergence
results = model.train(data="coco8.yaml", epochs=5)Per gestire i dataset ed eseguire questi cicli di addestramento nel cloud, strumenti come la Ultralytics Platform semplificano il processo, consentendo ai team di collaborare all'annotazione dei dati e alla distribuzione efficiente dei modelli addestrati tramite transfer learning.
Per un approfondimento sulla teoria accademica, gli appunti di Stanford CS231n offrono un'eccellente panoramica, mentre il tutorial di PyTorch sul transfer learning fornisce ampi dettagli tecnici per l'implementazione.









