Sei sulla pagina 1di 6

Hebb Squat

Ragazzi, questo è un gioco. Come dice il Saggio,


“ognuno si diverte come gli pare, diceva quello che si
martellava le palle sull’incudine”. In questo caso, una
piccola rete neurale che impara a fare squat. Dio come
adoro queste mental pipps …a me servono per capire
meglio ciò che studio: mettere in pratica la teoria
permette di sbattere il muso contro difficoltà
sottovalutate dalla semplice lettura, per arrivare ad un
grado di conoscenza secondo me superiore perché un
minimo “vissuto”. In altre parole, se è vero che è
possibile fare tesoro dell’esperienza degli altri evitando
errori catastrofici, mettersi un po’ in gioco non può che
portare un arricchimento.
Nel 1949 lo psicologo canadese Donald Hebb formulò quella che è diventata la regola di Hebb per
l’apprendimento o la sinapsi di Hebb. In pratica formulò delle ipotesi su come potesse avvenire il
processo di apprendimento negli strati del cervello.
Nei 40 anni successivi una serie di studi ha sempre più confermato che moltissime strutture
cerebrali quali ad esempio l’ippocampo seguono la regola di Hebb, che è disarmante nella sua
semplicità.

1 - Il neurone
presinaptico è
attivo…

3 - … la sinapsi
diventa più “forte” 2 - … ed è attivo
anche il neurone
postsinaptico…
Il disegno la illustra: se un neurone invia in ingresso il suo +1 ad un altro neurone facendogli
emettere il suo +1, la sinapsi diventa più “forte” tramite cambiamenti plastici (chimici o di crescita)
in modo da permettere al neurone in ingresso di attivare sempre meglio il neurone di uscita.
Questa semplice regola ha delle implicazioni che nemmeno affronteremo, ciò che è importante è
che il cervello funziona così, bene o male: semplici regole applicate ad un numero spropositato di
elementi creando schemi del tutto inaspettati.

1
Il “rinforzo” della sinapsi viene definito Long Term Potentiation, è parte della teoria del
Consolidamento
Poiché ho trovato delle implementazioni di reti neurali complicatissime, ho pensato di inventarne io
una invece semplicissima (anche se alla fine per farla funzionare ci ho messo circa 30 ore eh…) in
modo da dare la percezione di come si potrebbe visualizzare una “traccia neurale”.

i1 o1 i1

i2 o2 i2

i3 o3 i3

o1 o2 o3
Per prima cosa, è bene definire una rappresentazione che abbia significato ma che sia anche
semplice da comprendere: a sinistra una rete di 6 neuroni, 3 in ingresso, ognuno si connette a tutti e
3 i neuroni di uscita.
Già così il disegno diventa incomprensibile, con tutti quei fili sparsi. L’ingegnere rende tutto più
chiaro con l’uso dei colori o dei tratteggi, creando un bel foglio di Burda, quello che le nostre
mamme usavano quando eravamo piccoli per copiare i modelli dalla rivista, un accrocchio
incomprensibile di linee aggrovigliate (Burda è la rivista, non un effetto quantistico, chimico,
astronomico…)
A destra perciò una rappresentazione più comprensibile: sulle righe i neuroni in ingresso, sulle
colonne i neuroni in uscita, gli incroci sono le sinapsi e il diametro dei pallini rappresenta la “forza”
della sinapsi.
Il dottor Hebb fa lo squat

Il buon Donald si rivolterà nella tomba sapendo che il suo mirabolante lavoro sull’organizzazione
dei comportamenti verrà usato per far fare un rozzo squat ad una rete neurale… Nel disegno qua
sopra il nostro squat sotto il parallelo, suddiviso in 10 posizioni differenti, 5 per la discesa e 5 per la
risalita.

2
Ipotizziamo che gli elementi di questo modello siano la schiena, i femorali e i quadricipiti. Mi
limito ad illustrare i passaggi successivi solo per la schiena, per semplicità.

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0

0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0

0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0

Codifico ogni posizione della schiena tramite una sequenza univoca di 0 o di 1, in questo caso
sposto l’1 di una casella al passaggio da una posizione ad un’altra: è una convenzione avrei potuto
usare 1000 altri modi diversi, ma due cose sono importanti:
 L’univocità della codifica: ogni posizione è perfettamente identificata dalla sequenza.
 La sequenza “condensa” in se tutte le informazioni su forza dei muscoli della schiena,
messaggi sensori visivi e propriocettivi: in un modello più sofisticato questi sarebbero
evidenziati, ma questo contiene comunque le stesse informazioni.

Input Output
1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
Q

