il machine learning · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi...

18

Upload: others

Post on 06-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità
Page 2: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

2 – MACHINE LEARNING OVERVIEW

CONTENUTO

INTELLIGENZA ARTIFICIALE, MACHINE LEARNING E DEEP LEARNING ................................................. 3

DEFINIZIONE DI MACHINE LEARNING .................................................................................................. 4

IL MACHINE LEARNING E’ GIA’ FRA NOI .............................................................................................. 6

MACHINE LEARNING, DATA SCIENCE E DATA ANALYSIS ..................................................................... 7

LE METODOLOGIE DI APPRENDIMENTO NEL MACHINE LEARNING .................................................... 9

SUPERVISED LEARNING ...................................................................................................................... 10

UNSUPERVISED LEARNING ................................................................................................................. 12

SEMI-SUPERVISED LEARNING ............................................................................................................ 13

REINFORCEMENT LEARNING .............................................................................................................. 14

DEEP LEARNING E RETI NEURALI ....................................................................................................... 15

Page 3: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

3 – MACHINE LEARNING OVERVIEW

INTELLIGENZA ARTIFICIALE, MACHINE LEARNING E DEEP LEARNING

Sempre più spesso si sente impropriamente parlare di Intelligenza Artificiale, ma anche di Machine Learning e Deep Learning, come se tali termini fossero sinonimi del primo. L’Intelligenza Artificiale coinvolge tutte le operazioni caratteristiche dell’intelletto umano ed eseguite da computer, quali la pianificazione, la comprensione del linguaggio, il riconoscimento di oggetti e suoni, l’apprendimento e la risoluzione dei problemi. Molto interessante è la relazione tra AI e IoT (Internet of Things) simile a quella tra cervello e corpo umano: il nostro corpo attraverso i vari input sensoriali come la vista e il tatto, riesce a riconoscere determinate situazioni eseguendo le corrispondenti azioni guidate dal nostro cervello. Analogamente nell’IoT che, tramite i sensori collegati sul campo, invia un insieme di informazioni ad un sistema di controllo guidato dall’Intelligenza Artificiale che prende le opportune decisioni ed eventualmente aziona degli attuatori per il controllo di varie movimentazioni (ad esempio i bracci dei robot). L’apprendimento automatico o Machine Learning è invece un modo per attuare l’Intelligenza Artificiale, mentre l’apprendimento approfondito o Deep Learning, è uno dei molteplici approcci relativi all’apprendimento automatico.

Fatta la dovuta precisazione, scopo del presente documento è di approfondire le tematiche inerenti Machine Learning e Deep Learning con i relativi campi di applicazione.

Page 4: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

4 – MACHINE LEARNING OVERVIEW

DEFINIZIONE DI MACHINE LEARNING

«Un programma apprende se dopo aver eseguito un compito migliorano le prestazioni» Il Machine Learning è un sottoinsieme dell’informatica a cui vengono applicate tecniche e modelli matematici per la realizzazione di sistemi ed algoritmi complessi, impossibili da modellare attraverso un approccio tradizionale alla programmazione. Nel corso della vita, come esseri umani, impariamo dal mondo che ci circonda: leggendo, osservando, imparando attraverso la formazione scolastica o professionale, facendo tesoro delle esperienze, … ecc. Da queste attività estraiamo informazioni che poi utilizzeremo nel prosieguo della nostra vita; in sostanza deriviamo delle ‘regole’ dalla nostra interazione con il mondo esterno. L’apprendimento è un processo iterativo, che migliora costantemente la nostra conoscenza con l’aumentare delle informazioni che raccogliamo e possiamo ben dire che più si fanno esperienza e più si impara. Il Machine Learning prende spunto da tale procedimento, ovvero alla macchina viene fornito un algoritmo di apprendimento, in altri termini si dice alla macchina quali operazioni può eseguire sulle informazioni e cosa deve fare; come se si insegnasse a leggere. Una volta che la macchina ha imparato a leggere, è in grado di ricavare le informazioni (modelli di conoscenza) che riutilizzerà in futuro. Guardando il Machine Learning da una prospettiva informatica, anziché scrivere il codice di programmazione attraverso il quale, passo dopo passo, si “istruisce” la macchina su “cosa fare”, al computer vengono forniti set di dati inseriti in un generico algoritmo che sviluppa una propria logica per svolgere la funzione, l’attività, il compito richiesti. In particolare, il Machine Learning è una branca dell’Intelligenza Artificiale che raccoglie un insieme di metodi (statistica computazionale, riconoscimento di pattern, reti neurali artificiali, filtraggio adattivo, teoria dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità scientifiche; tali metodi sono quindi utilizzati per migliorare progressivamente la performance di un algoritmo.

Il Machine Learning è impiegato principalmente per la risoluzione di tre tipologie di problemi: • classificazione, quando è necessario decidere a quale categoria appartiene un determinato

dato. • regressione, ovvero prevedere il valore futuro di un dato avendo noto il suo valore attuale.

Un esempio è la previsione della quotazione delle valute o delle azioni di una società. Nel marketing viene utilizzato per prevedere il tasso di risposta di una campagna sulla base di un dato profilo di clienti; nell’ambito commerciale per stimare come varia il fatturato dell’azienda al mutare della strategia.

Page 5: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

5 – MACHINE LEARNING OVERVIEW

• raggruppamento (clustering), quando si vuole raggruppare i dati che presentano caratteristiche simili. In marketing, ad esempio, il raggruppamento viene utilizzato per l’individuazione di clienti e mercati potenziali.

Nel prosieguo del documento sono elencati i principali campi di applicazione del Machine Learning e come vengono indirizzate le tipologie di problemi elencati.

Page 6: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

6 – MACHINE LEARNING OVERVIEW

IL MACHINE LEARNING E’ GIA’ FRA NOI

Il Machine Learning (o Apprendimento Automatico) è già fra noi, in quanto è già ampiamente utilizzato in varie applicazioni utilizzate comunemente dagli utenti della rete, ad esempio:

• utilizzando un assistente vocale (Siri, Cortana, …) la traduzione da voce a testo avviene utilizzando la Convolutional Neural Network

• utilizzando Amazon ci vengono proposti prodotti con sistemi di raccomandazione • quando non riceviamo una mail di spam, viene applicato un filtro antispam utilizzando filtri

Bayesiani, Reti Neurali e Support Vector Machine • Google Weather utilizza un sistema di previsioni meteo basate su un’architettura Deep

Neural Network • Facebook utilizza reti neurali e clustering per proporre pubblicità ed offerte ai propri clienti • Netflix propone ai propri utenti contenuti basati su watchcing list e utilizzando tecniche di

Machine Learning Passando da una visuale ‘Consumer’ ad una più orientata alle aziende il Machine Learning può esser utilizzato per migliorare il Business in diversi settori, a puro titolo esemplificativo sono elencate di seguito alcune fra le possibili applicazioni:

• Lead generation and marketing disegno di pattern entro i quali individuare potenziali nuovi prospect, analizzando

informazioni destrutturate come e-mail, posts, formulazione di strategie di marketing mirate sugli utenti tramite tecniche di Clustering

• Predictive account management and sales ‘clusterizzazione’ dei clienti in modo da concentrarsi sui migliori definizione di suggerimenti da dare ai clienti su come utilizzare al meglio prodotti e

servizi offerti previsioni sulle vendite tramite algoritmi di Regression

• Monitor customer behaviour and act based on the behaviour analisi dal comportamento dei clienti per fornire loro ciò che vogliono quando lo

vogliono in modo da esser più efficaci nelle azioni commerciali • Predictive Maintenance

sulla base dei guasti si prevedendo interventi di manutenzione non ordinaria per prevenirne dei nuovi

Questa è solo una lista esemplificativa di possibili utilizzi del Machine Learning le cui tecniche possono esser utilizzate in molte altre applicazioni in combinazione ad approcci considerati più tradizionali, che ‘preparano’ le informazioni che il Machine Learning si predispone ad elaborare. Un’analisi condotta da Oxford Economics su 500 Cio mondiali evidenzia che i benefici del Machine Learning sono chiari alle aziende, ma c’è ancora da lavorare sulle competenze e, in base ai risultati dell’analisi, è stata stilata una lista di consigli per introdurre in azienda ed ottenere valore dal Machine Learning.

1) Migliorare la qualità dei dati. Una delle principali barriere all’adozione del Machine Learning è la qualità dei dati. Se le decisioni che la macchina prende sono basate su dati inaffidabili, il risultato non apporta valore e potrebbe indirizzare decisioni errate.

Page 7: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

