machine learning 2019 · le applicazioni del data mining • e-commerce: market basket analysis,...
TRANSCRIPT
Machine LearningGIORGIO GAMBOSI – UNIVERSITÀ DI ROMA TOR VERGATA
1
Che cos’è? 2! Programmazione di computer in modo tale da fornire risultati sulla base dell’esame di dati o di esperienza passata ! Le azioni da intraprendere non sono codificate a priori, ma sono “apprese”: approccio induttivo ! Si cerca di ottimizzare un qualche criterio di prestazione predefinito, sulla base di misure quantitative
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Pervasività dell’utilizzo di algoritmi e modelli matematici! Prediction ! Ranking ! Retrieval ! Decision making
3
Tutto ciò è reso possibile da…Disponibilità di dati Disponibilità di metodi Disponibilità di calcolo
4
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Ma perché questo successo degli algoritmi?Possono fornire rapidamente delle risposte Limitano i costi attraverso l’automazione di decisioniSono in grado di tener conto di una grande quantità di parametri Si presentano come obiettivi
Sono in grado di trattare grandi quantità di dati5
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Definizione modello
DatiPredizioni
Schema operativo 6
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
GioGiorgirgio Go Gambambninning
ambambosiosi - - MacMachinhine Le Learearninning
Utilizzata quando è impossibile codificare un algoritmo predefinito che risolva il nostro problema • NON ABBIAMO A DISPOSIZIONE “EXPERTISE” PER RISOLVERE IL PROBLEMA• ABBIAMO “EXPERTISE”, MA NON È DESCRIVIBILEIN MODO PRECISO E QUINDI NON ÈFORMALIZZABILE IN UN ALGORITMO/PROGRAMMA
7Machine learning
Pensare un algoritmoQuante lettere ‘i’ compaiono in questo testo? !"##$%&'()*(+,(-&'.%,-%(/&*.'0"&*#"(*,1%#*-'.",-"(2'#)%('//'&0"&%(/&"11%(3#*(1-'3,*(4'-&*'&5*"()+"(/"&1%,"6((7#(/&*.%(8(29"(*,)%11'0'(+,(2%./#"-%(3&*3*%("1-*0%(8("&'()*(:'11'(1-'-+&';(12+&%()*(2'&,'3*%,";(:",(,+-&*-%;(2'#0%<(-","0'(*,(.',%(+,'()*3,*-%1'(#%::*"--';("(*#(1+%(0%#-%;(&'1'-%(2%,(2+&';("&'(')%&,%()*(+,(/'*%()*(%229*'#*(1.*1+&'-*(2%,(+,'(.%,-'-+&'(,"&'()*(2%&,%6(7#(1"2%,)%(8(+,(3*%0',%--%()'##"(1/'##"(#'&39";(2%*(2'/"##*(&%11*22*('&&+=='-*("(+,(:"&&"--%('(>+')&*(:+--'-%(1+##'(,+2'(8(*,)%11'0'(+,'(2'.*2*'(12%??"1";(/',-'#%,*(:*',29*(1/*"3'??'-*("(+,(/'*%()*(.%2'11*,*(,"&*6(7#(/&*.%('#-&*(,%,("&'(29"(@*29'*#(A#"B1',)&%0*C(D"&#*%?;()*&"--%&"()*(+,'(&*0*1-'(#"--"&'&*'("(/&"1*)",-"()*(+,'()"##"(/*E(*./%&-',-*('11%2*'?*%,*(#"--"&'&*"(.%12%0*-";()",%.*,'-'(/"&(:&"0*-F(@AGGHI7J<(*#(1+%(3*%0',"('22%./'3,'-%&"("&'(*#(/%"-'(70',(!*B%#'"0*C(4%,K&L0;(29"(12&*0"0'(1%--%(#%(/1"+)%,*.%(D"?)%.,KM6(N*+,-*('##$%.:&'()"*(-*3#*(29"(2%.*,2*'0',%('##%&'('(0"&)"33*'&";(3#*(12&*--%&*(1*(/&"2*/*-'&%,%(/"&(/&*.'(2%1'(0"&1%(+,(29*%12%()*/*,-%('(2%#%&*(0*0'2*;(29"(/%&-'0'(#'(12&*--'(OD*&&'("(:*:*-"P6(@'(2%,0*","(&*#"0'&"(#'(/&*.'(1-&',"??'()*(>+"##'(1/'0",-%1'(1"&'-'()*(.'33*%6(!%,(1%#%(/&"11%(*#(29*%12%;(.'(*,(-+--%(*#(0*'#";(/'&'##"#%('##'(0*'(@'#'M'(D&%,,'M';(,%,(2$"&'(',*.'(0*0'6(7,(+,$%&'(*,(2+*(1".:&'0'(.',2'11"(#'(=%&?'()*(&"1/*&'&";(>+',)%(*#(1%#"(29"('0"0'('&&%0",-'-%(@%12'(1/&%=%,)'0'(%#-&"(#'(2*&2%,0'##'?*%,"(G')%0%"(*,(+,'(1"22'(:&+.';(,"11+,%("&'(0",+-%(1%--%(#$%.:&'()"*(-*3#*;(,"11+,%(1")"0'(1+##"(/',29*,";()"1"&-%("&'(*#(0*'#"6
UNA SEQUENZA DI PASSI SEMPLICI CHE RISOLVE IL PROBLEMA8
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Una definizione di “i”!Abbiamo bisogno di una definizione della lettera “i” che ci permetta di riconoscerla !Si presenta in un unico modo: come i!Questo, almeno, se il testo è riportato come caratteri alfabetici
9
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
UNA DEFINIZIONE DI “I”!O anche: il testo è codificato in un computer come sequenza di bit (0 e 1) !Ad esempio, secondo lo schema ASCII, ogni carattere è rappresentato da 7 bit e “i” corrisponde alla sequenza 1101001 100111011001011101100110110010011111011111110010110000110000011001001101001100000111010111011101000001110100111001011000011101101110111111011101110100110111110000011100001110010110100111011011100001111011011001011110010110100111011001100101100000110100111011101110011110111111011001101001111010011000011101101110010111011101110100110010110000011000111100001110110011001001101111100000110000111100001110000110000111100101110110110010111100101101111100000111000011100101100101111001111100111101111100000110011111011001101001100000111001111101001100001110011111011101101001100000100000…
10
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Ma non è sempre così semplice…Quante volte compare Emma Stone qua sotto?
11
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Per chi non la conoscesse…EMMA STONE
12
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Ma come possiamo definire Emma Stone?!Bionda? !Occhi verdi?
13
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
PER ESEMPI
14Ma come possiamo definire Emma Stone? Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
PER ESEMPI CONTRARI
15
GioGiorgirgio Go Gambambninning
ambambosiosi - - MacMachinhine Le Learearninning
Ma come possiamo definire Emma Stone?
Induzione! Non posso “spiegare” come riconoscere Emma Stone e codificarlo in un algoritmo ! Posso solo mostrare tanti esempi di Emma Stone (e di “non Emma Stone”) ! Ho bisogno di un algoritmo che a partire dagli esempi “impari” a riconoscere Emma Stone, in modo che…
Emma Stone?
SÌ
Emma Stone?
NO
16
GioGiorgirgio Go Gambambninning
ambambosiosi - - MacMachinhine Le Learearninning
Da dove nasce?Nata nell’ambito dell’Intelligenza Artificiale (AI)I DUE APPROCCI IN AI:• SIMBOLICO: SISTEMI BASATI SU INSIEMI DI REGOLE IF-THEN• LEARNING: APPRENDIMENTO DEL MIGLIORE COMPORTAMENTO DA ESEMPI
17
• Fornisce tecniche per apprendere da dati e fare predizioni • Senza una programmazione specifica• Migliorando nel tempo
Come funziona?
Definizione modello
Dati Predizioni corretteParametri istanza modello Predizioni
Calcolo predizioniAggiornamento parametri
Minimizzazione errori di predizione sui dati disponibiliApprendimento 18
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Qualche problema difficile da risolvere FILTRI ANTISPAM
COME DIVIDO I MESSAGGI CHEMI INTERESSANO DAGLI ALTRI?
19
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Qualche problema difficile da risolvere SPEECH RECOGNITION
COME RICONOSCERE UN TESTODETTATO?
20
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Qualche problema difficile da risolvere RILEVA LINGUA
IN CHE LINGUA È SCRITTO QUESTOTESTO?
21
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Qualche problema difficile da risolvere MACHINETRANSLATION
COME INIZIA LA DIVINA COMMEDIAIN LETTONE?
22
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Qualche problema difficile da risolvere FACE RECOGNITION
QUALI SONO FOTO DI EMMA STONE?
23
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Qualche problema difficile da risolvere COMPUTER GAMING
QUALE STRATEGIA È MIGLIOREPER VINCERE?
24
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Qualche problema difficile da risolvere ROBOT MOTIONPLANNING
COME FAR MUOVERE UN ROBOTPER ESEGUIRE UNA AZIONECOMPLESSA?
25
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Qualche problema difficile da risolvere SELF DRIVING CARS
COME RISPONDERE NEL MODOMIGLIORE A CONTINUI EVENTIESTERNI?
26
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Qualche problema difficile da risolvere RECOMMENDATIONSYSTEMS
CHE COSA INTERESSA DI PIÙ AUN DETERMINATO CLIENTE?
27
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Qualche problema difficile da risolvere DATA MININGTEXT MININGGRAPH MINING
COME ESTRAGGO INFORMAZIONEUTILE DA GRANDI QUANTITÀ DI DATI?
28
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Le applicazioni del data mining• E-commerce: market basket analysis, customer care…• Finanza: rischio di credito, fraud detection…• Produzione: controllo, robotics…• Medicina: diagnosi, interpretazione esami diagnostici…• Telecomunicazioni: intrusion detection, system control…• Scienze: analisi dati (astronomia, fisica nucleare, biologia)• Web: search engines
29
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
ML: all’intersezione di più discipline 30
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
APPROCCIO generale! Tutti i problemi di learning possono essere formulati come corrispondenze complesse tra input e output
! Vogliamo apprendere il miglior output � per ogni input � ! In termini matematici, vogliamo determinare una “buona” funzione � , dove � è l’insieme dei possibili input e � l’insieme dei possibili output ! Oltre a � , vogliamo apprendere un modo per calcolarla, un algoritmo � da applicare per ottenere � per ogni possibile � futuro
! " #:$ → %$ %# &#(") " 31
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Ad esempio…INPUT OUTPUTSPAM FILTERING UNA MAIL {SPAM, NON-SPAM}FACE RECOGNITION INSIEME DI IMMAGINI SOTTOINSIEME DI IMMAGINIMACHINE TRANSLATION FRASE NEL LINGUAGGIO A FRASE NEL LINGUAGGIO BSPEECH RECOGNITION SEGNALE AUDIO FRASE DI TESTORECOMMENDER SYSTEM INSIEME DELLE OPERAZIONIESEGUITE INSIEME DI PRODOTTI
ROBOT MOTION PLANNING SEGNALI DA SENSORI SEGNALI AD ATTUATORI
32
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Tipologie di problemi di learning! Quel che possiamo apprendere dipende dai dati che abbiamo a disposizione
! Possiamo avere dati di esempio, costituiti da coppie ( � di input e output corretto corrispondente: SUPERVISED LEARNING! Possiamo avere solo dati � di input: UNSUPERVISED LEARNING ! Possiamo avere una qualche misura � della qualità di un output in seguito a un input � : REINFORCEMENT LEARNING
", !)" '" 33
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Supervised learning! Si vuole determinare una funzione sconosciuta � (una sua buona approssimazione) a partire da un training set di esempi � ,� ), � ,� ), …, � ,� ) ! Appresa � (e l’algoritmo � che la calcola) sarà possibile prevedere (una buona approssimazione) di � per ogni nuovo input � futuro ! Esempio: Spam filtering, Face recognition, Fraud detection,…
#:$ → %("1 !1 ("2 !2 ("( !(# & # (")" 34
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Tipi di supervised learning! Se � è un insieme numerico, � associa ad ogni input un valore, che si vuole cercare di prevedere: Regressione! APPROCCIO: Assumiamo che � sia una funzione di un certo tipo (ad esempio un polinomio di un certo grado � )
! � è determinata dal valore di un insieme di parametri (ad esempio i � coefficienti del polinomio ! Individuiamo il valore dei coefficienti che ottimizza (minimizza) una funzione di costo data �
% # # )# ) + 1 ) 35
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Regressione
REGRESSIONE LINEARE
36
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Regressione
REGRESSIONE QUADRATICA
37
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Regressione
REGRESSIONE CUBICA
38
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Tipi di Supervised learning! Se � è un insieme binario (0,1), � associa ad ogni input un valore binario, che si vuole cercare di prevedere! Ogni input va associato a una tra 2 classi � e � : Classificazione binaria ! APPROCCIO 1: Assumiamo che � sia separabile tra le due classi mediante una superficie � di un certo tipo (ad esempio un polinomio di un certo grado � )
! � è determinata dal valore di un insieme di parametri (ad esempio i � coefficienti del polinomio! Individuiamo il valore dei coefficienti che ottimizza (minimizza) una funzione di costo data � ! L’input � è classificato dal segno di �
% # *0 *1$ # )# ) + 1 ) " #(") 39
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Classificazione binariaSEPARAZIONE LINEARE
40
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Classificazione binariaSEPARAZIONE QUADRATICA
41
GioGiorgirgio Go Gambambninning
ambambosiosi - - MacMachinhine Le Learearninning
! APPROCCIO 2: Assumiamo che la probabilità che un input appartenga alla classe � abbia una certa distribuzione di probabilità � ! � è determinata dal valore di un insieme di parametri ! Individuiamo il valore dei coefficienti che ottimizza (minimizza) una funzione di costo data � ! L’input � è classificato dal confronto fra � e �
*0++ )" +(") 1 − +(")42Tipi di Supervised learning
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Classificazione binaria
DISTRIBUZIONE DI �+(*0 | ")43
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Un esempio! Un sistema di Spam Filtering potrebbe avere, per ogni termine � del linguaggio, una probabilità � che il termine compaia in un messaggio spam ! La probabilità che un messaggio sia Spam può essere stimata pari al prodotto delle � per tutti i termini del messaggio (classificatore Naive-Bayes)! Il sistema apprende i valori delle � dagli esempi nel training set
," +"+"+" 44
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Aspetti rilevanti! Ci sono vari aspetti da considerare/scelte da effettuare
! Scelta delle features: quali attributi sono significativi?! Dimensionalità: quante features considerare?! Complessità del modello: quanti parametri da apprendere?
! Modello più complesso: miglior “Fit” rispetto ai dati! Generalizzazione del modello: deve essere valido non solo per il training set, ma per tutti gli input futuri
! Overfitting ! Utilizzo e integrazione di conoscenza precedente: Modelli Bayesiani
45
GioGiorgirgio Go Gambambninning
ambambosiosi - - MacMachinhine Le Learearninning
! Non sono disponibili valori di output: il training set comprende soltanto valori di input � � , …, � . Non abbiamo esempi di � ! Obiettivo possibile: determinare l’esistenza di pattern(configurazioni) all’interno dei dati
! Presenza di correlazioni tra le features? ! Quali features sono più discriminative (distinguono di più i dati)? ! Possiamo partizionare i dati in cluster di elementi simili? ! Possiamo individuare possibili outlier?
"1, "2 "(# 46Unsupervised learning
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Clustering 47
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Reinforcement learning! Non sono disponibili valori di output, ma abbiamo una misura (reward) delle qualità dell’output calcolato ! Situazione: un agente interagisce con ambiente esterno
Perception " Action ! Reward - 48
GioGiorgirgio Go Gambambninning
ambambosiosi - - MacMachinhine Le Learearninning
! Il Reward è dipendente dall’obiettivo del task! Più alto se l’azione va nella direzione della realizzazione del task! Più basso se va nella direzione opposta
! Obiettivo del learning: massimizzare il reward cumulativo atteso rispetto alla prossima azione!Analisi delle possibili sequenze input-reward future! I reward delle azioni in una sequenza si “sommano”!Reward più immediati vanno premiati
49Reinforcement learning
GioGiorgirgio Go Gambambninning
ambambosiosi - - MacMachinhine Le Learearninning
! Il sistema ha un modello di comportamento (parametrico) ! Il sistema esplora azioni alternative
!Per ogni azione, riceve un reward ! I parametri del modello sono modificati
50Reinforcement learning
Giorgio Gambosi - Machine Learning ambosiosi - - MacMachinhine Le Learearning
Aspetti computazionali! I metodi di learning dai dati hanno spesso tempi di calcolo elevati! Funzionano tanto meglio quanto più grandi sono i data set utilizzati: data set molto grandi sono ora disponibili in quanto raccolti dai sistemi informatici! Questo pone importanti problemi di efficienza e fattibilità dei calcoli in tale contesto (Big Data)! Necessità di utilizzo di architetture veloci e di sistemi distribuiti
! Utilizzo di schede grafiche per calcolo intensivo (Reti neurali, deep learning)! Framework distribuiti: Hadoop, Spark,…
51