Catastrophic Forgetting
L'oblio catastrofico è la perdita improvvisa di competenze precedenti quando una rete neurale viene addestrata su nuovi dati. Scopri perché si verifica, con esempi e strategie per mitigarla.
L'oblio catastrofico, detto anche interferenza catastrofica, è la perdita improvvisa di competenze apprese in precedenza quando una rete neurale viene addestrata su nuovi dati che non includono più esempi dell'attività precedente. L'addestramento aggiorna gli stessi pesi del modello che contenevano le conoscenze precedenti, e nella nuova loss non c'è nulla che premi il loro mantenimento; perciò l'accuratezza sull'attività originale può crollare nel giro di poche centinaia di aggiornamenti. Nel 1989 McCloskey e Cohen descrissero questo effetto in reti che apprendevano in sequenza fatti aritmetici; ancora oggi è il principale ostacolo all'apprendimento continuo e un rischio ricorrente nel fine-tuning.
Perché si verifica l'oblio catastrofico#
Le conoscenze in una rete neurale sono distribuite: ogni peso contribuisce a molti output e ogni output dipende da molti pesi. L'addestramento su una nuova attività sposta i pesi nella direzione in cui la loss diminuisce più rapidamente, senza alcun termine che misuri l'attività precedente, e così il modello esce dalla regione in cui tale attività funzionava. La classificazione accentua l'effetto a livello del layer di output. Quando nei dati di addestramento compaiono solo nuove classi, ogni passaggio riduce i punteggi delle classi assenti, finché il modello smette del tutto di prevederle. Un piccolo modello addestrato sulle cifre manoscritte da 0 a 4 e poi su quelle da 5 a 9 mostra questo effetto e illustra come riproporre un piccolo campione di dati precedenti possa limitarlo:
import torch
from sklearn.datasets import load_digits
torch.manual_seed(0)
X, y = load_digits(return_X_y=True)
X, y = torch.tensor(X / 16, dtype=torch.float32), torch.tensor(y)
train = torch.arange(len(y)) < 1400 # hold out the last 397 images for testing
task_a, task_b, test_a = train & (y < 5), train & (y >= 5), ~train & (y < 5)
replay = task_a & (torch.rand(len(y)) < 0.1) # keep 10% of task A for replay
for name, second_task in [("task B only", task_b), ("task B + 10% replay", task_b | replay)]:
model = torch.nn.Sequential(torch.nn.Linear(64, 64), torch.nn.ReLU(), torch.nn.Linear(64, 10))
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
# Train on digits 0-4 (task A), then on digits 5-9 (task B)
for mask in (task_a, second_task):
for _ in range(200):
loss = torch.nn.functional.cross_entropy(model(X[mask]), y[mask])
optimizer.zero_grad()
loss.backward()
optimizer.step()
accuracy = (model(X[test_a]).argmax(1) == y[test_a]).float().mean()
print(f"{name}: held-out digits 0-4 accuracy {accuracy:.1%}")Dopo l'attività A, la rete classifica correttamente il 92,4% delle 198 cifre da 0 a 4 mantenute come set di valutazione. Addestrarla solo sulle cifre da 5 a 9 riduce la percentuale allo 0,0%, perché il modello ora prevede solo le nuove classi. Mescolare 66 immagini riproposte dell'attività A nella seconda fase mantiene l'accuratezza al 74,7%.
L'oblio catastrofico nella pratica#
- Rilevamento di oggetti: un rilevatore addestrato su pedoni e segnali stradali, poi sottoposto a fine-tuning solo su immagini di nuovi segnali di cantiere, smette di rilevare i pedoni. Ogni pedone che compare senza etichetta nelle nuove immagini viene attivamente insegnato come sfondo, accelerando l'oblio.
- Modelli linguistici di grandi dimensioni: durante il fine-tuning continuo per seguire istruzioni di LLM da 1 a 7 miliardi di parametri, le conoscenze di dominio, il ragionamento e la comprensione della lettura sono peggiorati, e l'oblio è aumentato con le dimensioni del modello entro tale intervallo. Il fine-tuning di modelli allineati, anche su dati innocui, può indebolirne i comportamenti di sicurezza.
Oblio catastrofico e termini correlati#
- Apprendimento continuo: campo di ricerca che studia come apprendere una sequenza di attività senza dimenticare quelle precedenti. L'oblio catastrofico è il problema che affronta.
- Collasso del modello: perdita graduale di qualità e diversità quando i modelli vengono addestrati su dati generati da modelli precedenti, anche per la stessa attività.
- Overfitting: adattamento così stretto al rumore dei dati di addestramento correnti che le prestazioni diminuiscono su nuovi dati della stessa attività. L'oblio è la perdita di un'attività precedente.
- Disapprendimento automatico: rimozione deliberata di dati o conoscenze specifici da un modello addestrato, controparte intenzionale dell'oblio.
- Dilemma stabilità-plasticità: il compromesso tra mantenere stabili le conoscenze precedenti e conservare una plasticità sufficiente per apprendere nuove attività, che ogni metodo di mitigazione bilancia in modo diverso.
Come ridurre l'oblio catastrofico#
Le strategie di mitigazione si dividono in tre famiglie, ripetizione, regolarizzazione e isolamento dei parametri; di solito, sono i vincoli del progetto a determinare quale usare:
- Ripetizione: mescolare nell'addestramento corrente esempi conservati delle attività precedenti è la soluzione più affidabile, come mostra l'esempio delle cifre. Per i rilevatori YOLO26, i file YAML dei dati di Ultralytics accettano un elenco di cartelle di immagini di addestramento; la ripetizione consiste quindi nell'elencare un campione delle immagini originali insieme alle nuove, usando un unico elenco di classi combinato.
- Regolarizzazione: il consolidamento elastico dei pesi (EWC) penalizza le modifiche a ciascun peso in proporzione alla sua importanza per le attività precedenti, stimata tramite l'informazione di Fisher. L'apprendimento senza dimenticare usa invece la distillazione della conoscenza, addestrando il modello a continuare a riprodurre i vecchi output sui nuovi dati.
- Isolamento dei parametri: congelare i layer condivisi, aggiungere teste specifiche per attività o addestrare adattatori come LoRA lascia intatti i pesi originali. Nelle attività di programmazione e matematica, LoRA ha appreso meno del fine-tuning completo, ma ha dimenticato meno; il fine-tuning completo ha appreso modifiche ai pesi con un rango da 10 a 100 volte superiore rispetto alle configurazioni LoRA tipiche.