7 – MACHINE LEARNING OVERVIEW

2) Le priorità vanno assegnate in base al valore. Occorre focalizzarsi prima sui servizi utilizzati più comunemente, perché è automatizzando quei servizi che si apporteranno i benefici maggiori al business. 3) Rendere ottimale la customer experience. Un vantaggio chiave che si ottiene dal migliorare la velocità e la precisione dei processi decisionali è creare un’esperienza cliente, sia interna che esterna, ottimale; occorre quindi dare priorità agli investimenti che mirano a questo obiettivo. 4) Attirare nuove competenze e rendere i nuovi paradigmi pervasivi in azienda. Occorre identificare i ruoli del futuro e anticipare come i dipendenti si interfacceranno con le macchine cominciando da subito a costruire una cultura che preveda nuovi modelli di lavoro e competenze. 5) Misurare e rappresentare i benefici. I benefici del Machine Learning potrebbero essere chiari ai CIO, ma gli altri primi livelli aziendali hanno bisogno di essere informati sul suo valore; per tale ragione occorre stabilire le aspettative, sviluppare modelli di successo prima dell’implementazione e costruire un business case per acquisire e mantenere gli investimenti che vengono richiesti con benchmark di confronto con altre aziende simili per grandezza o mercato.

MACHINE LEARNING, DATA SCIENCE E DATA ANALYSIS

Ci sono alcuni ambiti ‘confinanti’ con cui il Machine Learning ha notevoli punti in comune: in particolare la Data Science ed, in modo più sfumato, la Data Analysis. La Data Science è un termine generico che comprende l'analisi dei dati, il data mining, l'apprendimento automatico e diverse altre discipline correlate, mentre la Data Analysis dovrebbe essere in grado di rispondere a una domanda o ad un argomento specifici e definire come rappresentare al meglio le informazioni agli stakeholder rilevanti dell'azienda. In sintesi, un Data Scientist ha il compito di fare previsioni sulla base di modelli passati, mentre un Data Analyst determina le informazioni significative da estrarre da varie fonti di dati: ‘un Data Scientist crea nuove domande mentre un Data Analyst trova le risposte ad un gruppo di domande preesistenti’. La Data Science si distingue poi dal Machine Learning perché il suo obiettivo è particolarmente umano: acquisire conoscenza e comprensione, ove la comprensione può essere suddivisa sotto tre punti di vista:

1. Descrittiva: qualcosa del tipo “il cliente medio del nostro sito di e-commerce ha una probabilità di acquisto futuro di circa il 70%”

2. Esplorativa: un esempio potrebbe essere qualcosa come “il cliente B ha un tasso di rinnovo del nostro servizio diverso dal cliente A”

3. Casuale: “in un test random si è dimostrato che gli utenti in capo al customer service B rinnovano il servizio più frequentemente rispetto a quelli seguiti da A”

Nel Data Science è sempre coinvolto l’essere umano, aspetto che non avviene nel Machine Learning (a parte gli sviluppatori).

Page 8: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

8 – MACHINE LEARNING OVERVIEW

Quello che succede più spesso è che i dati vengono generati in enormi volumi e che non è plausibile per un Data Scientist lavorarci sopra; in tal caso interviene il Machine Learning che consente ad un sistema di apprendere e elaborare un insieme di dati autonomamente senza l'intervento umano. .

Page 9: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

9 – MACHINE LEARNING OVERVIEW

LE METODOLOGIE DI APPRENDIMENTO NEL MACHINE LEARNING

Il Machine Learning funziona in linea di principio sulla base di due distinti approcci, identificati da Arthur Samuel alla fine degli anni ’50, che permettono di distinguere l’apprendimento automatico in due sottocategorie, a seconda del fatto che si forniscano al computer esempi completi da utilizzare come indicazione per eseguire il compito richiesto (apprendimento supervisionato) oppure che si lasci lavorare il software senza alcun “aiuto” (apprendimento non supervisionato). In realtà, ci sono poi dei sottoinsiemi che consentono di fare un’ulteriore classificazione ancora più dettagliata del Machine Learning nell’ambito dell’apprendimento non supervisionato. In generale, all’interno del Machine Learning, vengono identificate le seguenti metodologie di apprendimento:

• Supervised Learning • Unsupervised Learning • Reinforcement Learning

