Una veduta d'insieme sul Machine Learning, in italiano e che utilizza un linguaggio semplice e adatto a chiunque. La presentazione non è pensata per un pubblico tecnico.
Include informazioni di base su 4 argomenti (secondo me) fondamentali:
1. definizione di Machine Learning e 3 esempi
2. classificazione dei problemi di Machine Learning (per tipo di apprendimento e per tipo di output)
3. algoritmi (panoramica)
4. errori (definizione e bias vs varianza)
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
Cos'è il Machine Learning?
1. COS’È IL MACHINE LEARNING?
PANORAMICA
Luca Naso
AlumniSSC
11 ottobre 2018 @ TIM WCAP Catania
LUCA NASO COS’È IL MACHINE LEARNING?
2. AGENDA
1 DEFINIZIONE E CASI D’USO REALI
2 TIPOLOGIE DI MACHINE LEARNING
3 ALGORITMI
4 ERRORI
LUCA NASO COS’È IL MACHINE LEARNING?
3. AGENDA
1 DEFINIZIONE E CASI D’USO REALI
Definizione
Casi d’uso
2 TIPOLOGIE DI MACHINE LEARNING
3 ALGORITMI
4 ERRORI
LUCA NASO COS’È IL MACHINE LEARNING?
4. DEFINIZIONE
Il Machine Learning è quella branca dell’informatica che dà ai computer la
possibilità di imparare qualcosa senza che questo gli venga esplicitamente
insegnato.
Il “fare cose che prima non potevamo fare” o “automatizzare i processi” non sono
elementi caratteristici del Machine Learning.
LUCA NASO COS’È IL MACHINE LEARNING?
5. PAROLA CHIAVE 1
1 “imparare qualcosa”
“imparare” significa che viene acquisita una conoscenza e che questa può
essere messa in pratica anche in futuro. Quindi noi facciamo in modo che il
computer impari qualcosa e che, in futuro, possa sfruttare quanto appreso
senza il nostro intervento.
LUCA NASO COS’È IL MACHINE LEARNING?
6. PAROLA CHIAVE 2
2 “senza che gli venga esplicitamente insegnato”
l’intervento umano non consiste nel dire esplicitamente al computer come
comportarsi (un intervento è comunque necessario affinchè il computer possa
apprendere).
Invece diamo al computer i dati e degli algoritmi (“chiave di lettura”) per fare in
modo che possa interpretare i dati stessi.
Da qui in poi andrà avanti da solo, e sarà lui poi a decidere cosa fare nel
momento in cui dovrà mettere in pratica il suo apprendimento.
LUCA NASO COS’È IL MACHINE LEARNING?
7. DEFINIZIONE 2
Il Machine Learing esplora lo studio e la costruzione di algoritmi che possono
imparare dai dati e sulla base di questi fare delle previsioni (su eventi o proprietà).
Questi algoritmi consentono di andare aldilà della programmazione classica che ci
consente di insegnare al computer solo le cose che effettivamente sappiamo
risolvere anche noi, e consente invece di risolvere problemi per cui non
conosciamo la soluzione, ma abbiamo molti esempi (o dati).
LUCA NASO COS’È IL MACHINE LEARNING?
8. AGENDA
1 DEFINIZIONE E CASI D’USO REALI
Definizione
Casi d’uso
2 TIPOLOGIE DI MACHINE LEARNING
3 ALGORITMI
4 ERRORI
LUCA NASO COS’È IL MACHINE LEARNING?
9. CASI D’USO
Il Machine Learning viene utilizzato in tantissimi settori, ...
Vediamo insieme solo tre esempi.
LUCA NASO COS’È IL MACHINE LEARNING?
10.
11. CASI D’USO - ATTIVITÀ FRAUDOLENTE
Sistema di classificazione delle transazione online in due classi: legittime e
fraudolente.
Usiamo il Machine Learning perchè:
non sappiamo quali sono le caratteristiche di una transizione fraudolenta
(importo, orario, sito, computer, device, ...)
abbiamo degli esempi, cioé uno storico di transizioni legittime e fraudolente
possiamo dare questi in pasto al computer che usando un certo algoritmo
capirà da solo come distinguere le due.
LUCA NASO COS’È IL MACHINE LEARNING?
12.
13. CASI D’USO - SISTEMI DI RACCOMANDAZIONE
Sistema di raccomandazione di quali sono i film che possono piacere a ciascun
utente.
Non abbiamo una legge che regola i gusti cinematografici
ma abbiamo tanti film, tanti utenti e tante recensioni
Grazie al Machine Learning possiamo chiedere al computer di “capire” i gusti degli
utenti.
Netflix prize: $1 milione nel 2006 - vinto nel 2009.
LUCA NASO COS’È IL MACHINE LEARNING?
14.
15. CASI D’USO - ANALISI MEDICA
Sistema di analisi delle immagini per classificare i linfonodi nelle lastre in due
categorie: benigni e maligni.
Computer vision e machine learning consentono ai computer di analizzare in un
giorno più lastre di quanto un radiologo possa fare in tutta la sua vita.
I medici hanno una precisione del 96.5%
Le macchine hanno una precisione del 92.5%
Macchine e medici insieme raggiungono una precisione del 99.5%
LUCA NASO COS’È IL MACHINE LEARNING?
16. CASI D’USO - MOLTO ALTRO
Macchina a guida
autonoma,
Spam-detection,
Ottimizzazione dei
prezzi, Riconoscimento
Vocale, Difesa, GDO,
Marketing, ...
LUCA NASO COS’È IL MACHINE LEARNING?
17. AGENDA
1 DEFINIZIONE E CASI D’USO REALI
2 TIPOLOGIE DI MACHINE LEARNING
Tipo di apprendimento
Tipo di output
3 ALGORITMI
4 ERRORI
LUCA NASO COS’È IL MACHINE LEARNING?
18. TIPO DI APPRENDIMENTO
L’apprendimento del computer nel Machine Learning viene di solito suddiviso in
due grandi macro-categorie:
1 apprendimento supervisionato
2 apprendimento non-supervisionato
LUCA NASO COS’È IL MACHINE LEARNING?
19. APPRENDIMENTO SUPERVISIONATO - DEFINIZIONE
L’apprendimento supervisionato è quello in cui il computer apprende usando dati
“etichettati”.
Le etichette riportano il valore della grandezza da predire, spesso indicata
semplicemente come “output”.
Quindi, per ogni osservazione sono noti:
i valori di input (caratteristiche dell’osservazione)
ed un valore dell’output.
Il computer impara sulla base di questa associazione.
LUCA NASO COS’È IL MACHINE LEARNING?
20. APPRENDIMENTO SUPERVISIONATO - ESEMPIO
Supponiamo che vogliamo insegnare ad un bambino a distinguere una bicicletta
da una macchina, senza che lui ne abbia mai viste prima.
Come dataset utilizziamo un insieme d’immagini diverse di biciclette e di
automobili.
LUCA NASO COS’È IL MACHINE LEARNING?
21. APPRENDIMENTO SUPERVISIONATO - ESEMPIO
Mostriamo le immagini
delle biciclette e diciamo
che sono biciclette,
senza indicare le
caratteristiche delle
biciclette.
LUCA NASO COS’È IL MACHINE LEARNING?
23. APPRENDIMENTO SUPERVISIONATO - ESEMPIO
Infine, mostriamo al bambino un’immagine mai usata prima, e gli chiediamo se è
un’automobile o una bicicletta.
LUCA NASO COS’È IL MACHINE LEARNING?
24. APPRENDIMENTO NON SUPERVISIONATO - DEFINIZIONE
L’apprendimento non-supervisionato, invece, è quello in cui il computer apprende
usando dati che non sono etichettati.
Il computer deve dunque imparare senza conoscere l’output, ma avendo a
disposizione solo i dati di input.
Si tratta di una tipologia di problemi normalmente più complessa di quella
supervisionata.
LUCA NASO COS’È IL MACHINE LEARNING?
25. APPRENDIMENTO NON SUPERVISIONATO - ESEMPIO
Ripetiamo l’esempio precedente in modalità non supervisionata.
Usiamo ancora lo stesso dataset, ma questa volta quando facciamo vedere le foto
al bambino, queste sono mescolate e non gli diciamo quali sono le biciclette e
quali le automobili.
Il bambino deve capire da solo che le immagini appartengono a due categorie
diverse, perchè hanno delle caratteristiche diverse.
LUCA NASO COS’È IL MACHINE LEARNING?
26. APPRENDIMENTO NON SUPERVISIONATO - ESEMPIO
Quando mostriamo una nuova immagine al bambino come potrà rispondere?
LUCA NASO COS’È IL MACHINE LEARNING?
27. APPRENDIMENTO NON SUPERVISIONATO - ESEMPIO
Di certo non potrà dire se si tratta di una bicicletta o di un’automobile, perchè
nessuno gli ha insegnato queste parole.
Invece, potrà classificarla secondo i gruppi che lui stesso ha creato durante la fase
di apprendimento.
LUCA NASO COS’È IL MACHINE LEARNING?
28. APPRENDIMENTO NON SUPERVISIONATO - NOTE
Ci sono due note importanti da fare. Il bambino potrebbe trovare:
1 più di due categorie
2 categorie molto diverse da quanto ci aspettiamo
Il bambino potrebbe decidere di raggruppare le immagini in base al colore, alla
dimensione, o al numero di ruote (che vede)!
In genere il risultato ha una forte dipendenza dalle immagini presenti nel dataset.
LUCA NASO COS’È IL MACHINE LEARNING?
30. APPRENDIMENTO SEMI-SUPERVISIONATO
Esiste un tipo di apprendimento detto semi-supervisionato, che è una sorta di via
di mezzo tra i due appena discussi.
Si tratta del caso in cui un sotto-insieme del dataset contiene delle etichette
(quindi supervisionato), ma il resto no (quindi non-supervisionato).
LUCA NASO COS’È IL MACHINE LEARNING?
31. APPRENDIMENTO RINFORZATO
Infine, si parla tanto anche di una quarta categoria, quella dell’apprendimento
rinforzato.
L’apprendimento è guidato da una “funzione di guadagno” (o di costo) che viene
aumentata (o diminuita) ogni volta che la macchina raggiunge uno stato positivo
(negativo).
Questo sistema è stato utilizzato da DeepMind per costruire AlphaGo.
LUCA NASO COS’È IL MACHINE LEARNING?
32. RIEPILOGO
Nome Caratteristica
Supervisionato i dati sono etichettati
Non Supervisionato i dati non sono etichettati
Semi Supervisionato alcuni dati sono etichettati
Rinforzato bonus/malus per ogni stato
LUCA NASO COS’È IL MACHINE LEARNING?
33. AGENDA
1 DEFINIZIONE E CASI D’USO REALI
2 TIPOLOGIE DI MACHINE LEARNING
Tipo di apprendimento
Tipo di output
3 ALGORITMI
4 ERRORI
LUCA NASO COS’È IL MACHINE LEARNING?
34. SUDDIVISIONE PER OUTPUT
Un altro modo di suddividere i problemi di machine learning si basa sul tipo di
output che si intende ottenere. Ci sono tre casi:
1 Regressione
2 Classificazione
3 Clustering
LUCA NASO COS’È IL MACHINE LEARNING?
35. REGRESSIONE
Se l’output è un valore continuo, si parla di “Regressione”.
Esempi:
stimare lo stipendio di una persona in base al titolo di studio, genere ed età;
stimare il peso di una persona in base ad età, genere ed altezza.
Di solito sono casi supervisionati.
LUCA NASO COS’È IL MACHINE LEARNING?
36. CLASSIFICAZIONE
Se l’output è un valore qualitativo (discreto), si parla di “Classificazione”.
Esempi:
valutare se un’email è spam o no in base al suo oggetto;
valutare se un testo tratta di qualcosa o di qualcuno in maniera positiva o
negativa (sentiment analysis).
Di solito sono casi supervisionati.
LUCA NASO COS’È IL MACHINE LEARNING?
37. CLUSTERING
Se l’output è la suddivisione dei dati di input in gruppi, si parla di “Clustering”.
Esempi:
identificare se esistono gruppi di utenti con comportamento simile su un
e-commerce;
scoprire se esistono relazioni nascoste tra i pazienti di un ospedale.
Di solito sono casi non-supervisionati.
LUCA NASO COS’È IL MACHINE LEARNING?
38. RIEPILOGO
Tipo di output
Quantitativo Qualitativo Gruppo
(continuo) (discreto) (relazioni)
Nome Regressione Classificazione Clustering
Esempio Peso Spam Comportamento
LUCA NASO COS’È IL MACHINE LEARNING?
39. AGENDA
1 DEFINIZIONE E CASI D’USO REALI
2 TIPOLOGIE DI MACHINE LEARNING
3 ALGORITMI
Panoramica e Scelta
4 ERRORI
LUCA NASO COS’È IL MACHINE LEARNING?
40. L’ALGORITMO MIGLIORE
Esistono migliaia di algoritmi di Machine Learning. E’ importante capire subito che
non esiste l’algoritmo perfetto, quello giusto per tutte le circostanze.
Ogni algoritmo è indicato solo per alcuni tipi di problemi e non per altri.
Quindi il primo passo da fare nella scelta dell’algoritmo per il proprio problema di
Machine Learning è capire di che tipo è:
Supervisionato o non-supervisionato?
Classificazione, regressione o clustering?
LUCA NASO COS’È IL MACHINE LEARNING?
43. COME FARE LA SCELTA FINALE?
L’errore non si riferisce solo all’algoritmo. Anche usando lo stesso algoritmo, ci
sono varie scelte che determinano l’errore complessivo (e.g. numero di predittori,
valore degli iper-parametri).
Quindi la misura dell’errore ci aiuta sia a confrontare modelli che usano algoritmi
diversi, sia modelli che usano lo stesso algoritmo ma con impostazioni diverse.
LUCA NASO COS’È IL MACHINE LEARNING?
44. ALCUNI IPER-PARAMETRI DI 3 ALGORITMI
Algoritmo
Logistic Regression LDA K-Means
penalty solver n clusters
dual shrinkage init
tol priors n init
C n components max iter
fit intercept store covariance tol
intercept scaling tol
class weight
Parametri
. . .
LUCA NASO COS’È IL MACHINE LEARNING?
45. AGENDA
1 DEFINIZIONE E CASI D’USO REALI
2 TIPOLOGIE DI MACHINE LEARNING
3 ALGORITMI
4 ERRORI
Errore irriducibile e del modello
Bias e Varianza
LUCA NASO COS’È IL MACHINE LEARNING?
46. DEFINIZIONE DI ERRORE
Per semplifiare l’esposizione dei concetti, consideriamo il caso dell’apprendimento
supervisionato di regressione.
Supponiamo che abbiamo costruito un modello che stima l’altezza di una persona
in base a peso, genere ed età.
E’ intuitivo affermare che l’errore del nostro modello è la differenza tra l’altezza
stimata dal modello e l’altezza reale.
LUCA NASO COS’È IL MACHINE LEARNING?
47. NOTAZIONE - OSSERVAZIONI
Rappresentiamo i dati di input per ciascuna persona del nostro dataset con un
vettore:
xi ≡ (x1, x2, . . . , xn)i
Nel nostro caso n = 3 e la terna (x1, x2, x3)i rappresenta genere, peso ed età della
persona i-esima.
Chiamiamo poi yi l’altezza misurata della persona i-esima.
LUCA NASO COS’È IL MACHINE LEARNING?
48. NOTAZIONE - DUE ESEMPI
Se la prima osservazione è un uomo di 80 kg, 40 anni ed alto 170 cm, allora
scriveremo:
x1 = (m, 80 kg, 40 yr) e y1 = 170 cm.
Se la seconda è invece una donna di 60 kg, 35 anni e 160 cm di altezza,
scriveremo:
x2 = (w, 60 kg, 35 yr) e y2 = 160 cm.
LUCA NASO COS’È IL MACHINE LEARNING?
49. NOTAZIONE - PREVISIONI
Costruire un modello di machine learning significa trovare quella funzione f per
cui:
yi = f(xi) (1)
Per le prime due osservazioni del dataset vorremmo che:
f(m, 80 kg, 40 yr) = 170 cm
f(w, 60 kg, 35 yr) = 160 cm
In questo caso il nostro errore sarebbe zero per entrambi.
LUCA NASO COS’È IL MACHINE LEARNING?
50. VARIABILITÀ INTRINSECA
In realtà persone con lo stesso peso, genere ed età possono avere altezze
diverse.
Ad esempio, nel nostro dataset potremmo avere le seguenti 3 osservazioni:
x3 = (m, 70 kg, 35 yr) e y3 = 170 cm
x4 = (m, 70 kg, 35 yr) e y4 = 180 cm
x5 = (m, 70 kg, 35 yr) e y5 = 175 cm
LUCA NASO COS’È IL MACHINE LEARNING?
51. VARIABILITÀ INTRINSECA
La funzione f invece, a parità di input, restituisce sempre lo stesso valore di output.
Questo implica che il fenomeno ha una variabilità intrinseca che rende impossibile
la creazione di un modello perfetto.
LUCA NASO COS’È IL MACHINE LEARNING?
52. ERRORE IRRIDUCIBILE
Per questo motivo si introduce il concetto di errore irriducibile, chiamato irr, che
rappresenta una misura della variabilità intrinseca del fenomeno in esame:
yi = f(xi) + irr (2)
Questo spiegherebbe le tre osservazioni precedenti:
f(m, 70 kg, 35 yr) = 175 ± 5 cm (3)
LUCA NASO COS’È IL MACHINE LEARNING?
53. ERRORE DEL MODELLO
In aggiunta all’errore irriducibile, c’è poi l’errore dovuto al modello di machine
learning, indicato con .
Questo errore è dovuto al fatto che non sappiamo qual è la vera forma di f e
dobbiamo invece fare una stima anche per questa.
Se chiamiamo ˆf questa stima, possiamo scrivere:
f(xi) = ˆf(xi) + (4)
Oppure, indicando con ˆyi l’altezza stimata dal modello:
f(xi) = ˆyi + (5)
LUCA NASO COS’È IL MACHINE LEARNING?
54. ERRORE TOTALE
A questo punto possiamo mettere insieme i due pezzi e scrivere l’altezza
osservata di una persona come:
yi = ˆyi + + irr (6)
Dove:
ˆyi è l’altezza stimata dal modello (previsione)
è l’errore del modello (può essere ridotto)
irr è la variabilità del fenomeno (non può essere ridotto)
LUCA NASO COS’È IL MACHINE LEARNING?
55. AGENDA
1 DEFINIZIONE E CASI D’USO REALI
2 TIPOLOGIE DI MACHINE LEARNING
3 ALGORITMI
4 ERRORI
Errore irriducibile e del modello
Bias e Varianza
LUCA NASO COS’È IL MACHINE LEARNING?
56. ERRORE DEL MODELLO
Tutti gli sforzi relativi alla ricerca del miglior modello di machine learning puntano a
rendere minimo l’errore .
E’ possibile dimostrare che tale errore è la somma di due parti:
= Bias2
+ Varianza (7)
Quindi, in condizioni ideali, uno vorrebbe rendere nulli sia il Bias che la Varianza.
LUCA NASO COS’È IL MACHINE LEARNING?
57. RELAZIONE TRA BIAS E VARIANZA
Purtroppo si dimostra che bias e varianza sono inversamente correlati, cioè tanto
più si diminuisce il bias tanto più aumenta la varianza e viceversa.
Quindi, se si rende minimo il bias la varianza sarà massima, e molto
probabilmente l’errore del modello sarà più alto di un altro modello che invece usa
un bias più grande, ma che ha una varianza molto più piccola.
Per rendere minimo l’errore totale di un modello quindi bisogna puntare a rendere
minima la somma di bias e varianza, e non uno solo dei due.
LUCA NASO COS’È IL MACHINE LEARNING?
58. DEFINIZIONE DI BIAS 1
Un algoritmo di machine learning ha un certo bias se, quando viene addestrato su
diversi dataset (tutti ugualmente buoni), l’output che restituisce è
sistematicamente sbagliato.
L’errore è “sistematico” nel senso che le sue caratteristiche non variano al variare
dei dataset di training.
LUCA NASO COS’È IL MACHINE LEARNING?
59. DEFINIZIONE DI BIAS 2
Il bias è un errore dovuto al fatto che stiamo utilizzando un modello errato per
descrivere il nostro fenomeno. Di solito il bias è alto quando si descrive un
fenomeno reale con un modello troppo semplificato.
Ad esempio se usiamo un modello lineare per descrivere un fenomeno quadratico.
A volte si parla di under-fitting.
LUCA NASO COS’È IL MACHINE LEARNING?
60. DEFINIZIONE DI VARIANZA 1
Un algoritmo di machine learning ha un’alta varianza se, quando viene addestrato
su diversi dataset (tutti ugualmente buoni), l’errore che si commette è
significativamente diverso per alcuni dei dataset utilizzati nell’addestramento.
Di solito l’errore è molto basso per un dataset, e molto alto per alcuni o tutti i
restanti.
LUCA NASO COS’È IL MACHINE LEARNING?
61. DEFINIZIONE DI VARIANZA 2
La varianza è un errore dovuto al fatto che stiamo utilizzando un modello troppo
complesso (o flessibile) che tende ad assecondare troppo le variazioni presenti
nel dataset di training, anche quelle che hanno una natura puramente stocastica.
Ricordiamoci che ogni fenomeno ha una sua variabilità intrinseca, quindi
assecondare troppo le variazioni potrebbe essere controproducente. Questa
situazione viene descritta anche con il termine over-fitting.
LUCA NASO COS’È IL MACHINE LEARNING?