Machine Learning: una visione informale

M

Era il 1949 quando Donald Hebb formulò la sua teoria di apprendimento basata sull’utilizzo delle rete neurali artificiali, ed ispirata al principio connessionista. Questa scoperta non contribuì solamente allo stabilimento di un legame -per noi oggi del tutto scontato- tra la sfera decisionale del comportamento umano e il funzionamento dei neuroni, ma segnò l’inizio di un nuovo modo di guardare ai calcolatori elettronici. Il termine Machine Learning, coniato da Arthur Samuel solo a distanza di tre anni dall’introduzione dell’apprendimento hebbiano, parla della possibilità di attribuire alle macchine delle abilità, senza che esse siano esplicitamente programmate.

In questo particolare passaggio storico è importante non dimenticare il modello della Macchina Universale introdotto da Alan Turing negli anni 30 e la formulazione della Tesi di Church-Turing. Secondo questa teoria, per ogni problema umanamente calcolabile esiste una macchina in grado di risolverlo, una macchina che però deve essere programmata. Se definiamo un Programma come un’insieme finito e sequenziale di istruzioni che prende un input, effettua delle operazioni logiche e matematiche sui dati e calcola un output, l’idea di una macchina programmabile è equivalente alla costruzione di un’infrastruttura hardware ispirata all’architettura di Von Neumann in cui innestiamo un programma, disegnato e definito da noi.

Con l’introduzione dell’apprendimento automatico non siamo interessati a progettare a priori questa sequenza di istruzioni, ma vogliamo mostrare ad una macchina un sottoinsime delle istanze di uno specifico problema e pretendere che lei, con l’utilizzo di metodi matematici e statistici, impari a modellare la classe cui appartiene il problema e risolvere determinate task. La forza straordinaria di una macchina che impara in questo caso sta nella sua capacità di generalizzare e risolvere esempi concreti del problema, mai visti durante la sua fase di addestramento. Per fare un esempio, consideriamo il seguente scenario: avete accumulato negli anni migliaia di tracce musicali sul vostro dispositivo preferito. Queste tracce sono diventati ingestibili e non sapete come organizzarle. Potete pensare di dividerle per diversi generi. Ma chi avrebbe il tempo di ascoltare ore ed ore di musica e annotarle manualmente? Considerate che il vostro dispositivo ha qualche capacità di “ascoltare” queste tracce. Quello che possiamo fare è prendere un numero finito di brani, attribuire a loro il label, ovvero il genere cui appartengono, e farli ascoltare dalla nostra macchina che può vedere contemporaneamente il label annotato. A questo punto, la macchina dovrà essere capace di predire il genere di tracce che non aveva ascoltato durante la fase di addestramento e che non sono ancora state annotate. Questo metodo è conosciuto come addestramento supervisionato e usa come modello di riferimento un classificatore.

Un concetto chiave da non dimenticare è che noi normalmente non abbiamo nessuna informazione relativa a come è strutturato o definito questo problema. Cioè non abbiamo una definizione matematica di cosa è il genere Rock o Blues, né tanto meno sappiamo come sono distribuiti gli esempi di questo problema nella vita reale. Quindi non stiamo disegnando un classificatore universale ed esatto, ma un’ipotesi di quello che può essere un classificatore di genere musciale. Questa ipotesi probabilmente non coinciderà mai del tutto con il problema originale e il nostro classificatore potrà non essere capace di annottare tutti i brani come lo farebbe un nostro amico.

Il motore dell’apprendimento dal punto di vista matematico si trasforma in un problema di ottimizzazione che prova a minimizzare l’errore del classificatore rispetto a come verrebbero annottati i vostri brani da un vostro amico. Nel post successivo definiremo più formalmente il problema.

A proposito di me

Tina Raissi

Studentessa di Master di Computer Science presso RWTH Aachen University (Germania), lavora contemporaneamente come assistente di ricerca facendo il full-stack javascript developer. All’università porta avanti inoltre la sua passione per Machine Learning, con l'applicazione nell'ambito di segnale musicale e voce.
Prima di iscriversi all'Ingegneria Informatica all'università di Firenze, dove ha concluso il triennio, si è diplomata al conservatorio di Ferrara e si è laureata in DAMS, lasciandosi alle spalle diversi anni di esperienza come insegnante e performer professionista.
Ora sogna di addestrare le macchine perché possano produrre ed elaborare la musica.

Di Tina Raissi

I nostri Partner

Gli articoli più letti

Articoli recenti

Commenti recenti