Esiste inoltre un approccio intermedio tra le prime due metodologie di apprendimento noto come Semi-Supervised Learning. Di seguito le varie metodologie di apprendimento sono descritte e messe in relazione alle tipologie di problematiche che il Machine Learning si propone di affrontare, precedentemente descritte.

(*) Per il Semi-Supervised Learning valgono le stesse associazioni del Supervised Learning.

Tipologie di problemi

Metodologie di apprendimento

Ambito Machine Learning

Machine Learning

Supervised Learning (*)

Classificazione Regressione

Unsupervised Learning

Clustering

Reinforcement Learning

Regressione

Page 10: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

10 – MACHINE LEARNING OVERVIEW

SUPERVISED LEARNING

La tecnica del SUPERVISED LEARNING consta di due fasi: TRAINING e PREDICTION; la macchina viene inizialmente istruita attraverso un set di dati (valori di input cui segue un valore di output) etichettati. Per definizione, i dati per i quali si conosce già la risposta target vengono infatti chiamati ‘dati etichettati’, In base ai dati appresi nella fase di TRAINING, la macchina è quindi in grado di fare le opportune predizioni. TRAINING Fase in cui la macchina apprende da un insieme di esempi ideali formati da coppie di input ed output desiderato (TRAINING SET). Il TRAINING SET è ottenuto attraverso una raccolta di dati oppure viene generato da un esperto.

PREDICTION Fase in cui la macchina utilizza il modello ottenuto dalla fase di TRAINING, applica il mapping ai nuovi input e produce un output.

Ambiti di applicazione: L’apprendimento supervisionato è principalmente utilizzato per i problemi di classificazione, come ad esempio nel marketing per classificare i clienti potenziali e proporre i prodotti a cui potrebbero essere interessati sulla base del profilo e della storia degli acquisti. Un altro esempio sono i sistemi anti-spam delle email che, all’arrivo di un messaggio, riescono a decidere se una determinata email debba essere etichettata come spam o meno. L’apprendimento supervisionato è inoltre utilizzato per i problemi di regressione, come ad esempio nelle previsioni meteo.

CATEGORIA OUTPUT ALGORITMI

CLASSIFICAZIONE Probabilità dell’input di appartenere ad una data categoria

• Alberi decisionali • Bayesian Network • Support Vector

Machines • K-Nearest Neighbor • Neural Network

REGRESSIONE Valore numerico ottenuto tramite combinazione lineare (somma, prodotto) di input lineari o non lineari (esponenziale, sigmoide, logaritmo…)

• Alberi decisionali • K-Nearest Neighbor

Page 11: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

11 – MACHINE LEARNING OVERVIEW

Esempio di applicazione di un algoritmo di CLASSIFICAZIONE: in base a temperatura, umidità e vento viene determinata la previsione per il giorno successivo (soleggiato, nuvoloso, piovoso…) Esempio di applicazione di un algoritmo di REGRESSIONE: in base a temperatura, umidità e vento viene determinata la temperatura in gradi del giorno successivo

Page 12: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

12 – MACHINE LEARNING OVERVIEW

UNSUPERVISED LEARNING

Mediante la tecnica del SUPERVISED LEARNING, la macchina viene istruita con un set di dati non etichettati; scopo è raggruppare gli elementi che hanno caratteristiche simili (ovvero ‘clusterizzare’) Ambiti di applicazione: l’applicazione principale è il clustering, ovvero il raggruppamento dei dati in gruppi omogenei definiti cluster. L’apprendimento non supervisionato, quindi, serve generalmente ad estrarre informazioni non ancora note. Per questo motivo è un metodo spesso utilizzato nelle discipline quali medicina o biologia per l’analisi diagnostica o l’individuazione di gruppi genetici, ma anche nel marketing per l’individuazione di mercati e clienti potenziali. Trova grande applicazione nell’ambito dei Big-Data, quando è necessario correlare diversi dati ed estrarre informazioni non note (detto anche knowledge discovery, scoperta di conoscenza) Altri esempi

• Suddividere un testo fra lettere e numeri • Suddividere immagini di volti di persone in base alla razza dei soggetti • Scoprire quali prodotti sarebbe incline ad acquistare un cliente in base agli acquisti di altri

clienti

In termini di risultati ottenuti tramite la tecnica del UNSUPERVISED LEARNING oltre al ‘tradizionale’ Clustering esistono altri algoritmi noti come Regole di Associazione.

