Immergiti profondamente nei Transformers manualmente ✠︎ |  di Srijanie Dey, PhD |  Aprile 2024

 | Intelligenza-Artificiale

Esplora i dettagli dietro la potenza dei trasformatori

C'è stato un nuovo sviluppo nel nostro quartiere.

Un “Robo-Truck”, come piace chiamarlo mio figlio, ha costruito la sua nuova casa nella nostra strada.

È un Cyber ​​Truck Tesla e ho provato più volte a spiegare quel nome a mio figlio ma lui insiste a chiamarlo Robo-Truck. Ora, ogni volta che guardo Robo-Truck e sento quel nome, mi ricorda il film Transformers in cui i robot potevano trasformarsi da e verso le auto.

E non è strano che i Transformers come li conosciamo oggi potrebbero benissimo essere sulla buona strada per alimentare questi Robo-Truck? È quasi un momento che chiude il cerchio. Ma dove vado a finire con tutto questo?

Bene, mi sto dirigendo verso la destinazione: Transformers. Non quelli delle auto robotiche ma quelli delle reti neurali. E tu sei invitato!

Immagine dell'autore (Il nostro trasformatore — 'Robtimus Prime'. Colori come richiesto da mio figlio artista.)

Cosa sono i Transformer?

I trasformatori sono essenzialmente reti neurali. Reti neurali specializzate nell'apprendimento del contesto dai dati.

Ma ciò che li rende speciali è la presenza di meccanismi che ne eliminano la necessità set di dati etichettati E convoluzione o ricorrenza nella rete.

Quali sono questi meccanismi speciali?

Ci sono molti. Ma i due meccanismi che sono veramente la forza dietro i trasformatori sono la ponderazione dell’attenzione e le reti feed-forward (FFN).

Che cos'è la ponderazione dell'attenzione?

La ponderazione dell'attenzione è una tecnica mediante la quale il modello apprende su quale parte della sequenza in entrata è necessario concentrarsi. Consideralo come l'”Occhio di Sauron” che scansiona ogni cosa in ogni momento e fa luce sulle parti rilevanti.

Curiosità: a quanto pare, i ricercatori avevano quasi chiamato il modello Transformer “Attention-Net”, dato che l'attenzione è una parte cruciale di esso.

Cos'è la FFN?

Nel contesto dei trasformatori, FFN è essenzialmente un percettrone multistrato regolare che agisce su un lotto di vettori di dati indipendenti. Unito all'attenzione, produce la corretta combinazione 'posizione-dimensione'.

Quindi, senza ulteriori indugi, vediamo come ponderazione dell'attenzione E FFN rendere i trasformatori così potenti.

Questa discussione è basata sulla meravigliosa serie AI by Hand del Prof. Tom Yeh Trasformatori . (Tutte le immagini seguenti, se non diversamente specificato, sono del Prof. Tom Yeh dai post di LinkedIn sopra menzionati, che ho modificato con il suo permesso.)

Quindi eccoci qua:

Le idee chiave qui: ponderazione dell'attenzione e rete feed-forward (FFN).

Tenendo presente tutto ciò, supponiamo che ci venga dato:

  • 5 caratteristiche di input da un blocco precedente (qui una matrice 3×5, dove X1, X2, X3, X4 e X5 sono le caratteristiche e ciascuna delle tre righe ne indica rispettivamente le caratteristiche.)

(1) Ottenere la matrice del peso dell’attenzione A

Il primo passo del processo è ottenere il file matrice del peso dell’attenzione A. Questa è la parte in cui entra in gioco il meccanismo di auto-attenzione. Ciò che sta cercando di fare è trovare le parti più rilevanti in questa sequenza di input.

Lo facciamo inserendo le funzionalità di input nel modulo query-key (QK). Per semplicità, i dettagli del modulo QK non sono inclusi qui.

(2) Ponderazione dell'attenzione

Una volta che abbiamo il matrice del peso dell'attenzione A (5×5)moltiplichiamo con esso le caratteristiche di input (3×5) per ottenere il caratteristiche ponderate per l'attenzione Z.

La parte importante qui è che le funzionalità qui sono combinate in base alle loro posizioni P1, P2 e P3 cioè orizzontalmente.

Per scomporlo ulteriormente, considera questo calcolo eseguito per riga:

P1 X A1 = Z1 â†' Posizione (1,1) = 11

P1 X A2 = Z2 â†' Posizione (1,2) = 6

