Come funziona il Machine Learning, in pratica?
Facciamola più semplice, analizzandola in tre parti. Ogni programma è una serie di righe di codice in cui, con un linguaggio di programmazione, si istruisce un sistema a compiere una determinata azione quando si verificano certe condizioni: l'auto non si chiude quando premi il pulsante perché è programmata per chiudersi solo quando tutte le portiere sono ben chiuse.
Le righe di codice del Machine Learning dicono come, cosa e in quale situazione bisogna scrivere — o riscrivere — un'altra parte del programma.
Cosa succede davanti a un problema mai visto prima?
Qui iniziano i problemi veri. Significa che può verificarsi un evento per cui nessun'altra parte del programma ha previsto un'azione da compiere: il Machine Learning cerca allora una soluzione simile a qualcosa che ha già risolto correttamente. Se non trova nulla di già visto, il sistema inizia a provare soluzioni finché l'intero programma non svolge la sua funzione correttamente fino alla fine — un procedimento che, visto da fuori, può risultare quasi comico per quanto è ostinato.
Un esempio: scriviamo un programma che componga musica. Definiamo il codice e gli insegniamo le note da usare, poi alleniamo la macchina a scrivere canzoni. Alcune saranno belle, altre no: lo alleniamo a farne di più belle, spiegandogli che quelle brutte non sono musica.
Dopo l'allenamento, lo lasciamo comporre da solo del melodioso jazz. Tra i risultati ci saranno sicuramente brani degni del miglior John Coltrane, ma anche canzoni poco riuscite, e altre che non saranno né jazz né, probabilmente, musica in senso stretto. Questo perché, nonostante l'allenamento, il sistema non sa davvero cosa sta facendo: lavora con un numero limitato di simboli e li combina seguendo schemi che non portano sempre a una buona composizione. Non saprà mai cosa sia davvero bella musica per un orecchio umano — non ha udito — e continuerà così finché non lo perfezioniamo, dandogli sempre più esperienze da cui imparare, fino a farne uscire ottimi pezzi jazz.
Quali sono i limiti reali del Machine Learning?
Qui la questione si fa più seria. Il Machine Learning può riscrivere parte del codice del programma in cui opera, certo — ma chi lo ha scritto non lo lascia libero di riscriversi all'infinito fino a diventare qualcosa di incontrollabile: per questo vengono fissati limiti rigidi. In generale, possiamo dire che:
- il Machine Learning non potrà mai riscrivere la funzione principale del programma — se un programma deve avvitare tappi su bottiglie d'acqua, farà sempre e solo quello;
- non potrà mai riscrivere funzioni che vanno in conflitto con altre funzioni — se il distributore automatico ti ha dato un caffè d'orzo anziché un espresso, potrà sbagliare di nuovo la prossima volta, ma non dimenticherà mai di darti la tazza;
- non potrà mai "prendere il controllo" oltre i limiti fissati dai programmatori, per il motivo appena descritto: i confini restano sempre nelle mani di chi scrive il codice.
Dormite sogni tranquilli: c'è chi progetta questi sistemi pensando anche a tutto quello che, da utenti, non vi verrebbe mai in mente di considerare. Chiaro, no?