CATEGORIA OUTPUT ALGORITMI

CLUSTERING Selezione e raggruppamento di elementi omogenei in un insieme di dati: • Clustering partizionale • Clustering gerarchico • Clustering density-based

• K-means • K-medoids • Fuzzy c-means • Qt clustering

REGOLE DI ASSOCIAZIONE Individuazione di associazioni interessanti e relazioni di correlazione in grandi insiemi di transazioni

• Apriori • AIS • SETM

Page 13: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

13 – MACHINE LEARNING OVERVIEW

SEMI-SUPERVISED LEARNING

Posto a metà tra il supervisonato e il non-supervisionato, l’apprendimento parzialmente supervisionato si basa su dati misti in cui una parte è già ‘etichettata’ mentre la maggioranza è costituita da dati non etichettati. Questo approccio viene utilizzato per migliorare le previsioni fatte dalla macchina sui dati non etichettati e richiede, normalmente, l’intervento di un esperto/analista. L’approccio è principalmente usato nei problemi di classificazione e di clustering o nella descrizione delle relazioni causa-effetto tra le variabili.

Page 14: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

14 – MACHINE LEARNING OVERVIEW

REINFORCEMENT LEARNING

Mediante la tecnica del REINFORCEMENT LEARNING, la macchina lavora in modo simile all’apprendimento non supervisionato in quanto i dati non sono etichettati; il metodo utilizzato invece è diverso; la macchina viene premiata o punita in base al risultato (la tecnica è applicata specialmente nella robotica). Come funziona. L’algoritmo può esser schematizzato tramite tre componenti:

• sistema di esecuzione (A), che sulla base dei dati in ingresso [Input] riesce a restituire un risultato [Output]

• sistema di valutazione (B) che assegna un premio (se il risultato è corretto) o una penalità (se il risultato non è corretto) al sistema logico A

• sistema di ottimizzazione (C) che osserva il comportamento di A e B e modifica il modello utilizzato da A per aumentare il premio e ridurre le penalità che B assegna ad A.

Ambiti di applicazione. L’apprendimento per rinforzo è utilizzato in tutti quei campi in cui è essenziale che la macchina risponda ai cambiamenti dell’ambiente, riconducibili quindi a problematiche di regressione. Per questo è utilizzato frequentemente nella robotica, per controllare i movimenti degli automi, ma anche nella guida senza conducente (le così dette “driverless car”). Trova inoltre applicazione in ambiti industriali quali la produzione e nel controllo qualità e in diversi altri settori. Semplice esempio di applicazione: un robottino che si muove orizzontalmente lungo una guida, deve imparare a tenere in equilibrio un’asta. A seconda dei vari eventi e dei vari tentativi fatti il robottino, impara a fare gli opportuni movimenti in modo da posizionare l’asta che ha collegata al proprio corpo prima in verticale e quindi a mantenerla in tale posizione. In seguito ai risultati di tipo sperimentale:

• dopo 180 tentativi il robottino inizia a tenere in equilibrio l’asta • dopo 236 tentativi ha imparato

Page 15: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

15 – MACHINE LEARNING OVERVIEW

DEEP LEARNING E RETI NEURALI

Il Deep Learning (o apprendimento profondo, talvolta tradotto con apprendimento approfondito) è, invece, una branca del Machine Learning, supervisionato o meno, che caratterizza i processi di reti neurali artificiali dotate di due o più strati capaci di processare informazioni in modo non-lineare. Il Deep Learning combina computer sempre più potenti a speciali tipi di sistemi neuronali per apprendere i complicati schemi dei grandi volumi di dati. I ricercatori stanno cercando di applicare gli esempi riusciti di riconoscimento di schemi a compiti più complessi come traduzione linguistica automatica, diagnosi mediche e altri innumerevoli problemi sociali ed aziendali.

Il Deep Learning può esser definito come un sistema che sfrutta una classe di algoritmi di apprendimento automatico che:

usano vari livelli di unità non lineari a cascata per svolgere compiti di estrazione di caratteristiche e di trasformazione. Ciascun livello successivo utilizza l’uscita del livello precedente come input. Gli algoritmi possono essere sia di tipo supervisionato sia non supervisionato e le applicazioni includono l’analisi di pattern (apprendimento non supervisionato) e classificazione (apprendimento supervisionato);

