Machine learning: cosa significa che una macchina “impara”

Quando si parla di intelligenza artificiale c’è un mondo da scoprire, spesso poco considerato o, al contrario, sopravvalutato nelle sue potenzialità. Ed uno degli stereotipi più duri da combattere, in questi casi, è dovuto proprio all’idea che esista una forma di “intelligenza” paragonabile a quella umana, il che ovviamente avrebbe (o avrà) delle conseguenze sul piano sociale e potrebbe addirittura preoccupare molti di noi.

Se parliamo di macchine, ovviamente, parliamo di computer e software, non di automobili (sulle quali esiste da tempo da guida assistita che è pur sempre IA), è necessario fare un po’ di precisazioni. Ho già spiegato altrove che le macchine non possono davvero pensare (ma questo ovviamente potrebbe anche essere smentito un giorno, ma per quanto ne sappiamo oggi è così), ma il concetto di apprendimento macchina, machine learning, ovvero il fatto che un software “impari” a fare qualcosa merita sicuramente un approfondimento.

L’apprendimento automatico o machine learning è una branca dell’intelligenza artificiale che utilizza varie discipline a proprio vantaggio (tra cui, ad esempio, alcuni metodi statistici) e che rende in grado un algoritmo di estrarre informazioni in modo “selettivo”, cosa che con l’informatica tradizionale non si potrebbe effettuare.

Questa definizione non è universalmente accettata nell’ampio sottobosco dell’IA, di fatto, ma serve per portare avanti il discorso al centro di questo articolo.

Pensiamo alla scrittura manuale: se chiedessimo ad un software di imitare la nostra, ci rendiamo conto da soli che non sarebbe un compito molto facile. Stando alla definizione classica di algoritmo, che è un procedimento passo-passo per dire ad un computer come fare una certa cosa e a quali condizioni (che potrebbe essere: visualizzare una pagina web, mostrare il saldo del proprio conto bancario, ecc), si capisce subito che lo schema è troppo “rigido”. Un algoritmo dell’informatica tradizionale, infatti, prende dei dati in input (per esempio username e password della nostra banca) e restituisce un output (il saldo del nostro conto, nell’esempio bancario), e lo fa effettuando dei calcoli predeterminati e “programmati” (in tutti i sensi) da chi di dovere.

Nel caso nel compito di imitazione della scrittura di qualcuno è ovvio che qualcosa non torna, lo schema input/output non è più adattabile e, a quel punto, un’idea può essere quella di lavorare su vari “strati”: che spesso non sono strati visivamente riconoscibili, diciamo, ma lavorano su una serie di approssimazioni che rendono la scrittura in modo sempre più fedele. La lavorazione a strati degli input è tipica del mondo delle reti neurali, ad esempio, per cui vengono poi introdotti dei paradigmi di apprendimento, ovvero delle politiche perchè gli input vengano processati in modo da “addestrare” la rete ad un certo comportamento.

Alla lunga, a forza di “fare esperienza”, la rete stessa sarà in grado di elaborare risultati sempre più raffinati, ed è un po’ quello che succederebbe con un potenziale falsario che tenti più volte di imitare la scrittura di una persona: le prime volte non riuscirà, ma con l’esperienza (e provando più volte) lo farà sempre meglio. A tale riguardo, ad esempio, esistono algoritmi in grado di ridurre col tempo l’errore di calcolo (cosiddetta retropropagazione dell’errore).

Il senso dell’apprendimento macchina è tutto qui, alla fine: le macchine non pensano davvero ma riescono, in molti casi, a dare una parvenza di intelligenza. Se un navigatore viene usato per la prima volta non saprà molto di noi a parte la posizione abituale; se lo usiamo per qualche tempo, invece, per le nostre attività abituali, potrebbe “imparare” i percorsi più rapidi per guidarci fino in ufficio oppure al supermercato coi prezzi più bassi. La logica, per quanto più complessa, è sempre sulla falsariga dell’apprendimento graduale “per strati”, la cui matematica è piuttosto complessa.

Ecco chiarito, a questo punto, il senso di intelligenza nella frase “intelligenza artificiale”, e apprendimento nel settore del machine learning: non più elaborazione di soli input numerici come quelli di un file Excel, non più solo algoritmi che risolvono problemi statici ma, estensivamente, procedure di ogni genere che sono in grado sia di riconoscere i casi che di costruirsi uno “storico” per elaborarli, emulando selettivamente sia la complessità dell’esperienza che la capacità di “fare la scelta giusta”.

Foto di DrSJS da Pixabay