HTM è la componente algoritmica della Thousand Brains Theory of Intelligence di Jeff Hawkins. Così le nuove scoperte sulla neocorteccia sono progressivamente incorporate nel modello HTM, che cambia nel tempo in risposta. Le nuove scoperte non invalidano necessariamente le parti precedenti del modello, quindi le idee di una generazione non sono necessariamente escluse in quella successiva. A causa della natura evolutiva della teoria, ci sono state diverse generazioni di algoritmi HTM, che sono brevemente descritte di seguito.
Prima generazione: zeta 1Edit
La prima generazione di algoritmi HTM è talvolta indicata come zeta 1.
TrainingEdit
Durante il training, un nodo (o regione) riceve come input una sequenza temporale di modelli spaziali. Il processo di apprendimento consiste in due fasi:
- Il pooling spaziale identifica (nell’input) modelli osservati frequentemente e li memorizza come “coincidenze”. Gli schemi che sono significativamente simili tra loro sono trattati come la stessa coincidenza. Un gran numero di possibili schemi di input sono ridotti a un numero gestibile di coincidenze note.
- Il pooling temporale divide le coincidenze che probabilmente si susseguiranno nella sequenza di allenamento in gruppi temporali. Ogni gruppo di pattern rappresenta una “causa” del pattern di input (o “nome” in On Intelligence).
I concetti di spatial pooling e temporal pooling sono ancora piuttosto importanti negli attuali algoritmi HTM. Il pooling temporale non è ancora ben compreso, e il suo significato è cambiato nel tempo (con l’evoluzione degli algoritmi HTM).
InferenceEdit
Durante l’inferenza, il nodo calcola l’insieme delle probabilità che un pattern appartenga ad ogni coincidenza nota. Poi calcola le probabilità che l’input rappresenti ogni gruppo temporale. L’insieme delle probabilità assegnate ai gruppi è chiamato “credenza” del nodo sul modello di input. (In un’implementazione semplificata, la credenza del nodo consiste in un solo gruppo vincente). Questa credenza è il risultato dell’inferenza che viene passata a uno o più nodi “genitori” nel livello immediatamente superiore della gerarchia.
I pattern “inattesi” al nodo non hanno una probabilità dominante di appartenere a un qualsiasi gruppo temporale ma hanno probabilità quasi uguali di appartenere a diversi gruppi. Se le sequenze di pattern sono simili alle sequenze di addestramento, allora le probabilità assegnate ai gruppi non cambieranno tanto spesso quanto i pattern sono ricevuti. L’output del nodo non cambierà tanto, e si perde una risoluzione nel tempo.
In uno schema più generale, la credenza del nodo può essere inviata all’input di qualsiasi nodo(i) a qualsiasi livello(i), ma le connessioni tra i nodi sono ancora fisse. Il nodo di livello superiore combina questo output con l’output di altri nodi figli formando così il proprio schema di input.
Siccome la risoluzione nello spazio e nel tempo si perde in ogni nodo come descritto sopra, le credenze formate dai nodi di livello superiore rappresentano una gamma ancora più ampia di spazio e tempo. Questo è inteso a riflettere l’organizzazione del mondo fisico come viene percepito dal cervello umano. I concetti più grandi (ad esempio, cause, azioni e oggetti) sono percepiti per cambiare più lentamente e consistono in concetti più piccoli che cambiano più rapidamente. Jeff Hawkins postula che il cervello abbia evoluto questo tipo di gerarchia per corrispondere, prevedere e influenzare l’organizzazione del mondo esterno.
Più dettagli sul funzionamento di Zeta 1 HTM possono essere trovati nella vecchia documentazione di Numenta.
Seconda generazione: algoritmi di apprendimento corticaleModifica
La seconda generazione di algoritmi di apprendimento HTM, spesso chiamata algoritmi di apprendimento corticale (CLA), era drasticamente diversa da zeta 1. Si basa su una struttura di dati chiamata sparse distributed representations (cioè una struttura di dati i cui elementi sono binari, 1 o 0, e il cui numero di bit 1 è piccolo rispetto al numero di bit 0) per rappresentare l’attività del cervello e un modello di neurone più biologicamente realistico (spesso chiamato anche cellula, nel contesto di HTM). Ci sono due componenti fondamentali in questa generazione di HTM: un algoritmo di pooling spaziale, che produce rappresentazioni sparse distribuite (SDR), e un algoritmo di memoria di sequenza, che impara a rappresentare e prevedere sequenze complesse.
In questa nuova generazione, gli strati e le minicolonne della corteccia cerebrale sono affrontati e parzialmente modellati. Ogni strato HTM (da non confondere con un livello HTM di una gerarchia HTM, come descritto sopra) consiste in un certo numero di minicolonne altamente interconnesse. Uno strato HTM crea una rappresentazione distribuita sparsa dal suo input, in modo che una percentuale fissa di minicolonne sia attiva in qualsiasi momento. Una minicolonna è intesa come un gruppo di cellule che hanno lo stesso campo recettivo. Ogni minicolonna ha un certo numero di cellule che sono in grado di ricordare diversi stati precedenti. Una cellula può essere in uno dei tre stati: attivo, inattivo e predittivo.
Spatial poolingEdit
Il campo recettivo di ogni minicolonna è un numero fisso di input che sono selezionati casualmente da un numero molto più grande di input del nodo. In base al modello di input (specifico), alcune minicolonne saranno più o meno associate ai valori di input attivi. Il pooling spaziale seleziona un numero relativamente costante delle minicolonne più attive e inattiva (inibisce) le altre minicolonne nelle vicinanze di quelle attive. Modelli di input simili tendono ad attivare un insieme stabile di minicolonne. La quantità di memoria usata da ogni strato può essere aumentata per imparare schemi spaziali più complessi o diminuita per imparare schemi più semplici.
Celle attive, inattive e predittiveModifica
Come detto sopra, una cella (o un neurone) di una minicolonna, in qualsiasi momento, può essere in uno stato attivo, inattivo o predittivo. Inizialmente, le celle sono inattive.
Come diventano attive le celle? Modifica
Se una o più celle della minicolonna attiva sono nello stato predittivo (vedi sotto), saranno le uniche a diventare attive nel passo temporale corrente. Se nessuna delle cellule della minicolonna attiva è nello stato predittivo (il che accade durante la fase temporale iniziale o quando l’attivazione di questa minicolonna non era prevista), tutte le cellule sono rese attive.
Come fanno le cellule a diventare predittive? Edit
Quando una cellula diventa attiva, forma gradualmente connessioni con le cellule vicine che tendono ad essere attive durante diverse fasi temporali precedenti. Così una cellula impara a riconoscere una sequenza nota controllando se le cellule connesse sono attive. Se un gran numero di celle connesse sono attive, questa cella passa allo stato predittivo in previsione di uno dei pochi input successivi della sequenza.
L’output di una minicolonnaModifica
L’output di uno strato include minicolonne in entrambi gli stati attivo e predittivo. Così le minicolonne sono attive per lunghi periodi di tempo, il che porta a una maggiore stabilità temporale vista dallo strato padre.
Inferenza e apprendimento onlineModifica
Gli algoritmi di apprendimento corticale sono in grado di imparare continuamente da ogni nuovo modello di input, quindi non è necessaria una modalità di inferenza separata. Durante l’inferenza, HTM cerca di far corrispondere il flusso di input a frammenti di sequenze precedentemente apprese. Questo permette ad ogni strato di HTM di predire costantemente la probabile continuazione delle sequenze riconosciute. L’indice della sequenza predetta è l’output dello strato. Poiché le predizioni tendono a cambiare meno frequentemente dei modelli di input, questo porta ad una maggiore stabilità temporale dell’output nei livelli di gerarchia più alti. La predizione aiuta anche a riempire i modelli mancanti nella sequenza e a interpretare i dati ambigui influenzando il sistema a dedurre ciò che ha predetto.
Applicazioni del CLAsEdit
Gli algoritmi di apprendimento corticale sono attualmente offerti come SaaS commerciali da Numenta (come Grok).
La validità del CLAsEdit
La seguente domanda è stata posta a Jeff Hawkins nel settembre 2011 riguardo agli algoritmi di apprendimento corticale: “Come fai a sapere se le modifiche che stai facendo al modello sono buone o no?” A cui la risposta di Jeff è stata: “Ci sono due categorie per la risposta: una è quella di guardare le neuroscienze, e l’altra sono i metodi per l’intelligenza artificiale. Nell’ambito delle neuroscienze, ci sono molte previsioni che possiamo fare, e queste possono essere testate. Se le nostre teorie spiegano una vasta gamma di osservazioni di neuroscienze, allora ci dice che siamo sulla strada giusta. Nel mondo dell’apprendimento automatico, non si preoccupano di questo, ma solo di come funziona bene su problemi pratici. Nel nostro caso questo resta da vedere. Nella misura in cui si può risolvere un problema che nessuno è stato in grado di risolvere prima, la gente ne prenderà atto.”
Terza generazione: inferenza sensorimotoriaModifica
La terza generazione si basa sulla seconda generazione e aggiunge una teoria dell’inferenza sensorimotoria nella neocorteccia. Questa teoria propone che le colonne corticali ad ogni livello della gerarchia possono imparare modelli completi di oggetti nel tempo e che le caratteristiche sono apprese in posizioni specifiche sugli oggetti. La teoria è stata ampliata nel 2018 e denominata Thousand Brains Theory.