Esplora il transfer learning per addestrare un'IA altamente accurata con meno dati. Scopri come sfruttare i pesi pre-addestrati Ultralytics per accelerare i tuoi progetti di visione artificiale.
Il transfer learning è una tecnica potente nel machine learning (ML) in cui un modello sviluppato per un compito specifico viene riutilizzato come punto di partenza per un modello su un secondo compito correlato. Invece di addestrare una rete neurale da zero, cosa che richiede enormi set di dati e una notevole potenza di calcolo, gli sviluppatori sfruttano le conoscenze già acquisite dall'IA. Questo approccio imita il modo in cui imparano gli esseri umani; ad esempio, sapere come 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 precisione su un nuovo problema con una quantità di dati e un tempo significativamente inferiori.
L'efficacia del transfer learning risiede nella natura gerarchica dell' estrazione delle caratteristiche. I modelli di deep learning, in particolare quelli utilizzati nella visione artificiale, imparano a riconoscere i modelli in strati. Gli strati iniziali della struttura portante detect caratteristiche detect e universali come bordi, curve e texture. Queste caratteristiche di basso livello sono applicabili a quasi tutte le attività visive.
Il processo prevede in genere due fasi principali:
Il transfer learning ha democratizzato l'intelligenza artificiale consentendo la creazione di soluzioni specializzate senza ricorrere alle risorse delle grandi aziende tecnologiche.
È utile distinguere il transfer learning da termini strettamente correlati:
Il seguente Python Questo frammento di codice mostra l'apprendimento trasferito utilizzando il
ultralytics libreria. Carichiamo il YOLO26 modello,
che viene fornito con pesi pre-addestrati derivati dal COCO . Quando iniziamo l'addestramento su un nuovo set di dati, il
modello trasferisce automaticamente le sue caratteristiche pre-apprendite al nuovo compito.
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 set di dati ed eseguire questi cicli di formazione nel cloud, strumenti come la Ultralytics semplificano il processo, consentendo ai team di collaborare all'annotazione dei dati e all'implementazione efficiente dei modelli appresi tramite trasferimento.
Per approfondire la teoria accademica, le note di Stanford CS231n offrono un'eccellente panoramica, mentre il tutorialPyTorch Learning fornisce dettagli tecnici approfonditi per l'implementazione.