Torna al blog

Pubblicato il 13 agosto 2026

Costruire cervelli dalla geometria non etichettata: cosa NeMoCo insegna a un ingegnere AI

Un amico mi ha recentemente inviato un articolo. Fa parte del team dietro di esso, e pensava che lo avrei trovato interessante dato il lavoro sugli agenti AI che sto facendo. Aveva ragione.

L'articolo è NeMoCo: apprendimento contrastivo auto-supervisionato per le morfologie 3D delle ultrastrutture neuroscientifiche, pubblicato su Graphical Models di Elsevier (agosto 2026). L'autore principale è Humaira Shaffique, supervisionato dal Dr. Marco Agus presso l'Università Hamad Bin Khalifa, con i co-autori Dr. Uzair Shah, Dr. Mahmood Alzubaidi, Dr. Jens Schneider, Dr. Pierre Julius Magistretti, Dr. Corrado Calì e il Prof. Mowafa H. Il codice è open-source su GitHub con licenza MIT.

Non sono un neuroscienziato. Sono un ingegnere AI. Passo le mie giornate a costruire Aura — un assistente AI personale che gestisce la memoria, instrada le attività, recupera il contesto e cerca di essere genuinamente utile tra le sessioni. Ma leggendo NeMoCo, ho continuato a vedere gli stessi problemi strutturali che affronto nell'ingegneria degli agenti, solo vestiti con dati di microscopia elettronica e geometria spettrale. Quindi questo è un writeup tecnico da quell'angolo — cosa fa NeMoCo, perché è interessante e cosa riflette nel lavoro di costruzione di sistemi di agenti.

Il problema: le etichette sono costose, la biologia non le usa

I neuroscienziati utilizzano la microscopia elettronica a volume (EM) per acquisire immagini 3D del tessuto cerebrale con risoluzione nanometrica. Da queste immagini ricostruiscono mesh 3D delle strutture subcellulari — neuriti (ramificazioni di assoni e dendriti), organelli come i mitocondri, l'involucro nucleare. Queste mesh sono le morfologie: le vere forme 3D delle strutture neurali.

Per classificarle — è questo un assone, un dendrito o una spina? — servono neuroscienziati esperti che etichettino manualmente ogni mesh. È lento, costoso e non scala. Non si può addestrare un classificatore supervisionato senza etichette, e non si possono ottenere etichette senza esperti. La connectomica deve elaborare milioni di queste strutture. L'etichettatura manuale è un collo di bottiglia.

Ecco ciò che mi ha colpito: il cervello non riceve etichette nemmeno lui. Un bambino non ha bisogno che qualcuno gli dica «questa è una sedia» per ogni sedia che vede. Impara il concetto osservando le sedie da diverse angolazioni, con diversa illuminazione, a diverse distanze — scoprendo le proprietà invarianti che fanno di una sedia una sedia. Nessuna etichetta. Solo esperienza grezza e scoperta della struttura.

NeMoCo si chiede: una macchina può fare la stessa cosa con le strutture neurali?

Cosa fa NeMoCo

NeMoCo è una pipeline di apprendimento contrastivo auto-supervisionato per la classificazione di maglie 3D. Impara a riconoscere strutture neurali senza un singolo esempio etichettato durante il pre‑addestramento. L'architettura è un sistema dual-encoder in stile CLIP applicato a maglie 3D.

Ecco come funziona:

  1. Prendi una maglia 3D non etichettata di un prolungamento neurale o di un organello.
  2. Crea due viste della stessa maglia: l'originale (o leggermente aumentata), e una versione trasformata — ruotata casualmente (±60°), scalata (0.6–1.4×), deformata tramite taglio, e opzionalmente decimata (50–75% in meno di facce).
  3. Passa entrambe le viste attraverso un DiffusionNet encoder — una rete neurale che opera direttamente sulle superfici 3D utilizzando la geometria spettrale (autovalori e autovettori del laplaciano della maglia).
  4. L'encoder produce un vettore di embedding a 32 dimensioni per ogni vista.
  5. Una CLIP-style contrastive loss addestra il modello a portare insieme le due viste della stessa maglia, allontanando nel contempo gli embedding di maglie diverse.
  6. Un ramo dell'encoder viene aggiornato tramite backpropagazione normale; l'altro è un momentum-updated "teacher" (EMA, momentum=0.999) — l'approccio MoCo, che previene il collasso delle rappresentazioni.

L'idea chiave: apprendendo che una mesh ruotata, scalata e decimata è "la stessa cosa", l'encoder scopre le caratteristiche geometriche intrinseche che definiscono ogni tipo di struttura neurale — senza mai essere stato informato su quali siano i tipi.

Perché DiffusionNet è importante qui

