Macchine che imparano #1: autori e autrici

Qualche anno fa frequentai un corso di scrittura creativa. Ad ogni appuntamento il docente, che tra l'altro era uno scrittore e poeta piuttosto noto, ci assegnava, come compito per la lezione successiva, la stesura di un racconto su un tema fissato.
Una volta uno di noi gli domandò se fosse in grado di capire, leggendo un racconto anonimo, di determinare il genere dell'autore (cioè se fosse uomo o donna). Il docente rispose che sì, con un po' di esercizio e di intuito si riesce abbastanza facilmente. Non fummo abbastanza cattivi da metterlo alla prova con alcuni nostri racconti privati dell'indicazione dell'autore.
 Ora, un compito di questo tipo sembra richiedere una tale dose di intuizione e di sensibilità, doti squisitamente umane, che difficilmente potremmo pensare di affidarlo a una macchina.
Eppure qualcuno ci ha pensato, e in rete si trova persino una pagina in cui potete verificare l'abilità del computer in questo difficile esercizio.

L'identificazione del genere dell'autore di un testo è infatti uno degli innumerevoli campi in cui sono state applicate le tecniche di apprendimento automatico (in inglese "machine learning").

A partire da questo post comincerò a esplorare questo vastissimo ambito dell'intelligenza artificiale di cui oggi si sente parlare sempre di più e sul quale università e aziende stanno investendo in misura sempre maggiore.

L'idea alla base dell'apprendimento automatico è molto semplice: affinché un computer riesca a risolvere un tipo di problema particolarmente difficile, come quello descritto sopra, la strategia migliore è la stessa che gli insegnanti utilizzano spesso con i propri studenti: mostrare alcuni esercizi svolti, e poi verificare se gli alunni sono in grado di risolvere da soli altri problemi dello stesso tipo.

Nel panorama odierno dell'intelligenza artificiale il machine learning è la tendenza di gran lunga dominante. Sono da un bel po' considerati old-style gli approcci utilizzati da metodologie come i sistemi di produzione o i sistemi esperti: programmi la cui ambizione era possedere fin dall'inizio l'intera base di conoscenza relativa a un dato argomento, ed essere così capaci di risolvere ogni problema di un certo tipo in maniera diretta, sulla base di deduzioni logiche.
La debolezza dei sistemi esperti era la loro incapacità di imparare dall'esperienza.
Negli anni Settanta e Ottanta, per esempio, si realizzarono sistemi esperti il cui compito era effettuare diagnosi di malattie in funzione dei sintomi segnalati dai pazienti. Anche ammettendo di poter introdurre in un simile sistema tutte le conoscenze dei migliori luminari del pianeta, il programma, una volta confezionato, poteva iniziare a formulare diagnosi, magari anche azzeccate, ma era destinato a restare un medico artificiale sempre uguale a se stesso: in altre parole, non era in grado di imparare dalla propria esperienza, cioè dai propri successi e dai propri errori.

Tratto da http://eecs.wsu.edu/~cook/ml
Una persona, prima di iniziare a lavorare, deve andare a scuola per un po' di anni: analogamente, un algorimo di apprendimento automatico, prima di cominciare a emettere le sue risposte, deve essere addestrato, cioè deve analizzare un grande numero di problemi dello stesso tipo, ciascuno completo di soluzione preconfezionata. Il programma, sulla base di questi esempi, impara, cioè costruisce e via via perfeziona un proprio "modello" interno del problema, che viene poi adoperato quando sarà il momento di lavorare davvero senza conoscere in anticipo la risposta.

Questo approccio si è rivelato ottimale per un insieme innumerevole di problemi, soprattutto quelli molto complessi per i quali non esiste una formula esatta per determinare a colpo sicuro le risposte e le predizioni desiderate.
In altre parole, a causa della complessità di questi problemi, non possiamo più ambire alla perfezione assoluta, ma dobbiamo anzi accettare una percentuale di errore (comunque limitata).
Le tecniche di un tempo, fondate su schemi rigidi di deduzione, cercherebbero di risolvere questi problemi in modo esatto, ma impiegherebbero tempi biblici prima di produrre qualcosa, il che francamente non è quello che desideriamo.

Uno dei modi per superare questa empasse è il machine learning. Un altro filone algoritmico di cui ho già parlato in passato (ad esempio qui e qui), è costituito dai metodi euristici: anche questi, seppure attraverso un percorso un po' diverso, soddisfano il bisogno di meccanismi meno rigidi, che accettano l'approssimazione e che si avvicinano alla soluzione del problema attraverso una ricerca graduale.
I due mondi, apprendimento automatico e tecniche euristiche, non sono tra di loro separati in modo netto, ma si intersecano reciprocamente in molti casi.

La necessità di ricorrere a metodologie "soft", non rigide ma basate su paradigmi "moderni" (euristici, evolutivi, di apprendimento, e così via) è resa ancora più stringente dal fatto che i dati da elaborare arrivano spesso in quantità molto grandi, a grande velocità, e con formati molto eterogenei (i famosi "big data").
Da queste confuse e furiose basi di conoscenza si vorrebbe poter estrarre informazioni pregiate, che purtroppo se ne stanno solitamente ben nascoste come minuscoli aghi d'oro nello sterminato pagliaio informativo. Le numerose tecniche basate sull'idea dell'apprendimento automatico escono spesso vincitrici in questo genere di sfida, a condizione che i dati vengano inizialmente "puliti" e resi omogenei, che venga scelto l'algoritmo più appropriato per il problema da risolvere, e che il programma sia ben addestrato nella fase iniziale.

L'esempio con cui ho aperto questo post è emblematico. Per poter sviluppare un programma capace di riconoscere se un racconto è stato scritto da uno scrittore o da una scrittrice, possiamo certamente pensare ad un approccio di tipo "machine learning". Certo, occorre prendere oculatamente alcune decisioni importanti, per esempio scegliere  un algoritmo di apprendimento che si presti a questo ingrato compito. Nella prossima puntata di questa serie entreremo nel merito matematico di una di queste tecniche di apprendimento, e vedremo di applicarla al problema dell'identificazione del genere dell'autore. 

Commenti