Cos'è un modello di spazio di stato?

Cos'è un modello dello spazio di stato (SSM)?

I modelli di spazio di stato (SSM) sono una classe di algoritmi di machine learning utilizzati per fare previsioni sui sistemi dinamici, modellando come il loro stato interno si evolve nel tempo attraverso equazioni differenziali. Storicamente utilizzati nell'ingegneria dei sistemi di controllo, gli SSM sono una piattaforma matematica altamente flessibile e adattabile alla maggior parte delle attività di modellazione delle sequenze. Mamba, un'architettura di reti neurali basata su SSM, rivaleggia con i trasformatori in termini di prestazioni di modellazione del linguaggio.

I modelli di spazio di stato hanno le loro origini nell'ingegneria dei sistemi di controllo, dove hanno svolto un ruolo fondamentale nei calcoli di navigazione per il programma Apollo negli anni '60.1 Gli SSM sono utilizzati anche in modo prominente nell'ingegneria elettrica, dove sono fondamentali per l'elaborazione dei segnali, la teoria del controllo e la robotica. Tuttavia, la qualità più importante degli SSM è forse la loro versatilità, soprattutto per i sistemi con più input e più output.

Alla base degli SSM ci sono due semplici equazioni: una descrive le dinamiche interne di un sistema che non sono direttamente osservabili e l'altra descrive come tali dinamiche interne si relazionano ai risultati osservabili. Questa formulazione semplice e flessibile è estremamente adattabile per un'ampia varietà di dati di serie temporali multivariate.

In economia, gli SSM possono modellare il modo in cui le tendenze e la stagionalità influenzano i prezzi delle azioni. Nelle neuroscienze, possono mappare le relazioni tra segnali cerebrali misurabili (come le fMRI) e l'attività neurale sottostante. In ecologia, gli SSM possono aiutare a modellare le dinamiche della popolazione, i movimenti degli animali e a catturare-ricatturare i dati.2 Gli SSM vengono utilizzati anche nelle previsioni meteorologiche e in altri tipi di analisi delle serie temporali.

Negli ultimi anni, la ricerca sui modelli di spazio di stato si è concentrata sui loro usi nel deep learning, integrando le reti neurali come i parametri delle equazioni SSM. Più recentemente, e in particolare, questo ha prodotto l'architettura del modello Mamba per modelli linguistici di grandi dimensioni (LLM), che ha dimostrato di equivalere alla capacità prestazionale dei modelli basati su trasformatori, offrendo al contempo velocità ed efficienza superiori.

Cos'è uno spazio di stato?

Le condizioni di un sistema in un determinato momento sono determinate dai valori specifici di un numero qualsiasi di variabili del sistema. L'obiettivo della modellazione efficace dello spazio di stato è quello di identificare il sottoinsieme più piccolo di variabili di sistema necessarie per descrivere completamente il sistema. Questo sottoinsieme di variabili del sistema è chiamato variabili di stato. Lo spazio di stato è lo spazio n-dimensionale le cui assi (dimensioni) sono le variabili di stato, contenenti tutti i valori possibili per ciascuna di queste n variabili di stato.

Ognuna di queste variabili di stato dovrebbe essere linearmente indipendente: in altre parole, nessuna variabile di stato può costituire una combinazione (per addizione o sottrazione) di altre variabili di stato.

Lo stato specifico del sistema in un dato momento può essere espresso come un vettore di stato, in cui ogni elemento del vettore rappresenta il valore della corrispondente variabile di stato. Il vettore di stato ha lo stesso numero di dimensioni dello spazio di stato stesso. Un dato vettore di stato può essere inteso come un insieme di "coordinate" specifiche nello spazio di stato.

Esempi intuitivi di spazio di stato

Immaginiamo una macchinina giocattolo che si muove lungo un binario rettilineo a velocità costante. Lo spazio di stato può essere modellato con 2 variabili di stato: la posizione dell'auto (misurata come la distanza dalla linea di partenza) e la sua velocità. Lo stato del sistema in qualsiasi momento t può quindi essere espresso come un vettore di stato bidimensionale [posizionet, velocitàt]. In questo semplice sistema, se conosciamo la posizione e la velocità precise dell'auto in un dato momento, ovvero il suo stato attuale, possiamo prevedere dove sarà nel momento successivo.

La velocità stessa combina due variabili di sistema: velocità e direzione. Poiché l'auto si muove lungo un binario rettilineo, è possibile rappresentare semplicemente il movimento all'indietro come una velocità negativa e il movimento in avanti come una velocità positiva. Ma è possibile, anche se inefficiente, sostituire la singola variabile di stato della velocità con le due variabili di stato della velocità e della direzione.

Se la macchinina si muovesse in un campo aperto invece che su un binario rettilineo, lo spazio di stato sarebbe ora a 4 dimensioni, perché la posizione della macchinina e il suo movimento richiedono ciascuno almeno 2 dimensioni per essere completamente descritti.

In pratica, le "dimensioni" di uno spazio di stato raramente corrispondono alle dimensioni familiari e facili da visualizzare del mondo fisico. Prendiamo ad esempio il gioco del tris. Potremmo trattare ciascuno dei suoi 9 singoli quadrati come una variabile di stato - il cui valore potrebbe essere "0" per il vuoto, "1" per X e "2" per O, in uno spazio di stato a 9 dimensioni. Qualsiasi configurazione della scheda può essere espressa nello spazio di stato come un vettore di stato a 9 dimensioni.

Le ultime tendenze in materia di AI, proposte da esperti

Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Come funzionano i modelli di spazio di stato?

I modelli di spazio di stato mirano a prevedere sia come gli input di un sistema si riflettono nei suoi output, sia come lo stato del sistema stesso si evolve nel tempo e in risposta a input specifici.

Per ogni tempo t, un SSM prende una sequenza di input x(t) e la mappa sia sullo stato corrente h(t) sia sulla sequenza di output y(t). Lo stato h(t) viene spesso definito stato latente perché, a differenza dell'output del sistema, non è direttamente osservabile, cioè è latente (nascosto).

La rappresentazione dello spazio di stato di un sistema viene calcolata utilizzando due equazioni differenziali del primo ordine:

L' equazione di stato, h(t)=A*h(t)+B*x(t) 
L'equazione di output,
y(t)=C*h(t)+D*x(t)


I parametri chiave di un SSM sono A, B, C e D, che in genere assumono la forma di matrici. Ogni elemento di ciascuna matrice rappresenta la relazione, espressa come derivata prima, di una variabile di stato rispetto a qualche altra variabile (come una variabile di input esterna, un'altra variabile di stato o sé stessa). L'uso delle matrici rende i metodi dello spazio di stato uno strumento potente e scalabile per rappresentare sistemi complessi multi-input e multi-output (MIMO) in un formato compatto e standardizzato.

Nella teoria del controllo e nelle discipline correlate, queste matrici sono spesso definite direttamente: rappresentano la dinamica di un sistema stabilito e l'SSM viene utilizzato per trovare gli input x che portano agli output desiderabili y o allo stato ottimale h. Nelle concezioni più moderne degli SSM, quelle matrici sono esse stesse parametri da ottimizzare tramite il machine learning per riflettere al meglio i modelli in un set di dati di addestramento. Nei modelli di deep learning, questa “parametrizzazione” è rappresentata dai pesi apprendibili di una rete neurale.

L'equazione dello spazio di stato

L'equazione dello spazio di stato (o semplicemente l'equazione di stato), come suggerisce il nome, descrive lo stato del sistema come mediato dalla matrice A e dalla matrice B. In questa notazione, h(0) può essere inteso come lo stato iniziale del sistema, h(t) è lo stato latente al tempo t e h'(t), l'equazione differenziale del primo ordine per h (t), è il modo in cui lo stato cambia al tempo t.

Diagramma di un'equazione dello spazio di stato di un SSM L'equazione di stato. Illustrazione derivata da " A Visual Guide to Mamba and State Space Models " di Maarten Grootendorst

Per contestualizzare le nozioni astratte di equazioni e matrici differenziali, possiamo esplorarle attraverso la lente di un esempio semplificato e intuitivo di sistema dinamico in cui i parametri A, B, C e D sono già noti.

Per il nostro esempio, si immagini un piccolo ecosistema su un'isola sperduta che ospita una popolazione di pesci e una popolazione di pellicani che mangiano quei pesci. Possiamo rappresentare questo sistema utilizzando due variabili di stato: F (il numero di pesci) e P  (il numero di pellicani). Il nostro obiettivo è quello di definire una funzione h(t) che descrive come lo stato h(t), espresso come vettore di stato [F(t),P(t)] , sta cambiando al tempo t.

La matrice A

La matrice A, chiamata anche matrice di transizione, descrive come l'ecosistema dell'isola, rappresentato da queste due variabili di stato, si evolve nel tempo se lasciato a sé stesso. Più specificamente, descrive come lo stato attuale h influenza lo stato futuro.

Supponiamo che la dinamica delle popolazioni di pesci e pellicani sia molto semplice e costante:

  • Se lasciata da sola, la popolazione di pesci  F aumenta con un ritmo del 50%.
  • Se lasciata sola, la popolazione di pellicani  P diminuisce del 5%.
  • Ogni pellicano mangerà 4 pesci nello stesso lasso di tempo.
  • Per ogni 10 pesci in più, l'ecosistema può supportare 1 pellicano in più.

Ora possiamo esprimere ciascuna di queste dinamiche con semplici equazioni e rappresentare quelle equazioni in una matrice di dimensione n x n, dove n  = il numero di variabili di stato. Ogni colonna della nostra matrice A 2x2 rappresenta una variabile di stato e ogni riga rappresenta il suo tasso di variazione, ovvero la sua derivata prima, rispetto a ciascuna variabile di stato. Per maggiore chiarezza, sono state aggiunte delle annotazioni in corsivo.

 Fish(F)Pelicans(P)ChangestoFish0.5_-4_ChangestoPelicans0.1_-0.05_

Poiché i tassi di variazione della popolazione sono costanti nel nostro scenario semplificato, gli elementi della nostra matrice A sono delle costanti semplici. Gli scenari del mondo reale spesso comportano più variabili di stato e relazioni matematicamente più complesse tra di loro, ma il modo in cui tali relazioni sono rappresentate nella griglia della matrice di transizione A corrispondente sarebbe lo stesso.

Supponendo una completa assenza di influenze esterne, h' (t) =A*h (t) è sufficiente per descrivere come lo stato dell'ecosistema dell'isola si evolve nel tempo.

h(t)=A*h(t)

h(t)=[0.5-40.1-0.05]*h(t)

h(t)=[0.5-40.1-0.05]*[F(t)P(t)]  

La soluzione analitica di questa equazione richiede il calcolo degli autovalori e degli autovettori della matrice A, che esula dallo scopo di questo articolo. Tuttavia si scopre che, lasciato da solo, questo ecosistema non è sostenibile: le popolazioni di pesci e pellicani sperimenteranno un ciclo interrelato e sempre più estremo di boom e bust, che alla fine culminerà in un collasso catastrofico.

La matrice B

E se ci sono anche fattori esterni che influenzano l'ecosistema? La matrice B, chiamata anche matrice di input, informa l'altra metà dell'equazione di stato, descrivendo come un dato input influisce su ciascuna variabile di stato. È una matrice di dimensione n x m, in cui n = il numero di variabili di stato e m = il numero di variabili di input esterne. L'essenza della teoria del controllo è quella di determinare gli input di sistema x(t) che raggiungono uno stato o un risultato desiderabile per l'intero sistema.

Per approfondire l'esempio del nostro ecosistema insulare, aggiungeremo una singola variabile di input: un lancio aereo di cibo per pesci x (misurato in tonnellate) al tempo t. Supponiamo che ogni tonnellata di mangime per pesci lanciata consenta un ulteriore aumento del 30% della popolazione ittica e non abbia alcun effetto sulla popolazione di pellicani.

Poiché abbiamo 2 variabili di stato e 1 variabile di input, le cattureremo in una matrice di input 2x1. La riga superiore della matrice B rappresenterà F, in modo che corrisponda alla matrice A.

 ChangetoFChangetoP   [0.30]

Ora possiamo modellare lo stato dell'ecosistema dell'isola al tempo t utilizzando l'equazione di stato completa:

h(t)=A*h(t)+B*x(t)

h(t)=[0.5-40.1-0.05]h(t)+[0.30]x(t)

In questo caso, l'obiettivo sarebbe quello di identificare le regole ottimali, tipicamente rappresentate da un'altra matrice i cui elementi sono funzioni delle variabili di stato, per aggiungere input x(t) all'ecosistema ogni volta che la popolazione ittica sta per collassare, al fine di stabilizzare l'ecosistema.

L'equazione di output

Come accennato in precedenza, lo scopo dell'equazione di stato è descrivere lo "stato nascosto" h che non può essere osservato direttamente. Gli SSM presumono l'esistenza di una riflessione dello stato reale che è direttamente osservabile, anche se potenzialmente rumorosa o incompleta, e la modellano utilizzando l'equazione di output (chiamata anche equazione di osservazione).

Diagramma dell'equazione di output dell'SSM L'equazione di output. L'equazione di stato. Illustrazione tratta da "A Visual Guide to Mamba and State Space Models" di Maarten Grootendorst.

Lo stesso vale per il nostro semplice esempio di ecosistema: in realtà, è probabilmente impossibile contare letteralmente ogni singolo pesce e volatile su un'isola. Uno studio ecologico potrebbe invece utilizzare droni aerei e telecamere subacquee per contare oggettivamente parte della popolazione di pesci e pellicani, per poi fare delle ipotesi su come queste misurazioni si riferiscono al vero stato dell'ecosistema.

La matrice C

La matrice C (o matrice di output) determina la relazione tra le variabili di stato interne e l'output, y. L'output stesso è rappresentato come un vettore i cui elementi corrispondono ai valori osservati per ciascuna delle variabili di output. Nel nostro esempio di ecosistema, aggiungiamo 4 variabili di output: 2 telecamere subacquee per osservare la popolazione di pesci e 2 droni aerei per osservare la popolazione di pellicani.

  • La telecamera 1 si trova in una buona posizione con acqua limpida. Può registrare in modo affidabile circa il 20% della reale popolazione ittica F (e nessuno dei pellicani).
  • La telecamera 2 è in acque torbide e può vedere solo circa il 5% della popolazione di pesci.
  • Drone 1 è un nuovo drone di alta qualità. Riesce a individuare circa il 25% della reale popolazione di pellicani P, ma vola troppo in alto per vedere i pesci.
  • Drone 2 è un drone più vecchio. Può avvistare solo circa il 10% della popolazione di pellicani.

Possiamo rappresentare queste variabili di output in una matrice C p x n , in cui n = il numero di variabili di stato e p = il numero di segnali di uscita da misurare. Per allinearsi con le nostre matrici precedenti, la colonna di sinistra corrisponde alla relazione di ciascuna variabile di output con  F e la colonna di destra corrisponde alla sua relazione con  P .

Camera1Camera2Drone1Drone2[.20.0500.250.10]

Correlazione degli output con lo stato del sistema

Ora possiamo modellare gli output del sistema y al tempo t come

 y(t)=C*h(t)=[.20.0500.250.10]*[F(t)P(t)]

Teoricamente, questo ci consentirebbe di derivare il vero stato h dalle misurazioni di output y facendo riferimento alle equazioni di stato e di output.

In realtà, l'esatta relazione tra le misurazioni di output e lo stato reale è raramente conoscibile e le misurazioni di output stesse sono spesso imperfette e soggette a forti variazioni. Ad esempio, non è realistico supporre che il Drone 1 avvisterà mai esattamente il 25% dei pellicani sull'isola. Il filtro di Kalman è una tecnica comunemente utilizzata per produrre la stima dello stato reale con la massima verosimiglianza, utilizzando output di sistema rumorosi.

La matrice D

La matrice D descrive come l'input influenza direttamente l'output del sistema osservato. Viene spesso omesso dai diagrammi e dalle discussioni sugli SSM perché essenzialmente bypassa del tutto il "modello" effettivo, non avendo alcuna relazione diretta con lo stato stesso.

Ad esempio, nel nostro ecosistema, immaginiamo che le correnti dei corpi idrici dell'isola facessero cadere nell'aria il cibo per pesci che tende a depositarsi vicino alla telecamera 2. Ciò potrebbe far sì che la telecamera 2 registri una percentuale maggiore della popolazione ittica reale rispetto al solito (e che la telecamera 1 riprenda una percentuale di F inferiore al solito) ogni volta che si aumentano gli input. La matrice p x m D spiegherebbe tale effetto per ciascuna delle variabili di output.    

In alcuni casi, non esiste una connessione diretta tra input e output e D viene eliminato definitivamente dal modello.

AI Academy

Scegli il modello AI adatto al tuo caso d'uso

La dimensione maggiore non è sempre la scelta più adatta nel caso dei modelli AI. Contattaci per trovare la soluzione giusta per le tue necessità di business. Poi scarica la nostra guida che ti aiuterà a passare all'azione.

SSM e machine learning

L'utilizzo del filtro di Kalman per mappare gli output del sistema allo stato reale del sistema richiede che i parametri A e B siano noti in anticipo. Tuttavia, in molti casi, le dinamiche del sistema dello spazio di stato (i parametri A, B e C) sono inizialmente sconosciute. Al fine di utilizzare il framework SSM per fare previsioni significative sul sistema, devono essere determinati i parametri corretti.

È possibile utilizzare diversi algoritmi di machine learning per derivare i valori di A, B e C dagli input noti e dai corrispondenti output noti, utilizzando le due equazioni correlate che descrivono le loro interazioni. Se il modello è linear time-invariant (LTI), ovvero se la sua dinamica è coerente nel tempo e il suo output scala proporzionalmente all'input, gli algoritmi di massimizzazione delle aspettative o i metodi subspace come N4SID possono stimare in modo efficiente i parametri del modello.

SSM e deep learning

Negli ultimi anni, il deep learning è emerso come un mezzo sempre più comune per apprendere i parametri dell'SSM. Tali approcci rappresentano le matrici A, B e C come i pesi di una rete neurale. In un processo iterativo:

  • Il modello riceve input dai dati di addestramento e ha il compito di prevedere gli output del sistema.
  • Gli output previsti vengono misurati rispetto agli effettivi output "ground truth" per quell'input, utilizzando una funzione di perdita.
  • La retropropagazione viene utilizzata per determinare in che modo ogni parametro del modello, ovvero ogni elemento delle matrici A, B e C, ha contribuito all'errore misurato.
  • La discesa del gradiente viene utilizzata per ottimizzare i parametri del modello in modo da ridurre le perdite (inesattezze).
  • Il processo viene ripetuto, aggiornando le matrici SSM finché le previsioni del modello non raggiungono una soglia di accuratezza accettabile.

Utilizzando questo processo di apprendimento supervisionato (o apprendimento auto-supervisionato), il modello apprende implicitamente le dinamiche del sistema dello spazio di stato. Sebbene si tratti di un mezzo robusto e versatile per apprendere i parametri ottimali dell'SSM, richiede una grande quantità di dati di addestramento.

A differenza di un SSM convenzionale, un SSM basato su reti neurali non è interpretabile, poiché i valori delle sue matrici non corrispondono più alle relazioni tra variabili di stato e altri parametri del modello in modo intuitivo, come nel nostro esempio precedente. Questo non è un difetto esclusivo dei deep SSM, quanto piuttosto una qualità universale dei modelli di deep learning in generale.

Modelli di spazio di stato discreti

Gli SSM tradizionali sono modelli a tempo continuo progettati per modellare sequenze continue, come un segnale elettrico o la traiettoria di un oggetto in movimento. Tuttavia, molte modalità di dati elaborate dai moderni modelli di deep learning, come testo, strutture molecolari, comportamenti degli utenti o dati di serie temporali, sono in genere sequenze discrete. L'utilizzo di SSM per modellare una sequenza discreta richiede un mezzo per rappresentare i suoi passaggi temporali distinti e specifici quale parte di un segnale continuo.

Concettualmente, la discretizzazione consiste nel campionare "istantanee" del valore di una funzione continua in momenti specifici. Ciò comporta l'introduzione di un nuovo parametro, la dimensione del passo, , che determina per quanto tempo lo snapshot è stato "mantenuto" in ogni passo temporale discreto t. Le regolazioni a sono simili a modifiche a qualità come la risoluzione dei dati (per i dati delle serie temporali) o la frequenza dei fotogrammi (per i dati video). I metodi di discretizzazione più comuni includono il metodo bilineare, il metodo di Eulero e il metodo ZOH (Simple Zero Order Hold), utilizzato da molte varianti moderne di SSM (incluso Mamba).

Connessione tra SSM e RNN

Mentre un SSM a tempo continuo mappa una funzione x(t) a. una funzione y(t), un SSM a tempo discreto è un modello da sequenza a sequenza . Matematicamente parlando, un SSM discretizzato è l'equivalente di una rete neurale ricorrente (RNN), in cui lo stato latente del sistema è l'equivalente dello "stato nascosto" di una RNN.

Sebbene ci sia varianza in lettere specifiche utilizzate per indicare l'input e lo stato nelle equazioni SSM (in alcuni casi, la prima è espressa come u e la seconda come x), questa connessione con le RNN è ciò che motiva l'uso di h per denotare lo stato nella maggior parte dei contesti di machine learning. La relazione con le RNN è anche ciò che ha portato allo sviluppo di moderne architetture basate su SSM come Mamba.

