Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Grokking

Il grokking è una generalizzazione ritardata: una rete apprende presto il set di training, ma solo dopo molti passaggi la sua accuratezza di validazione passa dal livello casuale a un valore quasi perfetto.

Il grokking è una generalizzazione ritardata: una rete neurale raggiunge presto un'accuratezza perfetta sui dati di addestramento, resta a livello casuale sui dati di validazione per un lungo periodo e poi, molto tempo dopo essere apparentemente andata in overfitting, generalizza all'improvviso. Power et al. (2022) di OpenAI hanno dato questo nome all'effetto dopo aver addestrato piccoli transformer su attività algoritmiche come l'aritmetica modulare, in cui l'accuratezza di validazione è passata dal livello casuale a quella perfetta molto tempo dopo che l'accuratezza di addestramento si era stabilizzata. Il termine proviene dal romanzo di Robert Heinlein Straniero in terra straniera, in cui grok significa comprendere qualcosa completamente.

Come si manifesta il grokking#

L'addizione modulare è l'attività classica per studiare il grokking: la rete riceve coppie (a, b) e deve restituire (a + b) mod p, avendo a disposizione solo una frazione di tutte le coppie per l'addestramento. Il codice qui sotto addestra un piccolo perceptron multistrato con l'ottimizzatore AdamW di PyTorch sul 30% delle 9.409 coppie per p = 97 e termina in meno di un minuto su una CPU:

import torch
import torch.nn.functional as F

torch.manual_seed(0)
p = 97  # task: predict (a + b) mod 97 from one-hot encodings of a and b
a, b = torch.cartesian_prod(torch.arange(p), torch.arange(p)).T
x, y = torch.cat([F.one_hot(a, p), F.one_hot(b, p)], dim=1).float(), (a + b) % p
idx = torch.randperm(p * p)
train, val = idx[: p * p * 3 // 10], idx[p * p * 3 // 10 :]  # train on 30% of all pairs

model = torch.nn.Sequential(torch.nn.Linear(2 * p, 256), torch.nn.ReLU(), torch.nn.Linear(256, p))
optimizer = torch.optim.AdamW(model.parameters(), lr=1e-3, weight_decay=1.0)  # strong weight decay
for step in range(1, 20001):
    loss = F.cross_entropy(model(x[train]), y[train])
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    if step % 4000 == 0:
        train_acc, val_acc = [(model(x[i]).argmax(1) == y[i]).float().mean().item() for i in (train, val)]
        print(f"step {step:5d}: train accuracy {train_acc:.2f}, validation accuracy {val_acc:.2f}")

Al passaggio 4.000, l'accuratezza di addestramento è già 1,00 mentre quella di validazione è 0,00. L'accuratezza di validazione sale poi a 0,16 al passaggio 8.000, a 0,54 al passaggio 12.000, a 0,84 al passaggio 16.000 e a 0,97 al passaggio 20.000. Con weight_decay=0.0, la stessa esecuzione mantiene un'accuratezza di validazione pari a 0,00 per tutti i 20.000 passaggi.

Nanda et al. (2023) hanno spiegato il plateau con il reverse engineering di un transformer a uno strato addestrato sull'addizione modulare. La rete impara a trasformare l'addizione in una rotazione attorno a un cerchio, usando caratteristiche discrete di Fourier e identità trigonometriche. L'addestramento si articola in tre fasi continue: memorizzazione, formazione del circuito e rifinitura. Il circuito che generalizza cresce gradualmente mentre l'accuratezza di validazione rimane costante; il salto arriva quando il decadimento dei pesi rimuove la soluzione memorizzata che ancora dominava gli output.

Cosa provoca il grokking#

  • Regolarizzazione: Il decadimento dei pesi è stato l'intervento più efficace negli esperimenti originali e, senza di esso, l'esecuzione qui sopra non generalizza affatto.
  • Dimensione del dataset: Frazioni di addestramento più piccole richiedono molta più ottimizzazione prima di generalizzare; sotto una certa soglia, la rete non generalizza mai entro un budget pratico.
  • Norma dei pesi: Omnigrok collega il grokking alla dimensione dei pesi, poiché le soluzioni che generalizzano hanno una norma dei pesi inferiore a quelle basate sulla memorizzazione. Partendo da pesi iniziali grandi, gli autori hanno indotto il grokking in attività di visione, linguaggio e molecole; vincolando la norma dei pesi, lo hanno eliminato dalle attività algoritmiche.
  • Stabilità numerica: Prieto et al. (2025) hanno rilevato che, senza regolarizzazione, l'addestramento con entropia incrociata continua ad aumentare la scala dei logit finché gli errori in virgola mobile nella softmax non arrestano l'apprendimento; chiamano questo fenomeno Softmax Collapse. La loro attivazione StableMax e l'ottimizzatore ⊥Grad producono grokking senza decadimento dei pesi.
  • Overfitting: Una differenza tra le prestazioni di addestramento e di validazione che persiste o aumenta. Nel grokking, la differenza si riduce da sola continuando l'addestramento.
  • Doppia discesa: L'errore di test diminuisce, aumenta e poi diminuisce di nuovo mentre crescono le dimensioni del modello o la durata dell'addestramento. La doppia discesa per epoca è un'altra forma di miglioramento ritardato: durante l'addestramento l'errore di test aumenta per un po', prima di diminuire di nuovo.
  • Interpretabilità meccanicistica: Lo studio degli algoritmi interni alle reti addestrate. Il grokking nell'aritmetica modulare è diventato uno dei principali casi di studio perché è stato possibile ricostruire per intero l'algoritmo appreso.

Il grokking nella pratica#

Il grokking è più evidente nei piccoli dataset algoritmici governati da un'unica regola precisa. È comunque importante per la progettazione degli esperimenti, perché l'arresto anticipato interrompe un'esecuzione quando la metrica di validazione smette di migliorare, bloccando un'esecuzione soggetta a grokking durante il plateau. L'addestramento di Ultralytics YOLO si arresta dopo patience epoche senza miglioramenti nella fitness di validazione, 100 per impostazione predefinita, ed esegue ogni epoca quando patience=0.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning