Internazionale (dietro paywall) racconta di come DeepMind abbia trovato un algoritmo per moltiplicare due matrici migliore di quelli umani: in realtà, se leggo bene l’abstract di questo articolo, due ricercatori si sono affrettati a postare un articolo dove hanno eguagliato quel record e leggermente migliorato il risultato di DeepMind rispetto a un altro record correlato. Forse è meglio però fare un passo indietro per capire di cosa si sta parlando.
struttura di una matrice [Wikipedia]
Molti tra gli algoritmi più costosi dal punto di vista computazionale richiedono di moltiplicare delle matrici molto grandi, che danno le approssimazioni dei valori di una funzione su una superficie. Se non lo sapete, le matrici sono pacchetti rettangolari o spesso quadrati di numeri: nel caso del prodotto di due matrici quadrate
n×
n si ottiene una nuova matrice
n×
n dove per ottenere l’elemento nella riga
i e colonna
j del prodotto bisogna prendere il primo, secondo, terzo… elemento della riga
i della prima matrice, moltiplicarlo per il primo, secondo, terzo… elemento della colonna
j della seconda matrice, e sommare tutti questi risultati. Come potete immaginare, un lavorone, soprattutto per matrici di migliaia di righe e colonne da moltiplicare in quantità esagerate.
I matematici si erano messi il cuore in pace, e pensavano che per moltiplicare due matrici n×n occorresse un numero di moltiplicazioni dell’ordine di n³; insomma se si voleva raddoppiare la dimensione delle matrici, cioè raddoppiare i punti sulla superficie per avere un’approssimazione migliore, occorrevano otto volte tante operazioni. Nel 1969 però il matematico tedesco Wolker Strassen se ne uscì con una notizia bomba. Prese due matrici 2×2 e fatto qualche trucchetto con i numeri, se accettavamo di eseguire un numero di addizioni molto maggiore sarebbero bastate sette moltiplicazioni anziché otto. In pratica l’algoritmo di Strassen sfrutta una struttura nascosta del prodotto; le addizioni servono per riciclare una delle moltiplicazioni in due punti diversi del prodotto delle matrici.
Negli anni seguenti ci fu un fiorire di nuovi algoritmi che per matrici molto grandi miglioravano il numero di operazioni necessarie; per un certo periodo anche il mio professore di metodi di approssimazione a Pisa detenne il record. Le sette moltiplicazioni per il prodotto di due matrici 2×2 resistono ancora, così come resisteva fino a poco fa il record di 49 moltiplicazioni per il prodotto di due matrici 4×4, ottenuto applicando ricorsivamente l’algoritmo di Strassen. Bene: DeepMind ha trovato un modo per moltiplicare due matrici (di numeri binari) 4×4 in 47 operazioni e uno per moltiplicare due matrici 5×5 in 96 operazioni anziché 98; e Kauers Moosbauer hanno trovato un modo equivalente per le 4×4 e uno con solo 95 operazioni per le 5×5. I due ricercatori hanno anche detto che ci stavano lavorando su da un po’ e si sono affrettati a pubblicare il preprint prima che qualcun altro li fregasse sul tempo :-)
In tutto questo, la cosa più inquietante, come già successo in passato per esempio con il Go, è il metodo usato da DeepMind per ottenere il suo risultato. Leggendo l’articolo di NewScientist, vediamo che il “programmatore” di DeepMind – o meglio chi ha messo su tutto il macchinario in questione – ha affermato che “essenzialmente non abbiamo idea di come mai il sistema è arrivato a questo risultato”. “In qualche modo le reti neurali hanno avuto un’intuizione di cosa sembrava buono e cosa sembrava cattivo, ma onestamente non posso spiegare esattamente come funziona”, ha continuato. Perlomeno i due ricercatori hanno spiegato qual è la loro linea di attacco (tendenzialmente fare modifiche più o meno a caso e vedendo se portavano a eliminare una moltiplicazione.
A differenza del go, in questo caso i risultati di DeepMind sono facilmente verificabili e quindi validi a tutti gli effetti. Certo però che questo è un duro colpo per la matematica: non perché un computer sia stato più bravo di noi, quanto perché contribuisce a distruggere la certezza che la matematica sia un modo “compatto” per processare le informazioni. Avete presente la dimostrazione del teorema dei quattro colori? Ecco, il concetto è quello. Sapere che ogni mappa sul piano è colorabile con solo quattro colori, ma che non c’è una vera ragione logica e bisogna per forza testare una caterva di esempi per verificare che tutti portino a una mappa a quattro colori, per noi esseri umani è una risposta a metà. Non ci basta il cosa, vogliamo anche il come.