I parametri e le equazioni degli SSM discretizzati vengono solitamente riscritti per distinguerli dai loro equivalenti a tempo continuo, utilizzando la subscript notation tipicamente impiegata per le RNN. In questa notazione, ht rappresenta lo spazio di stato aggiornato che il modello genererà, mentre ht-1 rappresenta lo stato precedente, ovvero lo spazio di stato corrente. Anche la notazione di A, B e C è stata modificata per rifletterne le forme discretizzate.

 ht=A¯ht-1+B¯xt 
 yt=C¯ht


In questa formulazione discreta, lo stato del sistema viene aggiornato dopo ogni passo temporale t (utilizzando l'equazione di stato), il che consente quindi allo stato aggiornato di informare l'equazione di output nel passo temporale successivo.

Modelli di spazio di stato strutturati

Nonostante i loro numerosi vantaggi, gli SSM discreti standard condividono con le RNN alcune importanti lacune. Due delle lacune più importanti sono state risolte con l'introduzione di modelli strutturati di sequenze nello spazio di stato (o "modelli S4") da parte di Albert Gu et al nel 2021: la loro incapacità di gestire sequenze lunghe e la loro intrinseca inefficienza durante l'addestramento dei modelli.

La prima è stata risolta attraverso una strategia unica per l'inizializzazione dei parametri di un SSM prima dell'addestramento. La seconda è stata risolta grazie alla scoperta di un'importante connessione tra SSM e reti neurali convoluzionali (CNN).

Inizializzazione HiPPO

Come le RNN standard, anche gli SSM discreti convenzionali sono intrinsecamente deboli nella modellazione delle dipendenze a lunga distanza. In altre parole, non sono in grado di comprendere la relazione tra passaggi di una sequenza molto distanti, come le parole all'inizio e alla fine di un paragrafo, il che li rende complessivamente deboli nella modellazione di sequenze lunghe (come i dati di testo).

Per risolvere questo problema, Gu et al hanno proposto l'uso di una tecnica chiamata HiPPO (abbreviazione di High-order Polynomial Projection Operators) per definire il comportamento delle matrici A e B.

Le funzioni polinomiali combinano uno o più termini. Ogni termine comprende un coefficiente e una funzione di base di una variabile. Ad esempio, 3x2 è un termine il cui coefficiente è 3 e la cui base è x2. L'ordine di un polinomio è determinato dalla potenza più alta di qualsiasi base che contiene: 3x2 + 5x è un "polinomio del secondo ordine". Più alto è l'ordine di un polinomio, più dettagli intricati possono essere catturati nelle sue curve.

Le funzioni polinomiali ortogonali sono "famiglie" speciali di polinomi, che si estendono su più ordini, in cui ogni polinomio è matematicamente indipendente dagli altri, così che non vi siano sovrapposizioni ridondanti o dipendenze informative tra di loro. Sono anche molto robusti per errori di arrotondamento minori, il che li rende utili per approssimare funzioni più complesse. Le famiglie di polinomi ortogonali sono a loro volta generate da una regola chiamata formula di ricorrenza a tre termini. Il metodo HiPPO utilizza tali formule di ricorrenza per costruire le matrici A e B.

In sostanza, ogni volta che lo stato ht viene aggiornato dall'equazione di stato A¯ht-1+B¯xt , gli elementi del vettore di stato ht agiscono come coefficienti di espressioni polinomiali che approssimano l'input originale. Gli input più vecchi sono approssimati tramite polinomi di ordine inferiore che catturano dettagli ampi a bassa frequenza (a lungo termine), mentre gli input più recenti sono approssimati tramite polinomi di ordine superiore che acquisiscono dettagli a grana fine e ad alta frequenza (a breve termine). Poiché i polinomi scelti sono ortogonali, nessuna informazione viene ripetuta. In sostanza, questa struttura costringe lo spazio di stato a "memorizzare" l'intera cronologia degli input "comprimendola" in modo efficiente in un vettore di coefficienti di dimensioni fisse.

Il documento S4 rileva che "la semplice modifica di un SSM da una matrice casuale A a [la matrice HiPPO] ne ha migliorato le prestazioni nel benchmark sequenziale MNIST dal 60% al 98%", risolvendo efficacemente il problema della memoria a lungo termine degli SSM. Varianti successive di SSM strutturati, come DSS, S5 e Mamba, utilizzano schemi di inizializzazione diversi (spesso più semplici) per A e B, pur mantenendo i principi HiPPO di base.

Collegamento tra SSM e CNN

Come le RNN convenzionali, gli equivalenti SSM discreti sono estremamente veloci nell'inferenza autoregressiva. L'aspetto negativo di questa equivalenza è che le RNN sono estremamente lente da addestrare.

Fortunatamente, gli SSM discretizzati hanno una proprietà importante che li distingue dalle altre RNN, ovvero modellano esclusivamente dipendenze lineari. In altre parole, utilizzano solo operazioni di moltiplicazione e addizione semplici e dirette. Come dimostra il documento S4, queste ricorrenze lineari semplici, ripetute e interdipendenti possono essere utilizzate in un kernel di convoluzione unidimensionale che mappa direttamente l'input x all'output y in un unico passaggio: . Questo può essere calcolato in modo molto efficiente utilizzando la trasformata di Fourier veloce.

L'unico "problema" è che questo è possibile solo quando ogni passaggio dell'intera sequenza di input è noto. Questo non avviene durante l'inferenza: il punto di inferenza è usare il modello per prevedere iterativamente il passaggio successivo di una sequenza, perché è sconosciuto. Tuttavia, durante l'addestramento, quando il modello viene alimentato con sequenze di campioni e ottimizzato per migliorare la precisione delle sue previsioni, l'intera sequenza è nota.

Ciò consente a un SSM strutturato di beneficiare del meglio di entrambi i mondi: durante l'addestramento, può essere utilizzato in modo molto efficiente come CNN; durante l'inferenza, può essere utilizzato in modo molto efficiente come RNN.

Modelli Mamba

Mamba è un'architettura per reti neurali basata su una variante speciale degli SSM strutturati, ovvero il modello selettivo dello spazio di stato.Nei compiti come la modellazione autoregressiva del linguaggio, i modelli Mamba hanno dimostrato di eguagliare o superare le prestazioni dei modelli trasformativi nella maggior parte dei benchmark accademici, essendo inoltre significativamente più veloci e più efficienti in termini di memoria sia nell'inferenza che nell'addestramento.

Gli SSM ordinari sono progettati esplicitamente per mappare l'input all'output utilizzando l'intera cronologia degli input.Questo è accettabile o addirittura desiderabile per alcune attività di modellazione delle sequenze, ma rappresenta un ostacolo significativo per la maggior parte delle attività avanzate di modellazione del linguaggio. Il modello selettivo dello spazio di stato fornisce a Mamba una funzionalità cruciale precedentemente offerta solo dal meccanismo di autoattenzione dell'architettura trasformativa, ovvero la capacità di concentrarsi o ignorare selettivamente parti specifiche della storia degli input passati in base alla loro rilevanza attuale.

Nei precedenti progetti SSM, i parametri A, B, C, D e ∆ sono fissi: una volta ottimizzati tramite l'addestramento dei modelli, sono gli stessi per ogni input. In un SSM selettivo , i parametri SSM dipendono dall'input, ovvero vengono generati moltiplicando ("proiettando") il vettore di input per un livello di pesi del modello, che a sua volta è ottimizzato durante l'addestramento.

Tuttavia, poiché gli SSM selettivi non sono linear time-invariant (LTI), non possono funzionare come CNN durante l'addestramento. Gli autori di Mamba hanno risolto questo compromesso con una scansione parallela compatibile con l'hardware, un algoritmo che ottimizza il modo in cui un'unità di elaborazione grafica (GPU) gestisce i calcoli del modello nella sua gerarchia di memoria per massimizzare la velocità e l'efficienza computazionale.

Diagramma di un modello selettivo dello spazio di stato L'allocazione selettiva di SSM e RAM su una GPU. Tratto dal documento originale, "Mamba: Linear Time-Sequence Modeling with Selective State Spaces"
Soluzioni correlate
Foundation Model

Esplora la libreria IBM di foundation model nel portafoglio di watsonx per scalare in sicurezza l'AI generativa per la tua azienda.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Esplora la libreria IBM dei foundation model nel portafoglio di IBM watsonx per scalare in sicurezza l'AI generativa per la tua azienda.

Scopri watsonx.ai Esplora i modelli AI Granite di IBM
Note a piè di pagina