3
Le tabelle precedenti sono pertanto il programma motorio per la schiena nello squat: quando la
schiena è in una posizione, una riga della tabella input, la successiva inclinazione si ottiene
leggendo la corrispondente riga sulla tabella output.
Facile, no? Adesso però la nostra rete di Hebb deve imparare questo programma: se in ingresso ho
una configurazione, in uscita non ne voglio una a caso, ma quella che corrisponde alla posizione
successiva, ciò significa che la rete sa pilotare la schiena!
“Alleno” la rete, cioè presento una configurazione in ingresso, la corrispondente in uscita e
determino come deve variare la “forza” di ogni sinapsi tramite la regola di Hebb: ciò significa che
se in ingresso ho un +1 e in uscita un +1 la sinapsi si deve rinforzare, altrimenti no. In questo modo
forzo la rete ad imparare che se in ingresso c’è una configurazione, deve scappare in uscita solo una
corrispondente altra.
In altre parole, insegno alla rete che se la schiena è inclinata in un certo modo e sto scendendo,
l’istante successivo deve inclinarsi maggiormente.
31 31 31
30 30 30
29 29 29
28 28 28
27 27 27
26 26 26
25 25 25
24 24 24
23 23 23
22 22 22
21 21 21
20 20 20
19 19 19
18 18 18
17 17 17
16 16 16
15 15 15
14 14 14
13 13 13
12 12 12
11 11 11
10 10 10
9 9 9
8 8 8
7 7 7
6 6 6
5 5 5
4 4 4
3 3 3
2 2 2
1 1 1
0 0 0
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Questo pazzesco disegno è la formazione di una traccia neurale nella nostra rete:
 A sinistra la matrice 30x30 delle connessioni (schiena, quadricipiti e femorali, ognuno
presenta 10 configurazioni in ingresso e 10 in uscita, 30x30)
 Al centro una fase intermedia del training, si intravede la formazione di una “traccia” perché
alcune sinapsi si rinforzano e altre si attenuano.
 A destra la formazione quasi completa della traccia neurale, una configurazione ben definita
di connessioni che permette, data una posizione del corpo in ingresso, di ottenere la
successiva configurazione in uscita.
La rete ha appreso lo squat e dopo il training iniziale è autonoma.

4
Input Output
1 0 0 0 0 0 0 0 0 0
0 1 0 0 0 1 0 0 0 0
0 0 1 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1 0 0
0 0 0 0 1 0 0 0 1 0
0 0 0 0 0 0 0 0 0 1

Questo è il programma motorio per uno squat sopra il parallelo: arrivati ad una certa profondità il
tizio… risale. Anche in questo caso la rete impara senza problemi il movimento!
31 31 31
30 30 30
29 29 29
28 28 28
27 27 27
26 26 26
25 25 25
24 24 24
23 23 23
22 22 22
21 21 21
20 20 20
19 19 19
18 18 18
17 17 17
16 16 16
15 15 15
14 14 14
13 13 13
12 12 12
11 11 11
10 10 10
9 9 9
8 8 8
7 7 7
6 6 6
5 5 5
4 4 4
3 3 3
2 2 2
1 1 1
0 0 0
0 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728293031 0 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728293031 0 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728293031

Dopo un po’ si forma una nuova traccia neurale, differente dalla precedente che permette di
scendere meno.
Questo è quanto avviene dentro il cervello: apprendere un certo movimento implica cambiare la
struttura del proprio Sistema Nervoso, una alterazione fisica. Il movimento viene appreso, che sia
“giusto”, che sia “sbagliato”. Poi, viene eseguito sempre allo stesso modo.
La plasticità del cervello è così incredibile che è possibile resettare lo schema, passando da sopra il
parallelo a sotto.

5
31 31
30 30 31
29 30
29
28 28 29
27 27 28
26 26 27
25 26
25
24 24 25
23 23 24
22 23
22
21 21 22
20 20 21
19 19 20
18 19
18
17 17 18
16 16 17
15 16
15
14 14 15
13 13 14
12 13
12
11 11 12
10 10 11
9 9 10
8 9
8
7 7 8
6 6 7
5 6
5
4 4 5
3 3 4
2 2 3
1 2
0 1
0 1
0 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728293031 0

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Ho allenato la rete per scendere sotto il parallelo, forzandola ad imparare una nuova configurazione.
Una volta fatto, il nuovo movimento costituisce l’output del “programma motorio squat”.
Se tutto questo vi sembra un gioco, vi voglio rassicurare: lo è. Però è un gioco basato sui principi di
funzionamento del cervello che mostra come sia vera la frase del Grande Saggio: “allenati a cazzo,
otterrai risultati del cazzo”
Abbiamo capito che il nostro cervello impara modificandosi, perciò perché fargli imparare delle
idiozie che devono essere disimparate?