Breve summary sul machine learning.
Gli algoritmi si possono classificare in:
- Supervised: in cui i dati hanno una "label", che definisce il risultato osservato. Ad esempio i dati storici del mercato immobiliare potrebbero avere una serie di transazioni in cui si è preso nota della posizione geografica dell'immobile, delle sue dimensioni, piano, servizi ecc... e la label è il prezzo di vendita. A questo punto si può allenare un modello che impara dai dati forniti e diventa in grado di prevedere il prezzo di vendita dei nuovi immobili messi sul mercato. In pratica quel che succede è che l'algoritmo crea una corrispondenza tra i dati e le label, in modo che quando la label non è più nota, possa comunque ottenere un risultato vicino a quello reale. Va da sè che in questi casi è impossibile creare un modello se non si ha già un ampio storico di risultati (label) note.
- Unsupervised: in cui non sono fornite label, ma l'algoritmo è comunque in grado di trovare un "pattern" nei dati. Un classico esempio è quello del clustering. Prendiamo Google News ad esempio: analizza decine di migliaia di articoli ogni giorno e le raggruppa in base alla notizia trattata. Senza sapere in anticipo quali siano le categorie disponibili, perché non si può sapere in anticipo quali saranno le news del giorno dopo, l'algoritmo è comunque in grado di individuare le somiglianze tra i dati e raggrupparli.
Da questa base si possono sviluppare algoritmi anche molto complessi, come ad esempio le ormai celeberrime GAN (generative adversarial networks), che sono utilizzate per i deep fake: il meccanismo consiste essenzialmente nel mettere in competizione due modelli.
Il primo genera qualcosa, ad esempio una immagine, mentre il secondo deve capire se l'immagine è reale o è un falso.
Facendo lavorare insieme i due algoritmi, premiandoli quando riescono a "fregare" l'altro, si instaura un circolo virtuoso per cui l'algoritmo che genera le immagini diventa sempre più bravo a generare qualcosa che sembri reale, mentre l'algoritmo avversario diventa sempre più bravo a distinguere le immagini finte da quelle reali.
Anche qui però c'è sempre alla base il concetto di algoritmo supervised, perché ad ogni iterazione sappiamo sempre esattamente se l'immagine è reale o generata e possiamo premiare o penalizzare il modello in base alle sue performance.
Quindi anche se esistono algoritmi che possono produrre risultati utili semplicemente analizzando i dati (unsupervised), questo ha molti limiti e i risultati più "potenti" si hanno con algoritmi supervised, perché questi non si limitano a trovare dei pattern nei dati, ma ne analizzano il legame causale con la realtà.