DiffusionNet (Sharp et al., SIGGRAPH 2022) non è qualcosa inventato da NeMoCo. È un'architettura presa in prestito per l'apprendimento su superfici 3D. Tuttavia la scelta è significativa. A differenza delle CNN (che richiedono griglie regolari) o di PointNet (che tratta i punti indipendentemente), DiffusionNet opera sulla geometria spettrale di una superficie — calcolando le autofunzioni di Laplace (pensate: i modi di vibrazione della forma) e utilizzando le Heat Kernel Signatures (HKS) come descrittori multi-scala che catturano la forma locale a diverse scale spaziali.

Questo è importante perché i neuroni sono fondamentalmente strutture 3D. La geometria È la morfologia. Quando si classificano le strutture neurali, la forma — la sua curvatura, ramificazione, spessore e trama superficiale — è il segnale. DiffusionNet lo rispetta. Non appiattisce la mesh in un'immagine né la riduce a una nuvola di punti. Apprende direttamente sulla superficie stessa.

In NeMoCo, DiffusionNet prende come input caratteristiche HKS a 16 dimensioni e restituisce un embedding a 32 dimensioni, utilizzando 4 blocchi con larghezza=128. L'architettura è presa in prestito, ma l'applicazione è nuova: questa specifica combinazione di DiffusionNet + MoCo + apprendimento contrastivo nello stile CLIP applicato alle morfologie ultrastrutturali delle neuroscienze non è mai stata fatta prima.

L'inquadratura Brain-Construction

È qui che il mio cervello da ingegnere AI ha iniziato a illuminarsi.

NeMoCo sta costruendo, in senso reale, un pezzo di ciò che fa un cervello — non biologicamente, ma computazionalmente: un sistema che impara a categorizzare le strutture neurali nel modo in cui i cervelli biologici imparano a categorizzare il mondo, partendo da esperienza grezza e non etichettata.

Il parallelo è a livello di principio, non di meccanismo. NeMoCo utilizza una specifica funzione di perdita matematica (CLIP-style cross-entropy). Il cervello utilizza la plasticità dipendente dal timing degli spike e la neuromodulazione — molto più complessa e non direttamente analoga. La "banca della memoria" di NeMoCo è una tabella di ricerca kNN. La memoria biologica è associativa, ricostruttiva e costantemente riorganizzata. Il cervello apprende continuamente da un flusso; NeMoCo si addestra in epoche discrete su un dataset fisso.

Ma il principio vale: labels are not necessary for learning good representations. Questo è il modo in cui funzionano i cervelli biologici, e NeMoCo è una dimostrazione computazionale di ciò.

Gli elementi di un cervello, mappati

Se pensi a ciò che fa un cervello — a livello funzionale, non biologico — puoi scomporlo in elementi: percezione, memoria, rappresentazione, apprendimento, ragionamento. NeMoCo ha degli analoghi per ciascuno:

  • Perception: L'input sensoriale grezzo diventa una rappresentazione strutturata. In NeMoCo, le caratteristiche HKS + DiffusionNet trasformano una rete grezza in un incorporamento geometrico. Nel cervello, i segnali sensoriali grezzi diventano caratteristiche percettive.
  • Memory: Rappresentazioni memorizzate, recuperabili per similarità. La banca della memoria kNN congelata di NeMoCo memorizza incorporamenti e li recupera tramite il vicino più vicino. Il cervello recupera per similarità associativa.
  • Representation: Caratteristiche invarianti estratte da esperienze varie. L'incorporamento 32D di NeMoCo mappa la stessa rete sottoposta a diverse trasformazioni allo stesso vettore. Il cervello mantiene rappresentazioni stabili degli oggetti nonostante i diversi punti di vista.
  • Apprendimento: Aggiornamento basato sull'esperienza. NeMoCo usa la retropropagazione + EMA con momento. Il cervello usa le regole di plasticità.
  • Ragionamento: Combinazione di rappresentazioni per prendere decisioni. NeMoCo usa il voto kNN e il probing lineare. Il cervello fa... beh, qualcosa di molto più complesso, ma il ruolo funzionale è lo stesso.

Non sto affermando che NeMoCo sia un cervello. È una condotta matematica. Ma è una condotta che costruisce un pezzo funzionale di ciò che fanno i cervelli: costruire rappresentazioni interne utili da esperienze grezze e non etichettate.

Dove rispecchia l'ingegneria degli agenti

Questa è la parte che mi ha colpito più da vicino. Costruisco Aura — un assistente AI che gestisce la memoria, instrada le attività, recupera il contesto e mantiene la continuità tra le sessioni. I parallelismi strutturali con NeMoCo sono abbastanza concreti che continuavo ad annuire mentre leggevo l'articolo.

Pre-addestramento auto-supervisionato ↔ Memoria dell'agente

