Implementazione della memoria associativa
Scritto da Shashata Sawmya e Harveer Singh
Con l'avvento delle grandi reti neurali e i sempre crescenti progressi tecnologici che spingono i metodi attuali al loro limite assoluto, l'attenzione si è concentrata sulla creazione di uno strumento universale che mira a fare tutto. Tuttavia, la maggior parte delle attività non richiederebbe le reti profonde incredibilmente intense, ma comunque qualcosa di più versatile dei modelli matematici di base. Un compito potenziale che non richiederebbe l'intensità delle reti neurali profonde sarebbe l'archiviazione e il recupero di informazioni chiamate memorie associative. L'idea qui è che, dato un input, vorremmo essere in grado di recuperare un output correlato da un sistema che associ questi due insieme e lo mantenga in "memoria". Il nome memoria associativa deriva dal concetto psicologico secondo cui il nostro cervello è un sistema di immagazzinamento della memoria in grado di collegare insieme i concetti. Un tipo di memoria associativa è la memoria autoassociativa in cui diamo una rappresentazione parziale del nostro output desiderato come input, questo potrebbe essere l'output con rumore aggiunto o parti dell'output mascherate. Un esempio di questo tipo di memoria in azione sarebbe vedere un'immagine parziale di un parente e il tuo cervello sarebbe in grado di riempire automaticamente mentalmente il resto dell'immagine. Un altro tipo è la memoria eteroassociativa in cui gli output possono essere di diverse categorie dell'input dato ma il modello si ricorda di collegarli insieme. Immagina di sentire la parola “cane”, il tuo cervello è in grado di associarla automaticamente ad altri concetti come “gatto” o “guinzaglio” [1]. Un esempio di questo tipo di memoria in azione sarebbe vedere un'immagine parziale di un parente e il tuo cervello sarebbe in grado di riempire automaticamente mentalmente il resto dell'immagine. Un altro tipo è la memoria eteroassociativa in cui gli output possono essere di diverse categorie dell'input dato ma il modello si ricorda di collegarli insieme. Immagina di sentire la parola “cane”, il tuo cervello è in grado di associarla automaticamente ad altri concetti come “gatto” o “guinzaglio” [1]. Un esempio di questo tipo di memoria in azione sarebbe vedere un'immagine parziale di un parente e il tuo cervello sarebbe in grado di riempire automaticamente mentalmente il resto dell'immagine. Un altro tipo è la memoria eteroassociativa in cui gli output possono essere di diverse categorie dell'input dato ma il modello si ricorda di collegarli insieme. Immagina di sentire la parola “cane”, il tuo cervello è in grado di associarla automaticamente ad altri concetti come “gatto” o “guinzaglio” [1].
I sistemi AM (memoria associativa) hanno una ricca storia, ma ci sono pietre miliari della ricerca chiave che possono fornire una panoramica dei progressi tecnici:
- Rete di Willshaw (Willshaw et al, 1969)
- Rete Hopfield (Hopfield, 1982)
Ispirato dalle proprietà "simile alla memoria" degli ologrammi, nel 1969 DJ Willshaw propose il correlografo, o correlogramma, e un approccio quantitativo alla memoria associativa.
La figura sopra mostra la convoluzione dei pattern A e B per creare un nuovo pattern su C, più specificamente A e B contengono forellini da cui passa una sorgente luminosa (dietro A) per creare un pattern su C che contiene informazioni su entrambi i pattern di fori di spillo. Da questo, vedere la figura 2 in basso, la creazione di fori di spillo dal motivo proiettato su C e il passaggio della luce che emette dietro C e attraverso B produce esattamente lo stesso schema in cui si trovano i fori di spillo di A.
Durante la costruzione del correlografo, Willshaw notò che se sia A che B contenevano N forellini allora il motivo su C sarebbe stato di dimensione N². Ciò ha portato alla proposta della rete associativa, un'intersezione di N rette parallele (che rappresentano A) e N rette parallele (che rappresentano B).
La costruzione della rete segue che ogni semicerchio nello spazio N² è attivato se sono attivi sia l'input sinistro che l'input destro, rappresentando la loro associazione reciproca. È quindi possibile recuperare il modello A da B seguendo i cerchi sul lato sinistro e vedendo a quali cerchi dall'alto sono associati vedendo quali dei punti N² sono attivi. È chiaro che questo funzionerebbe facilmente con una sola associazione di coppia, ma è anche possibile apprendere più schemi nella stessa rete. Willshaw mostra che il massimo teorico di efficienza della rete è quando il 50% dei punti N² è attivato, questo diminuisce la probabilità di un "colpo spurio" - suggerendo un punto in A che non era originariamente associato al modello B [2 ].
Rete Hopfield
Naturalmente seguendo la rete associativa, la principale innovazione che ha stimolato il moderno design AM si è verificata nel 1982, quando John Hopfield, spesso indicato come il padrino delle reti neurali, ha proposto la sua rete hopfield. La rete è una rete ricorrente completamente connessa con ogni neurone che si trova in uno stato binario (0 o 1) e il peso dato tra il valore di input e il valore di output desiderato è rappresentato in una matrice di peso.
Se Tij è la matrice dei pesi corrispondente, l'associazione è ottenuta mediante:
Dove U in una quantità limite scelta abilmente per migliorare la precisione.
Per memorizzare più stati di associazione, viene fornito il seguente algoritmo:
Imponiamo la restrizione che per i=j, il peso è 0 in T. Questo porta alla pseudo ortogonalità di:
Ciò suggerisce che se Vi è 1, il valore previsto per J è positivo e negativo se è 0. Ciò segue la precedente regola di associazione in cui U è 0.
Questo algoritmo di apprendimento essenzialmente calcola la media degli stati stabili per ogni modello, ma questo mette a dura prova il numero di modelli che una data rete potrebbe ricordare. Ispirato dai modelli di Ising e dalla minimizzazione dell'energia, Hopfield propone questo meccanismo di aggiornamento da interpretare come minimizzazione dell'energia. Per una rete ricorrente a N nodi, tutti i nodi sono collegati tra loro, prendiamo un nodo casuale alla volta e utilizziamo la matrice dei pesi per aggiornare quel nodo.
Dove s è il numero del nodo e il valore all'interno delle parentesi è il timestep.
Nello studio dei punti stabili, l'algoritmo di aggiornamento è definito da questa regola energetica:
Ciò suggerisce che qualsiasi variazione di Vi diminuisce l'energia della rete fintanto che la variazione di Vi (+ o -) corrisponde al segno dell'output dalla moltiplicazione della matrice.
I nodi vengono aggiornati in modo asincrono e casuale seguendo la regola energetica e la soglia specificata. È garantito il raggiungimento di uno stato energetico stabile poiché la regola di aggiornamento cambia un neurone solo se diminuisce l'energia ad ogni passo temporale. Nel determinare quanti stati stabili possono esistere, è stato dimostrato che esistono circa 0,15 N stati per N neuroni nel modello, un ridimensionamento rigorosamente o(N) [3]. È anche importante notare che la struttura di questo tipo di rete favorisce il successo nei compiti autoassociativi, ma ci sono variazioni come le codifiche "vettore-matrice-vettore" che possono implementare anche la memoria eteroassociativa [4].
Teorie biologiche
Un'idea chiave che guida tutti i modelli sopra menzionati è promuovere una connessione se un neurone corrisponde a quello nel modello che viene abbinato. Questo stile di apprendimento è noto come "apprendimento hebbiano" che promuove una connessione nelle sinapsi se i due neuroni si attivano insieme. Sebbene la formazione della memoria nel cervello sia ancora un fenomeno sconosciuto, è stato dimostrato in laboratorio che questa idea di "fuoco insieme filo insieme" è stata biologicamente accurata [5].
Implementazione della memoria associativa in-silico
La memoria associativa è un tipo di memoria che consente l'archiviazione e il recupero di informazioni in base alle relazioni o alle associazioni tra diversi pezzi di dati. Lo sviluppo di modelli computazionali per un tale sistema è un problema consolidato all'intersezione tra neuroscienze e intelligenza artificiale. Metodi ben studiati come le reti Hopfield possono memorizzare solo schemi binari; tuttavia, dati complessi (come immagini e testi) richiedono sistemi complessi per risolvere il problema.
I metodi basati sull'energia sono buoni modelli computazionali per la memoria associativa?
Quasi tutti i modelli di memoria associativa basati sull'energia memorizzano schemi nei minimi locali di una funzione energetica. L'idea principale alla base di questi modelli è definire un paesaggio energetico, in cui i modelli memorizzati corrispondono a stati stabili a bassa energia. La funzione energia è progettata per avere più minimi locali, ognuno dei quali rappresenta un modello memorizzato. Quando il sistema riceve un input, aggiorna iterativamente il proprio stato per minimizzare la funzione energia, convergendo infine sul modello memorizzato più vicino, che è il minimo locale più vicino all'input. Alcuni modelli basati sull'energia sono:
Hopfield Networks [2]: La funzione energetica nelle reti Hopfield è definita come una funzione quadratica dello stato della rete. Ogni modello memorizzato corrisponde a un minimo locale di questa funzione energetica. Le dinamiche di rete assicurano che il sistema converga verso uno di questi minimi locali, recuperando efficacemente il modello associato.
Macchine di Boltzmann [6]: Nelle macchine di Boltzmann, la funzione energia è definita in termini di stati dei nodi e dei pesi delle connessioni tra di essi. Il processo di apprendimento regola i pesi per creare un panorama energetico con minimi locali che corrispondono ai modelli memorizzati. Il sistema utilizza quindi dinamiche stocastiche per esplorare il panorama energetico e stabilirsi in un minimo locale, recuperando il modello corrispondente.
Approcci basati sulla teoria del campo medio [7]: questi approcci memorizzano anche modelli nei minimi locali di una funzione energetica. Approssimando le dinamiche di un sistema complesso con la teoria del campo medio, i processi di apprendimento e recupero possono essere analizzati e ottimizzati in modo più efficiente.
Questi modelli tradizionali sono in grado di gestire dati di immagini su piccola scala, ma possono avere problemi con immagini più grandi e complesse a causa dei loro limiti di capacità, scalabilità e complessità computazionale.
L'interpolazione da sola può implementare la memoria associativa?
La memorizzazione richiede che il modello recuperi i dati di addestramento, mentre l'interpolazione è la capacità di adattare perfettamente i dati di addestramento. Quindi, l'interpolazione da sola non può implementare la memoria associativa. L'interpolazione può essere una tecnica utile per approssimare valori tra punti dati noti, ma non è sufficiente per implementare un sistema di memoria associativa completo. I modelli di memoria associativa sono progettati per archiviare e recuperare modelli in base alle loro associazioni, spesso identificando il modello memorizzato più vicino a un dato input, anche se l'input è rumoroso o incompleto.
Sebbene l'interpolazione possa essere utilizzata per stimare i valori tra punti dati noti, non è intrinsecamente progettata per gestire rumore, informazioni incomplete o riconoscimento di modelli. I metodi di interpolazione, come l'interpolazione lineare o polinomiale, si basano sul presupposto che la funzione sottostante sia uniforme o abbia una forma specifica, il che potrebbe non essere vero per molti problemi di memoria associativa del mondo reale.
Un metodo alternativo per la memoria associativa: la sovraparametrizzazione?
La sovraparametrizzazione si riferisce a una situazione in cui un modello di apprendimento automatico ha un numero elevato di parametri (pesi e pregiudizi) rispetto alle dimensioni del set di dati di addestramento. In altre parole, il modello è più complesso del necessario per spiegare o acquisire i modelli sottostanti nei dati. È stato osservato in precedenza che i modelli sovraparametrizzati possono interpolare i dati; un recente studio di Radhakrishnan et al. 2020 [8] ha dimostrato che gli autoencoder sovraparametrizzati potrebbero essere utilizzati anche per memorizzare e recuperare esempi di addestramento. Il meccanismo è straordinariamente semplice; - gli esempi possono essere
recuperato semplicemente iterando la mappa appresa.
Codificatori automatici! Anche sovraparametrizzato! Cosa sono questi?
Un codificatore automatico è un tipo di rete neurale artificiale utilizzata per l'apprendimento senza supervisione di rappresentazioni di dati efficienti, spesso con l'obiettivo di ridurre la dimensionalità, l'apprendimento delle caratteristiche o la compressione dei dati. Si compone di due parti principali: l'encoder e il decoder.
L'obiettivo di addestramento di un codificatore automatico è ridurre al minimo l'errore di ricostruzione tra i dati di input e i dati ricostruiti, che viene generato facendo passare l'input attraverso il codificatore e quindi il decodificatore.
In poche parole, un codificatore automatico sovraparametrizzato è un codificatore automatico con un gran numero di parametri. Adit et. al. ha dimostrato che gli autoencoder sovraparametrizzati memorizzano esempi di addestramento come punti fissi o attuatori. Tuttavia, apprende anche la mappa identità f(x) = x
Questo è un problema per l'associatività perché una sua precondizione è che la derivata negli esempi deve essere minore di 1. Adit et. al. 2020ha lavorato sulla premessa che gli autoencoder sovraparametrizzati sono abbastanza potenti da implementare la memoria associativa. Hanno mostrato nel loro lavoro che gli autocodificatori sovraparametrizzati possono essere usati come una "memoria associativa basata su attrattori". L'idea alla base dei sistemi basati su attrattori è che la rete dovrebbe essere in grado di recuperare uno schema memorizzato quando viene fornita una versione incompleta o rumorosa di tale schema. Il modello di input funge da spunto e le dinamiche di rete guidano il sistema verso l'attrattore più vicino, "ripulendo" efficacemente il rumore o inserendo le informazioni mancanti: in poche parole, OPA può implementare la memoria associativa. Le condizioni matematiche per essere una memoria associativa basata su attrattori sono:
- Gli esempi devono essere punti fermi.
- Le derivate negli esempi devono essere inferiori a 1.
Succede davvero?
Il documento fornisce ampie prove empiriche che gli attrattori possono essere trovati negli autocodificatori attraverso varie architetture e tecniche di ottimizzazione. Gli autori hanno dimostrato con successo un codificatore automatico sovraparametrizzato in grado di memorizzare 500 immagini dal set di dati ImageNet-64 come attrattori. Hanno confermato che tutte le 500 immagini di addestramento erano effettivamente memorizzate come attrattori esaminando gli autovalori della matrice Jacobiana per ciascun esempio. Lo studio ha anche analizzato la velocità con cui gli esempi di formazione potrebbero essere recuperati sotto diverse forme di corruzione, rivelando un tasso di recupero straordinariamente alto.
Ulteriori esperimenti hanno dimostrato che gli autocodificatori possono anche memorizzare esempi di addestramento come attrattori se addestrati con 2.000 immagini dal set di dati MNIST e 1.000 immagini in bianco e nero dal set di dati CIFAR10. Sebbene gli attrattori spuri (attrattori diversi dagli esempi di addestramento) possano potenzialmente esistere negli autocodificatori sovraparametrizzati, i ricercatori non sono stati in grado di identificare tali attrattori spuri nel loro esempio ImageNet-64.
Gli autori hanno condotto un'analisi completa del fenomeno dell'attrattore, esaminando varie architetture comuni, metodi di ottimizzazione e schemi di inizializzazione. Questi includevano una gamma di non linearità, metodi di ottimizzazione e schemi di inizializzazione. Le loro scoperte hanno rivelato che gli attrattori sono emersi in ogni scenario in cui l'addestramento convergeva verso una perdita sufficientemente bassa entro 1.000.000 di epoche. Significativamente, questo fenomeno non era limitato alle reti completamente connesse, ma è stato osservato anche nelle architetture di rete ampiamente utilizzate, come le reti convoluzionali e ricorrenti.
Significativamente, questo fenomeno non era limitato alle reti completamente connesse, come è stato osservato anche nelle architetture di rete ampiamente utilizzate, come le reti convoluzionali e ricorrenti. Per visualizzare gli attrattori 2D, hanno addestrato un codificatore automatico a memorizzare sei esempi di addestramento come attrattori e hanno visualizzato i loro bacini di attrazione iterando la mappa del codificatore automatico addestrato, partendo da 10.000 punti della griglia fino alla convergenza. Il campo vettoriale nell'esperimento indica la direzione del movimento data dall'iterazione. Ogni esempio di allenamento e il suo corrispondente bacino di attrazione sono rappresentati da colori diversi. È interessante notare che lo studio ha rivelato che la metrica appresa dall'autoencoder per separare i bacini di attrazione non è la distanza euclidea, che sarebbe indicata da un diagramma di Voronoi.
La codifica della sequenza mostra risultati migliori rispetto alla codifica automatica.
Modificando leggermente la funzione obiettivo rispetto agli autoencoder si ottiene l'implementazione di memorie associative. I ricercatori hanno dimostrato che la minimizzazione della funzione di perdita per una soglia sufficientemente piccola e stabile codifica le sequenze di addestramento come cicli limite della rete (un tipo di attrattore che mostra un comportamento stabile e periodico).
Fine Nota
In conclusione, la memoria associativa è un aspetto affascinante della cognizione umana che è stata studiata in vari contesti, inclusi i sistemi biologici, le reti di Hopfield e le reti neurali sovraparametrizzate. La nostra comprensione della memoria associativa negli organismi viventi ha ispirato lo sviluppo di modelli computazionali, come le reti Hopfield, che a loro volta hanno fatto progredire i campi dell'intelligenza artificiale e dell'apprendimento automatico.
Recenti ricerche sulle reti neurali sovraparametrizzate hanno scoperto l'emergere di attrattori, un fenomeno legato alla memoria associativa, attraverso una gamma di architetture e tecniche di ottimizzazione. Questo entusiasmante sviluppo non solo consolida la connessione tra i sistemi neurali biologici e artificiali, ma apre anche nuove opportunità per esplorare modelli più efficienti e robusti per l'archiviazione e il recupero della memoria.
Mentre continuiamo a scoprire gli intricati meccanismi alla base della memoria associativa, le nostre scoperte alimenteranno ulteriori innovazioni nell'intelligenza artificiale, aprendo la strada a modelli avanzati di ispirazione biologica in grado di simulare le capacità cognitive umane. Questa esplorazione in corso promette di migliorare la nostra comprensione della complessa relazione tra biologia e calcolo, portando infine a scoperte che possono beneficiare entrambi i campi.
Un ringraziamento speciale a Nir N. Shavit per la sua guida e l'utile discussione. Creato come parte della classe 6.S978 del MIT — Tissue vs. Silicon in Machine Learning, primavera 2023.
Riferimenti
- Smith, J. (2022). Cos'è la memoria associativa? Molto bene Mente.https://www.verywellmind.com/what-is-associative-memory-5198601
- Willshaw, DJ, Buneman, OP e Longuet-Higgins, HC (1969). Memoria associativa non olografica. Nature , 222 (5197), 960–962.Yáñez-Márquez, C., López-Yáñez, I., Aldape-Pérez, M., Camacho-Nieto, O., Argüelles-Cruz, AJ, & Villuendas-Rey, Y. (2018). Fondamenti teorici per le memorie associative Alpha-Beta: 10 anni di estensioni, modelli e applicazioni derivati. Lettere di elaborazione neurale , 48 (2), 811–847.
- Hopfield, J.J. (1982). Reti neurali e sistemi fisici con abilità computazionali collettive emergenti. Atti dell'Accademia nazionale delle scienze , 79 (8), 2554–2558.
- Kosko, B. (1988). Memorie associative bidirezionali. Transazioni IEEE su sistemi, uomo e cibernetica, 18 (1), 49–60.
- McClelland, JL (2006). Fino a che punto puoi spingerti con l'apprendimento hebbiano e quando ti porta fuori strada. Processi di cambiamento nel cervello e nello sviluppo cognitivo: attenzione e prestazioni xxi, 21, 33–69.
- Ackley, David H., Geoffrey E. Hinton e Terrence J. Sejnowski. "Un algoritmo di apprendimento per le macchine Boltzmann." Scienze cognitive 9.1 (1985): 147–169.
- Barabási, Albert-László, Réka Albert e Hawoong Jeong. "Teoria del campo medio per reti casuali senza scala". Physica A: Meccanica statistica e sue applicazioni 272.1–2 (1999): 173–187.
- Radhakrishnan, Adityanarayanan, Mikhail Belkin e Caroline Uhler. "Le reti neurali sovraparametrizzate implementano la memoria associativa". Atti dell'Accademia nazionale delle scienze 117.44 (2020): 27162–27170