sono basati sull’apprendimento non supervisionato di livelli gerarchici multipli di caratteristiche (e di rappresentazioni) dei dati. Le caratteristiche di più alto livello vengono derivate da quelle di livello più basso per creare una rappresentazione gerarchica;

apprendono multipli livelli di rappresentazione che corrispondono a differenti livelli di astrazione; questi livelli formano una gerarchia di concetti

Seppur la richiesta di capacità computazionali enormi possa rappresentare un limite, la scalabilità del Deep Learning grazie all’aumento dei dati disponibili e degli algoritmi è ciò che lo differenzia dal Machine Learning: i sistemi di Deep Learning, infatti, migliorano le proprie prestazioni all’aumentare dei dati mentre le applicazioni di Machine Learning (o meglio, i cosiddetti ‘sistemi di apprendimento superficiale’) una volta raggiunto un certo livello di performance non sono più scalabili nemmeno aggiungendo esempi e dati di training alla rete neurale.

Questo perché nei sistemi di Machine Learning le caratteristiche di un determinato oggetto vengono selezionate manualmente e servono per creare un modello in grado di categorizzare gli oggetti, mentre nei sistemi di Deep Learning, l’estrazione delle caratteristiche avviene in modo automatico: la rete neurale apprende in modo autonomo come analizzare dati grezzi e come svolgere un compito (per esempio classificare un oggetto riconoscendone, autonomamente, le caratteristiche).

Se dal punto di vista delle potenzialità il Deep Learning può sembrare più “affascinante” e utile del Machine Learning, va precisato che il calcolo computazionale richiesto per il loro funzionamento è davvero notevole, anche dal punto di vista economico: le CPU più avanzate e le GPU top di gamma utili a “reggere” il carico di un sistema di Deep Learning costano ancora migliaia di Euro ed il ricorso a capacità computazionali via Cloud attenua solo in parte il problema.

Page 16: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

16 – MACHINE LEARNING OVERVIEW

Le reti neurali Le reti neurali sono basate sull’idea di riprodurre l'intelligenza ed in particolare l'apprendimento, simulando la struttura neurale del cervello animale. Il nostro cervello utilizza l'enorme rete di neuroni interconnessi per l'elaborazione delle informazioni e per modellare il mondo che ci circonda. In poche parole, un neurone raccoglie input da altri neuroni attraverso i dendriti, ovvero le fibre minori che si ramificano a partire dal neurone. Il neurone somma tutti gli input ricevuti e se il valore risultante è maggiore di una certa soglia, si attiva per propagare il segnale ad altri neuroni connessi attraverso l'assone.

L'idea di costruire una macchina intelligente a partire da neuroni artificiali si può far risalire alla nascita dell'Intelligenza Artificiale, e già alcuni risultati furono ottenuti da McCulloch e Pitts nel 1943 quando nacque il primo modello neurale. Nel 1962 Rosenblatt propose un nuovo modello di neurone, il «percettrone», capace di apprendere mediante esempi. Un percettrone descrive il funzionamento di un neurone eseguendo una somma pesata dei suoi ingressi ed emettendo un'uscita "1" se la somma è maggiore di un certo valore di soglia modificabile, o "0" altrimenti. L'apprendimento, così inteso, è un processo di modifica dei valori dei pesi. Il grande entusiasmo verso questo approccio subì una brusca riduzione pochi anni dopo, quando Minsky e Papert evidenziarono i grandi limiti di apprendimento del percettrone. Più recentemente sono state proposte nuove architetture di reti neurali non più soggette alle limitazioni teoriche dei percettroni. La struttura di una rete neurale Una rete neurale è una rete divisa in tre livelli:

• Input: in questo livello vengono trattai i dati attraverso una prima funzione (matematica) di attivazione che può introdurre la non linearità (tangente, coseno, sigmoide, logaritmo…)

• Hidden: eseguono una combinazione lineare (somma pesata) dell’output ottenuto dall’Input Layer; l’output di questi neuroni è una funzione di attivazione della combinazione; in una rete neurale possono esser presenti più hidden layer

• Output: stesso funzionamento dell’hidden layer; sono il livello finale della rete e l’output di questi neuroni è il risultato dell’intera rete

Page 17: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

17 – MACHINE LEARNING OVERVIEW