NeMoCo effettua il pre-addestramento su 4,235 mesh di crani di topo non etichettate (il dataset MouseFinal), costruendo una rappresentazione geometrica di uso generale. Questo codificatore pre-addestrato può poi essere congelato e riutilizzato per più compiti a valle — classificazione, recupero, clustering — senza dover riatrainare il nucleo.

La memoria dell'agente funziona allo stesso modo. I file di memoria di Aura — memoria a lungo termine, note quotidiane, note degli strumenti — costruiscono una comprensione di uso generale dell'utente, dei progetti e dell'ambiente senza etichette specifiche per il compito. Questa memoria persiste tra le sessioni e può essere interrogata per qualsiasi compito. È un "contesto pre-addestrato" che non deve essere ricostruito ogni volta.

La valutazione kNN congelata è il parallelo più netto. L'encoder di NeMoCo, pre-addestrato senza etichette, raggiunge circa il 70–80% di accuratezza su un compito di classificazione per cui non è stato mai esplicitamente addestrato — semplicemente trovando i vicini più prossimi nello spazio di embedding. Una memoria dell'agente ben mantenuta permette a un assistente AI di rispondere a domande su progetti di cui non è stato brevemente informato nella sessione corrente — semplicemente trovando voci semanticamente simili. Il meccanismo è diverso (kNN nello spazio vettoriale rispetto alla ricerca semantica su testo), ma il principio è lo stesso: una buona rappresentazione, costruita dall'esperienza grezza, si trasferisce a compiti per cui non è stata progettata.

Apprendimento della rappresentazione ↔ Struttura della conoscenza dell'agente

L'embedding a 32 dimensioni di NeMoCo è una rappresentazione compressa dell'identità geometrica di una mesh. Gli embedding che sono vicini nello spazio vettoriale rappresentano morfologie simili. Lo spazio di embedding emerge dai dati — nessuno ha progettato quali dimensioni corrispondono a quali caratteristiche.

La memoria dell'agente è una rappresentazione compressa di fatti, decisioni e contesto. L'agente non memorizza trascrizioni grezze; memorizza significato distillato. Inoltre, la struttura di quella memoria emerge dall'uso, non da uno schema predefinito. Non ho progettato a priori la tassonomia della memoria di Aura. Ho scoperto cosa fosse importante attraverso l'interazione — quali progetti emergono, quali decisioni contano, quali preferenze si ripetono. La memoria raggruppa naturalmente i concetti correlati, allo stesso modo in cui lo spazio di embedding di NeMoCo raggruppa naturalmente strutture neurali simili.

L'intuizione contrastiva

Questo è più speculativo, ma credo sia reale. La loss contrastiva di NeMoCo funziona avvicinando le cose simili e allontanando quelle diverse. Il modello impara cosa rende due viste "la stessa mesh" anche imparando cosa le rende "non qualche altra mesh".

Qui c'è una lezione per la progettazione degli agenti. Un agente che memorizza solo fatti — esempi positivi — non ha modo di sapere cosa sia distintivo di quei fatti. Sto sperimentando il tracciamento di contrasti nella memoria di Aura: "questo progetto usa SQLite, non Postgres"; "questo utente preferisce risposte dirette, non spiegazioni." La cornice contrastiva rende la rappresentazione più ricca. Non basta sapere cosa sia qualcosa; bisogna anche sapere cosa non è.

L'encoder momentum è un altro esempio. Il ramo insegnante lentamente aggiornato (EMA, τ=0.999) impedisce che la rappresentazione oscilli selvaggiamente durante l'addestramento. La memoria dell'agente potrebbe adottare un principio simile di "aggiornamento lento". Non riscrivo la memoria a lungo termine ad ogni nuovo fatto. Lascio che i pattern importanti accumulino peso nel tempo prima di promuoverli. Le note giornaliere sono log grezzi; la memoria a lungo termine è curata. La promozione dall'uno all'altro è un aggiornamento simile al momentum — lento, deliberato, resistente al rumore.

I risultati

NeMoCo valuta le rappresentazioni apprese a tre livelli:

  1. kNN congelato (k=20): L'encoder è completamente congelato. Le mesh di test vengono classificate trovando i loro 20 vicini più prossimi in una banca di memoria degli embedding di addestramento e votando. Nessun addestramento aggiuntivo. Risultato: accuratezza ~70–80% sul compito di classificazione della struttura neurale a sei classi, dopo il pre‑addestramento su MouseFinal — un dataset per il quale l'encoder non ha mai visto le etichette.
  2. Probing lineare: Viene addestrato un singolo strato lineare sopra l'encoder congelato. Questo verifica se le caratteristiche apprese sono linearmente separabili — le classi formano cluster puliti nello spazio degli embedding?
  3. Fine-tuning: L'encoder e il classificatore vengono addestrati end-to-end. Questo è il tetto supervisionato: accuratezza ~87%.

