Il calcolo iperdimensionale (HyperDimensional Computing, HDC) è un approccio al calcolo, in particolare all'intelligenza artificiale generale. L'HDC è motivato dall'osservazione che il cervelletto opera su rappresentazioni di dati ad alta dimensionalità.[1] Nell'HDC, le informazioni sono quindi rappresentate come un vettore iperdimensionale (lungo) detto ipervettore. Un ipervettore può includere migliaia di numeri che rappresentano un punto in uno spazio di migliaia di dimensioni, [2] come nelle architetture simboliche vettoriali, un nome più vecchio per lo stesso approccio. La ricerca è tesa allo sviluppo di una AGI, o intelligenza artificiale generale.
I dati vengono mappati dallo spazio di input allo spazio iperdimensionale sparso tramite una funzione di codifica φ: X → H. Le rappresentazioni iperdimensionali sono memorizzate in strutture dati soggette a corruzione a causa di rumore o problemi hardware. Le rappresentazioni iperdimensionali rumorose o corrotte possono comunque servire come input per l'apprendimento, la classificazione, ecc. Possono anche essere decodificate per recuperare i dati di input. H è in genere ridotto a interi con intervallo limitato (-v,v) [3]
Ciò presenta analogie con il processo di apprendimento realizzato dal sistema olfattivo dei moscerini della frutta. L'input è un vettore di circa 50 dimensioni corrispondenti ai tipi di neuroni recettori degli odori. La rappresentazione HD utilizza circa 2.000 dimensioni. [3]
Trasparenza
modificaL'algebra degli ipervettori svela la logica di come e perché i sistemi prendono decisioni, a differenza delle reti neurali artificiali. Gli oggetti del mondo fisico possono essere mappati su ipervettori, per essere elaborati da tale algebra. [2]
Prestazioni
modificaIl calcolo iperdimensionale è adatto a “sistemi di elaborazione in memoria”, che elaborano e conservano i dati su singolo microchip, evitando così ritardi nel trasferimento dei dati. I dispositivi analogici funzionano a bassa tensione e quindi sono efficienti dal punto di vista energetico, ma soggetti a rumori che generano errori. Gli HDC sono in grado di tollerare tali errori [2].
Diversi team hanno sviluppato acceleratori hardware HDC a basso consumo.[3]
Si possono sfruttare dispositivi memristivi su scala nanometrica per eseguire calcoli. Un sistema di calcolo iperdimensionale in memoria può implementare operazioni su due motori crossbar memristivi insieme a circuiti CMOS digitali periferici. Esperimenti con 760.000 dispositivi di memoria a cambiamento di fase che eseguono calcoli analogici in memoria hanno raggiunto una precisione paragonabile a quella delle implementazioni software. [4]
Errori
modificaIl calcolo iperdimensionale risulta robusto rispetto a errori come quello su un singolo bit (uno 0 che diventa 1 o viceversa) non rilevati dai meccanismi di correzione. L'eliminazione di tali meccanismi di correzione degli errori può far risparmiare fino al 25% dei costi computazionali. Ciò è possibile perché tali errori lasciano il risultato "vicino" al vettore corretto. Il ragionamento tramite vettori non viene compromesso. Il calcolo iperdimensionale è almeno 10 volte più tollerante agli errori rispetto alle reti neurali artificiali tradizionali, che sono già ordini di grandezza più tolleranti rispetto all'elaborazione tradizionale. [2]
Esempio
modificaPer un semplice esempio si considerino immagini contenenti cerchi neri e quadrati bianchi. Gli ipervettori potrebbero rappresentare variabili Forma e Colore e contenere i valori corrispondenti: CERCHIO, QUADRATO, NERO e BIANCO. Ipervettori associati a valori potrebbero contenere le coppie NERO e CERCHIO, ecc. [2]
Ortogonalità
modificaLo spazio ad alta dimensionalità contiene molti vettori reciprocamente ortogonali. Tuttavia, se addirittura si ammettono vettori quasi ortogonali, il numero di vettori distinti nello spazio ad alta dimensionalità è notevolmente maggiore. [2]
Il calcolo iperdimensionale utilizza il concetto di rappresentazione distribuita, in cui un oggetto/osservazione è rappresentato/a da un schema di valori su molte dimensioni piuttosto che da una singola costante. [3]
Operazioni
modificaL'HDC può combinare ipervettori in nuovi ipervettori usando ben definite operazioni sullo spazio vettoriale.
Gruppi, anelli e campi su ipervettori costituiscono le strutture di calcolo sottostanti con operazioni di calcolo primitive quali addizione, moltiplicazione, permutazione, mappatura e inversa. [4] Tutti i task di elaborazione vengono eseguiti nello spazio ad alta dimensionalità utilizzando operazioni semplici come addizioni elemento per elemento e prodotti scalari. [3]
L'associazione (binding) crea tuple ordinate ed è anche una funzione ⊗ : H × H → H. L'input è costituito da due punti in H, mentre l'output è un punto dissimile. Moltiplicando il vettore Forma per CERCHIO crea un'associazione fra i due, rappresentando l'idea "Forma = CERCHIO". Questo vettore è "quasi ortogonale" rispetto a Forma e CERCHIO. Le componenti sono recuperabili dal vettore (ad esempio, per rispondere alla domanda "è di forma circolare?").[3]
L'addizione crea un vettore che combina concetti. Ad esempio, aggiungendo "Forma = CERCHIO" a "Colore = ROSSO", si crea un vettore che rappresenta un cerchio rosso.
La permutazione riorganizza gli elementi del vettore. Ad esempio, permutando un vettore tridimensionale con valori etichettati x, y e z, è possibile scambiare x con y, y con z e z con x. Eventi rappresentati da ipervettori A e B possono essere sommati, formando un unico vettore, ma ciò sacrificherebbe l'informazione sull'ordine degli eventi. Combinando addizione e permutazione si preserva l'ordine; la sequenza degli eventi può essere ripristinata invertendo le operazioni.
Il raggruppamento (bundling) combina un insieme di elementi in H attraverso la funzione ⊕ : H × H → H. L'input è costituito da due punti in H e l'output è un terzo punto simile ad entrambi. [3]
Storia
modificaLe architetture simboliche vettoriali (VSA) [5] hanno fornito un approccio sistematico alle rappresentazioni di simboli ad alta dimensionalità per supportare operazioni come la creazione di relazioni. I primi esempi includono rappresentazioni ridotte olografiche, codici di Spatter binari e binding matriciale di termini additivi. Il calcolo iperdimensionale ha fatto progredire questi modelli, con particolare enfasi sull'efficienza a livello hardware. [3]
Nel 2015, Eric Weiss ha mostrato come rappresentare completamente un'immagine in forma di ipervettore. Un vettore siffatto può contenere informazioni su tutti gli oggetti nell'immagine, comprese proprietà come colore, posizione e dimensioni. [2]
Nel 2023, Abbas Rahimi et al., hanno utilizzato HDC con reti neurali per risolvere il problema delle matrici progressive di Raven. [2]
Nel 2023, Mike Heddes et al. sotto la supervisione di Givargis, Nicolau e Veidenbaum hanno creato una libreria di calcolo iperdimensionale basata su PyTorch[6].
Applicazioni
modificaRiconoscimento delle immagini
modificaGli algoritmi di calcolo iperdimensionale possono svolgere compiti che sono da tempo appannaggio delle reti neurali profonde, come la classificazione delle immagini. [2]
La classificazione di un insieme annotato di cifre scritte a mano utilizza un algoritmo per analizzare le caratteristiche di ciascuna immagine, producendo un ipervettore per immagine. L'algoritmo quindi aggiunge gli ipervettori per tutte le immagini etichettate, ad esempio, per la cifra uno, per creare un ipervettore prototipico per il concetto di otto e lo ripete per tutte le altre cifre. [2]
La classificazione di un'immagine non etichettata comporta la creazione per essa di un ipervettore e quindi il confronto con gli ipervettori di riferimento per le diverse classi/cifre. Tale confronto identificherà la cifra cui la nuova immagine somiglia di più.[2]
Dato un insieme di esempi etichettati , dove e è l'etichetta della classe dello specifico . [3]
Data la query (esempio da etichettare) , va ritrovato l'indice del vettore-prototipo più simile . Come misura di similarità ρ si impiega in genere il prodotto scalare. [3]
Ragionamento
modificaSi possono utilizzare ipervettori anche ai fini del ragionamento. Le matrici progressive di Raven presentano immagini di oggetti in una griglia. Una posizione nella griglia è vuota. Il test consiste nello scegliere tra le immagini candidate quella più adatta. [2]
Un dizionario di ipervettori rappresenta singoli oggetti. Ogni ipervettore rappresenta un concetto di oggetto con i suoi attributi. Per ogni immagine di test, una rete neurale genera un ipervettore binario (con valori +1 o -1) il più vicino possibile a un insieme-dizionario di ipervettori. L'ipervettore generato descrive quindi tutti gli oggetti e i loro attributi nell'immagine.[2]
Un altro algoritmo crea distribuzioni di probabilità per il numero di oggetti in ciascuna immagine e le loro caratteristiche. Queste distribuzioni descrivono le caratteristiche probabili sia delle immagini candidate sia del loro contesto. Anch'esse vengono trasformate in ipervettori, quindi attraverso l'algebra degli ipervettori si è in grado di predire l'immagine più probabile candidata a riempire lo slot. [2]
Con tale approccio si è raggiunto l'88% di accuratezza su un insieme di problemi, superando le soluzioni basate esclusivamente su reti neurali, che avevano un'accuratezza del 61%. Per griglie 3x3, il sistema è risultato 250 volte più veloce di un metodo che utilizzava il ragionamento logico simbolico, per via delle dimensioni dell'insieme di regole associato. [2]
Altro
modificaAltre applicazioni dell'HDC comprendono l'elaborazione del segnale biologico, l'elaborazione del linguaggio naturale e la robotica. [3]
Note
modifica- ^ Zhuowen Zou, Haleh Alimohamadi e Farhad Imani, Spiking Hyperdimensional Network: Neuromorphic Models Integrated with Memory-Inspired Framework, 1º ottobre 2021, DOI:10.48550/arXiv.2110.00214.
- ^ a b c d e f g h i j k l m n o (EN) Anil Ananthaswamy, A New Approach to Computation Reimagines Artificial Intelligence, su Quanta Magazine, 13 aprile 2023. URL consultato il 30 ottobre 2025.
- ^ a b c d e f g h i j k Anthony Thomas, Sanjoy Dasgupta e Tajana Rosing, A Theoretical Perspective on Hyperdimensional Computing, in Journal of Artificial Intelligence Research, vol. 72, 5 ottobre 2021, pp. 215–249, DOI:10.1613/jair.1.12664.
- ^ a b (EN) Geethan Karunaratne, Manuel Le Gallo e Giovanni Cherubini, In-memory hyperdimensional computing, in Nature Electronics, vol. 3, n. 6, 1º giugno 2020, pp. 327–337, DOI:10.1038/s41928-020-0410-3.
- ^ (EN) HD/VSA, su hd-computing.com, 13 marzo 2023. URL consultato il 15 aprile 2023.
- ^ Pytorch, su pytorch.org. Framework open source per il deep learning.
Bibliografia
modifica- Denis Kleyko, Dmitri A. Rachkovskij e Evgeny Osipov, A Survey on Hyperdimensional Computing aka Vector Symbolic Architectures, Part I: Models and Data Transformations, in ACM Comput. Surv., vol. 55, n. 6, 7 dicembre 2022, DOI:10.1145/3538531.
- Denis Kleyko, Dmitri Rachkovskij e Evgeny Osipov, A Survey on Hyperdimensional Computing aka Vector Symbolic Architectures, Part II: Applications, Cognitive Models, and Challenges, in ACM Comput. Surv., vol. 55, n. 9, 16 gennaio 2023, DOI:10.1145/3558000.
- (EN) Michiel Stock, Wim Van Criekinge e Dimitri Boeckaerts, Hyperdimensional computing: A fast, robust, and interpretable paradigm for biological data, in Varun Dutt (a cura di), PLOS Computational Biology, vol. 20, n. 9, 24 settembre 2024, pp. e1012426, DOI:10.1371/journal.pcbi.1012426.
- (EN) Fabio Cumbo e Davide Chicco, Hyperdimensional computing in biomedical sciences: a brief review, in PeerJ Computer Science, vol. 11, 13 maggio 2025, pp. e2885, DOI:10.7717/peerj-cs.2885.
- (EN) Pentti Kanerva, Hyperdimensional Computing: An Introduction to Computing in Distributed Representation with High-Dimensional Random Vectors, in Cognitive Computation, vol. 1, n. 2, 1º giugno 2009, pp. 139–159, DOI:10.1007/s12559-009-9009-8.
- (EN) Peer Neubert, Stefan Schubert e Peter Protzel, An Introduction to Hyperdimensional Computing for Robotics, in KI - Künstliche Intelligenz, vol. 33, n. 4, 2019-12, pp. 319–330, DOI:10.1007/s13218-019-00623-z.
- M. Stock, Tutorial on Hyperdimensional Computing, su michielstock.github.io. URL consultato il 30 ottobre 2025.