Con il Deep Learning vengono simulati i processi di apprendimento del cervello biologico attraverso le reti neurali artificiali per insegnare alle macchine non solo ad apprendere autonomamente ma a farlo in modo più “profondo” come sa fare il cervello umano dove profondo significa “su più livelli” (vale a dire sul numero di hidden layer: quelle “tradizionali” contengono 2-3 layer, mentre le reti neurali profonde possono contenerne oltre 150).

Le reti neurali “profonde” sfruttano un numero maggiore di strati intermedi per costruire più livelli di astrazione ed è abbastanza facile intuire che quanti più livelli intermedi ci sono, tanto più efficace è il risultato (il compito che è “chiamata” a svolgere) ma, di contro, la scalabilità della rete neurale è strettamente correlata ai data set, ai modelli matematici e alle risorse computazionali.

Addestramento di un sistema di Deep Learning

Mentre gli algoritmi di apprendimento automatico ‘tradizionali’ sono lineari, gli algoritmi di apprendimento profondo sono organizzati in una gerarchia di crescente complessità e astrazione. Per capire l’apprendimento profondo, immaginiamo un bambino la cui prima parola è “gatto”. Il bambino impara cos’è un gatto (e cosa non lo è) indicando oggetti e dicendo la parola gatto. Il genitore o l’adulto che lo accompagna dice “Sì, quello è un gatto” o “No, non è un gatto” ed al bambino risultano progressivamente più chiare le caratteristiche che tutti i gatti possiedono. Inconsapevolmente, il bambino chiarisce un’astrazione complessa (il concetto di gatto) tramite una gerarchia in cui ogni livello di astrazione deriva dalla conoscenza acquisita dallo strato precedente della gerarchia stessa.

A differenza del bambino, che impiegherà mesi per comprendere il concetto di “gatto” e lo farà con l’aiuto delle persone adulte che lo accompagnano (quindi tramite un apprendimento supervisionato), una applicazione che utilizza algoritmi di Deep Learning può mostrare e ordinare milioni di immagini, identificando con precisione quali immagini contengono i set di dati, in pochi minuti pur non avendo avuto alcun tipo di indirizzamento sulla correttezza o meno dell’identificazione di determinate immagini nel corso del training.

Solitamente, nei sistemi di Deep Learning, occorre “etichettare” i dati (con i cosiddetti meta tag), per esempio inserendo il meta tag “gatto” all’interno delle immagini che contengono un gatto ma senza spiegare al sistema come riconoscerlo: è il sistema stesso, attraverso livelli gerarchici multipli, che intuisce cosa caratterizza un gatto (le zampe, i baffi, il pelo, ecc.) e quindi come riconoscerlo.

Page 18: IL MACHINE LEARNING · dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc.) sviluppati a partire dagli ultimi decenni del XX secolo in varie comunità

18 – MACHINE LEARNING OVERVIEW

Questi sistemi si basano, in sostanza, su un processo di apprendimento “trial-and-error” ma perché l’output finale sia affidabile sono necessarie enormi quantità di dati; l’accuratezza dell’output richiede, almeno nella prima fase di addestramento, l’utilizzo di dati “etichettati” infatti l’utilizzo di soli dati non strutturati potrebbe rappresentare un problema se non preparata adeguatamente una prima fase di etichettatura. I dati non strutturati possono essere analizzati da un modello di apprendimento profondo solo dopo che è stato formato ed ha raggiunto un livello adeguato di accuratezza.

I sistemi basati su Deep Learning sono difficili da addestrare a causa del numero stesso di strati nella rete neurale. Il numero di strati e collegamenti tra i neuroni nella rete è tale che può diventare difficile calcolare le “regolazioni” che devono essere apportate in ogni fase del processo di addestramento perché per il training comunemente si usano i cosiddetti algoritmi di retropropagazione dell’errore (backpropagation) attraverso il quale si rivedono i pesi della rete neurale (le connessioni tra i neuroni). Il processo continua in modo iterativo finché il gradiente (l’elemento che dà la direzione verso cui l’algoritmo deve muoversi) è nullo.

Le reti neurali sono più adatte a compiti di classificazione e di percezione concettualmente "di basso livello" anche se tecnicamente ardui, quali il riconoscimento del parlato, il controllo di processi e il riconoscimento di immagini, mentre problemi concettualmente complessi quali progettazione, diagnosi, pianificazione, rimangono dominio della cosiddetta Intelligenza Artificiale simbolica.