Scopri come la distillazione della conoscenza trasferisce l'intelligenza da insegnanti di grandi dimensioni a studenti compatti. Ottimizza Ultralytics per un'implementazione edge veloce ed efficiente.
La distillazione della conoscenza è una tecnica sofisticata nell'ambito dell' apprendimento automatico in cui una rete neurale compatta, denominata "studente", viene addestrata a riprodurre il comportamento e le prestazioni di una rete più grande e complessa, denominata "insegnante". L'obiettivo principale di questo processo è l' ottimizzazione del modello, che consente agli sviluppatori di trasferire le capacità predittive di architetture pesanti in modelli leggeri adatti all' implementazione su hardware con risorse limitate. Catturando le ricche informazioni codificate nelle previsioni dell'insegnante, il modello studente spesso raggiunge un'accuratezza significativamente superiore rispetto a quella che otterrebbe se fosse addestrato esclusivamente sui dati grezzi, colmando efficacemente il divario tra prestazioni elevate ed efficienza.
Nell'apprendimento supervisionato tradizionale, i modelli vengono addestrati utilizzando "etichette rigide" dai dati di addestramento, dove un'immagine viene categorizzata in modo definitivo (ad esempio, 100% "cane" e 0% "gatto"). Tuttavia, un modello insegnante pre-addestrato produce un output tramite una funzione softmax che assegna probabilità a tutte le classi. Queste distribuzioni di probabilità sono note come "etichette soft" o "conoscenza oscura".
Ad esempio, se un modello insegnante analizza l'immagine di un lupo, potrebbe prevedere che si tratti per il 90% di un lupo, per il 9% di un cane e per l'1% di un gatto. Questa distribuzione rivela che il lupo condivide caratteristiche visive con un cane, un contesto che un'etichetta rigida ignora. Durante il processo di distillazione, lo studente minimizza una funzione di perdita, come la divergenza di Kullback-Leibler, per allineare le sue previsioni con le etichette soft del maestro. Questo metodo, reso popolare dalla ricerca di Geoffrey Hinton, aiuta lo studente a generalizzare meglio e riduce l'overfitting su set di dati più piccoli.
La distillazione della conoscenza è fondamentale nei settori in cui le risorse computazionali sono scarse ma le prestazioni elevate sono indispensabili.
È importante differenziare la distillazione della conoscenza dalle altre strategie di compressione, poiché modificano i modelli in modi fondamentalmente diversi.
In un flusso di lavoro pratico, si seleziona innanzitutto un'architettura leggera che fungerà da studente. Ultralytics può essere utilizzata per gestire i set di dati e track esperimenti di addestramento di questi modelli efficienti. Di seguito è riportato un esempio di inizializzazione di un modello YOLO26 compatto, ideale per l'implementazione edge e come rete studente:
from ultralytics import YOLO
# Load a lightweight YOLO26 nano model (acts as the student)
# The 'n' suffix denotes the nano version, optimized for speed
student_model = YOLO("yolo26n.pt")
# Train the model on a dataset
# In a custom distillation loop, the loss would be influenced by a teacher model
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)