Il risultato principale: gli approcci self-supervised e supervised raggiungono un'accuratezza comparabile. Non identici — il tetto supervisionato è più alto — ma abbastanza vicini da poter classificare le strutture neurali senza grandi set di dati etichettati. L'accuratezza di recupero CLIP durante il pre‑addestramento è 200–400× migliore rispetto al caso casuale (casuale = 0.024% per 4,235 mesh), il che indica che l'encoder sta apprendendo una struttura reale, non memorizzando rumore.

Questi numeri provengono dal README della Fase 4 del progetto — sono intervalli attesi, non cifre finali pubblicate. L'articolo è dietro paywall su ScienceDirect, quindi non posso verificare i numeri finali esatti. Ma la direzione è chiara: il pre‑addestramento self-supervised colma la maggior parte del divario rispetto all'addestramento completamente supervisionato, e lo fa senza nemmeno un'etichetta.

Perché è importante

La connettomica richiede scala. Il collo di bottiglia non è l'imaging — la tecnologia EM può catturare terabyte di dati. Il collo di bottiglia è l'annotazione. Se hai bisogno di neuroscienziati esperti per etichettare manualmente ogni mesh, sei limitato dalla capacità umana. L'approccio di NeMoCo — pre-addestrare su dati non etichettati, trasferire a compiti etichettati con un minimo di fine-tuning — è una strada per superare quel collo di bottiglia.

Il trasferimento cross-domain è particolarmente interessante. NeMoCo pre-addestra su mesh di crani di topo e trasferisce alla classificazione della struttura neurale. Dominio diverso, forme diverse, stessi primitivi geometrici. L'encoder ha appreso caratteristiche generali di forme 3D che si sono trasferite. Questa è la promessa dell'apprendimento auto-supervisionato: imparare la struttura del mondo, poi specializzarsi a basso costo.

Il codice è open-source. I dataset sono descritti nel repo. L'architettura è riproducibile su una RTX 3090 (con batch size ridotto) o su una A100 per l'addestramento su larga scala. Questo non è un sistema aziendale chiuso — è un progetto di ricerca che puoi eseguire tu stesso.

Il Team

Questo lavoro proviene dalla Hamad Bin Khalifa University in Qatar. Humaira Shaffique ha guidato il lavoro come parte della sua tesi di Master. Il Dr. Marco Agus ha supervisionato. Il Dr. Uzair Shah (il proprietario e mentore del repo), il Dr. Mahmood Alzubaidi, il Dr. Jens Schneider, il Dr. Pierre Julius Magistretti, il Dr. Corrado Calì e il Prof. Mowafa H. completano la lista dei co-autori. L'articolo è pubblicato in Graphical Models (Elsevier), intorno ad agosto 2026.

Il mio amico fa parte del team. Me l'ha inviato perché pensava che le analogie con l'ingegneria degli agenti sarebbero state evidenti. Lo sono state.

Cosa porto via

Costruendo Aura, ho affrontato lo stesso problema fondamentale che risolve NeMoCo, solo in un dominio diverso: come si costruiscono rappresentazioni interne utili da esperienze grezze e non etichettate?

La risposta di NeMoCo: apprendimento contrastivo sulla geometria intrinseca. Mostra al sistema la stessa cosa da angolazioni diverse, digli 'queste sono le stesse' e esso scoprirà cosa conta. La mia risposta per Aura: accumula memoria dall'interazione, lascia che la struttura emerga dall'uso, promuovi lentamente i pattern. Meccanismi diversi, stesso principio.

L'inquadramento della costruzione cerebrale non è una metafora che sto imponendo. È la struttura effettiva del problema. Quando costruisci un agente — percezione (routing dell'input), memoria (archiviazione e recupero), rappresentazione (contesto compresso), apprendimento (aggiornamento della memoria), ragionamento (selezione degli strumenti e pianificazione) — stai costruendo qualcosa di simile a un cervello a partire da componenti. Non dal punto di vista biologico, ma funzionale. Allo stesso modo in cui NeMoCo costruisce un sistema che categorizza le strutture neurali come il cervello categorizza il mondo: senza essere informato quali siano le categorie.

Questa è la lezione. Le etichette sono una scorciatoia. La struttura è ciò che conta. E puoi apprendere la struttura dall'esperienza grezza — sia che tu sia un cervello, un classificatore di mesh o un agente AI che cerca di essere utile.

NeMoCo su GitHub: github.com/Uzshah/NeMoCo

Articolo: Elsevier, Graphical Models (~August 2026)

DiffusionNet: Sharp et al., SIGGRAPH 2022 — github.com/nmwsharp/diffusion-net

MoCo v2: He et al., CVPR 2020 — arxiv.org/abs/2003.04297

CLIP: Radford et al., ICML 2021 — arxiv.org/abs/2103.00020

#AI#MachineLearning#Neuroscience#SelfSupervisedLearning