P1 X A3 = Z3 â†' Posizione (1,3) = 7

P1 X A4 = Z4 â†' Posizione (1,4) = 7

P1 X A5 = Z5 â†' Posizione (1,5) = 5

.

.

.

P2 X A4 = Z4 â†' Posizione (2,4) = 3

P3

Come esempio:

Sembra un po' noioso all'inizio, ma segui la moltiplicazione per riga e il risultato dovrebbe essere piuttosto semplice.

La cosa interessante è il modo in cui la nostra matrice del peso dell'attenzione UN è organizzato, le nuove funzionalità Z risultano essere le combinazioni di X come sotto :

Z1 = X1 + X2

Z2 = X2 + X3

Z3 = X3 + X4

Z4 = X4 + X5

Z5 = X5 + X1

(Suggerimento: guarda le posizioni degli 0 e degli 1 nella matrice UN).

(3) FFN: Primo strato

Il passo successivo è inserire le funzionalità ponderate per l’attenzione nella rete neurale feed-forward.

Tuttavia, la differenza sta qui combinando i valori tra le dimensioni in contrapposizione alle posizioni nel passaggio precedente. È fatto come di seguito:

Ciò che fa è guardare i dati dalla direzione opposta.

– Nella fase di attenzione, abbiamo combinato i nostri input sulla base delle caratteristiche originali per ottenere nuove funzionalità.

– In questo passaggio FFN, consideriamo le loro caratteristiche, ovvero combiniamo le caratteristiche verticalmente per ottenere la nostra nuova matrice.

Esempio: P1(1,1) * Z1(1,1)

+ P2(1,2) * Z1 (2,1)

+ P3 (1,3) * Z1(3,1) + b(1) = 11, dove b è bias.

Ancora una volta le operazioni di fila in termini di elementi vengono in soccorso. Notare che qui il numero di dimensioni della nuova matrice viene aumentato a 4.

(4) riprendere

Il nostro passaggio preferito: ReLU, dove i valori negativi ottenuti nella matrice precedente vengono restituiti come zero e il valore positivo rimane invariato.

(5) FFN: Secondo strato

Infine lo passiamo attraverso il secondo strato dove la dimensionalità della matrice risultante viene ridotta da 4 a 3.

L'output qui è pronto per essere inviato al blocco successivo (vedi la sua somiglianza con la matrice originale) e l'intero processo viene ripetuto dall'inizio.

Le due cose fondamentali da ricordare qui sono:

  1. Lo strato di attenzione si combina tra le posizioni (orizzontalmente).
  2. Il livello feed forward si combina attraverso le dimensioni (verticalmente).

E questa è la salsa segreta dietro la potenza dei trasformatori: la capacità di analizzare dati da diverse direzioni.

Per riassumere le idee di cui sopra, ecco i punti chiave:

  1. L'architettura del trasformatore può essere percepita come una combinazione dello strato di attenzione e dello strato di feed-forward.
  2. IL il livello di attenzione combina le caratteristiche per produrre una nuova funzionalità. Ad esempio, pensa di combinare due robot Robo-Truck e Optimus Prime per ottenere un nuovo robot Robtimus Prime.
  3. IL lo strato feed-forward (FFN) combina le parti o le caratteristiche della caratteristica per produrre nuove parti/caratteristiche. Ad esempio, le ruote del Robo-Truck e il laser ionico di Optimus Prime potrebbero produrre un laser su ruote.

Le reti neurali esistono già da molto tempo. Le reti neurali convoluzionali (CNN) e le reti neurali ricorrenti (RNN) hanno regnato sovrane, ma le cose hanno preso una svolta piuttosto movimentata una volta introdotti i Transformers nel 2017. E da allora, il campo dell'intelligenza artificiale è cresciuto a un ritmo esponenziale: con nuovi modelli, nuovi parametri di riferimento, nuovi apprendimenti che arrivano ogni singolo giorno. E solo il tempo dirà se questa idea fenomenale un giorno aprirà la strada a qualcosa di ancora più grande: un vero “Transformer”.

Ma per ora non sarebbe sbagliato affermare che un'idea può davvero realizzarsi trasformare come viviamo!

Immagine dell'autore

PS Se desideri svolgere questo esercizio da solo, ecco il modello vuoto a tua disposizione.

Modello vuoto per l'esercizio manuale

Adesso divertiti e creane uno tuo Roberto il Primo!

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *