Workshop introduttivo al Machine Learning con Python per European Physical Society Young Minds Catania.
Parte 1, tenutasi il'8 maggio 2021 (in remoto).
Temi trattati in questa parte:
1. Definizione di machine learning
2. Tassonomia di ML per apprendimento
3. Tassonomia di ML per output
4. Modelli di ML
5. Python: creazione di un dataset
2. General Plan
✧ 2 sessioni di 4 ore: sabato 8 maggio + 15 maggio 2021
✧ Slides + codice
✧ Contenuti:
✧ Machine Learning: definizioni e tassonomie
✧ Problemi di Regressione
✧ Valutazione dei modelli
✧ Cenni di problemi di Classificazione e Non-supervisionati
2
Luca Naso
8 Maggio 2021
4. Wikipedia 1
Il Machine Learning (apprendimento automatico) è quella branca
dell'intelligenza artificiale che raccoglie metodi sviluppati negli ultimi
decenni del XX secolo in varie comunità scientifiche [...]; che utilizza
metodi statistici per migliorare la performance di un algoritmo
nell'identificare pattern nei dati.
Ref: https://it.wikipedia.org/wiki/Apprendimento_automatico
4
8 Maggio 2021 Luca Naso
5. Definizione operativa di apprendimento
Si dice che un programma apprende dall'esperienza E con riferimento
a alcune classi di compiti T e con misurazione della performance P,
se le sue performance nel compito T, come misurato da P, migliorano
con l'esperienza E.
Da "Machine Learning" di Tom M. Mitchell (1990)
5
8 Maggio 2021 Luca Naso
6. Wikipedia 2
Nell'ambito dell'informatica, il machine learning è una variante alla
programmazione tradizionale, nella quale in una macchina si
predispone l'abilità di apprendere qualcosa dai dati in maniera
autonoma, senza istruzioni esplicite.
Ref: https://it.wikipedia.org/wiki/Apprendimento_automatico
6
8 Maggio 2021 Luca Naso
7. Wikipedia 1+2
Il Machine Learning è quella branca dell’informatica che dà ai
computer la possibilità di imparare qualcosa senza che questo gli
venga esplicitamente insegnato, tramite l'applicazione di algoritmi su
dati.
Dati = contengono implicitamente la capacità (e. g. una statua di
Canova contiene implicitamente lo stile Neoclassico)
Algoritmi = servono per imparare (estrarre la capacità dai dati)
7
8 Maggio 2021 Luca Naso
8. Risolvere senza sapere la soluzione
Il Machine Learning esplora lo studio e la costruzione di algoritmi che
permettono ai computer di imparare una capacità dai dati.
La macchina impara dai dati, non dall'uomo.
Il ruolo dell'uomo non è spigare la soluzione, ma il metodo.
Possiamo risolvere problemi per i quali non sappiamo la soluzione.
Il ML ci consente di barattare dei dati in cambio di una macchina che
possiede una capacità che noi non abbiamo.
Ref: Luca Naso :)
8
8 Maggio 2021 Luca Naso
9. Esempi
✧ Identificazione dello spam, acquisti online fraudolenti
✧ Ottimizzazione dei prezzi
✧ Stima del rischio (di insolvenza, di incendio, ...)
✧ Face recognition
✧ Sistemi di raccomandazione
✧ Assistenti Vocali
✧ Deep Fake
✧ Auto a guida autonoma
9
8 Maggio 2021 Luca Naso
10. Evoluzione dell'interesse, fino ad oggi
Google Trend per "Machine Learning"
Feb 2020: max assoluto, poi scende
2004 - 2015: tra il 5% ed il 25% del massimo
10
8 Maggio 2021 Luca Naso
13. 2 vie
Classifichiamo i tipi di Machine Learning seguendo due strade:
✧ 1. In base al modo di apprendere
✧ 2. In base agli output prodotti dal modello
13
8 Maggio 2021 Luca Naso
15. 3 tipi di Apprendimento
✧ 1. Apprendimento supervisionato
✧ 2. Apprendimento non supervisionato
✧ 3. Apprendimento per rinforzo
15
8 Maggio 2021 Luca Naso
16. Apprendimento Supervisionato e Non
16
8 Maggio 2021 Luca Naso
Informazioni note per ciascuna osservazione del dataset
Non Supervisionato
1. i valori di input
(caratteristiche, features, X)
2. il valore di output desiderato
(target, y)
Supervisionato
1. i valori di input
(caratteristiche, features, X)
2. il valore di output desiderato
(target, y)
17. Apprendimento Supervisionato
✧ Per ciascuna osservazione/dato sono noti:
✧ i valori di input (caratteristiche, features, X)
✧ il valore di output desiderato (target, y)
✧ e.g.
✧ Dato l'investimento in pubblicità (osservazione) sappiamo quante
vendite sono state generate (target)
✧ Data temperatura e vento (osservazione) sappiamo se ha piovuto
(target)
17
8 Maggio 2021 Luca Naso
18. Esempio: Impariamo il cinese
Impariamo i numeri cinesi con l'approccio supervisionato
1. Osservazione = carattere cinese
2. Features = immagine del carattere cinese
3. Target = significato del carattere cinese
18
Luca Naso
8 Maggio 2021
23. Impariamo il cinese: previsioni
✧ Il nostro cervello ha "automaticamente" trovato un modo di
associare ciascun carattere cinese ad un numero
✧ Che numero è questo?
23
8 Maggio 2021 Luca Naso
= ?
24. Apprendimento Non Supervisionato
✧ Per ciascuna osservazione/dato sono noti:
✧ i valori di input (caratteristiche, features, X)
✧ il valore di output desiderato (target, y)
✧ e.g.
✧ Dato un insieme di utenti che visita un sito web, trovare dei gruppi con
comportamenti simili
✧ Date le analisi di pazienti con una certa malattia, trovare l'origine della
malattia
24
8 Maggio 2021 Luca Naso
25. Esempio: Impariamo il cinese
Impariamo i numeri cinesi con l'approccio non supervisionato
1. Osservazione = carattere cinese
2. Features = immagine del carattere cinese
3. Target = non c'è
25
Luca Naso
8 Maggio 2021
28. Impariamo il cinese 2: previsioni
六
七 九
28
8 Maggio 2021 Luca Naso
✧ Il nostro cervello ha "automaticamente" raggruppato i caratteri simili insieme
✧ Cosa possiamo dire dei seguenti caratteri?
29. Note sull'apprendimento Non Supervisionato
✧ Quanti gruppi avrai creato?
✧ Come li avrai chiamati?
✧ Che significato avrai dato a ciascun gruppo?
✧ Che elementi avrai usato per caratterizzarli?
La qualità dell'apprendimento dipende moltissimo dal dataset
✧ Potrebbero mancare dei numeri (classi)
✧ Si potrebbero usare feature errate (e.g. lo spessore)
29
8 Maggio 2021 Luca Naso
30. Apprendimento per Rinforzo
✧ Molto diverso dai precedenti: c'è un'interazione dinamica tra il
soggetto che impara (macchina) e l'ambiente
✧ La macchina interagisce per raggiungere un certo obiettivo
✧ Ad ogni interazione si dice alla macchina se ha fatto bene o male
✧ La macchina impara quali sono le interazioni che deve fare per
raggiungere l'obiettivo
✧ e.g.
✧ Vincere una partita a scacchi
✧ Guidare una macchina rispettando il codice della strada
30
8 Maggio 2021 Luca Naso
31. Tabella Riepilogativa: Apprendimento
Apprendimento Caratteristica
Supervisionato I dati sono etichettati
Non supervisionato I dati non sono etichettati
Semi-supervisionato Alcuni dati sono etichettati
per Rinforzo Ogni status ha un bonus/malus
31
8 Maggio 2021 Luca Naso
33. 3 tipi di Output
In base a ciò che desideriamo sapere dal sistema di ML
✧ 1. Regressione
✧ 2. Classificazione
✧ 3. Clustering
33
8 Maggio 2021 Luca Naso
34. Regressione
✧ Per ogni osservazione vogliamo restituire un valore numerico
continuo
✧ Solitamente affrontato in maniera supervisionata
✧ Esempi:
✧ Stipendio (in base ad età e titolo di studio)
✧ Peso (in base ad età, sesso ed altezza)
✧ Valore di mercato delle azioni (in base al rendimento precedente)
✧ Vendite in negozio (in base al prezzo, periodo dell'anno e pubblicità)
34
8 Maggio 2021 Luca Naso
35. Classificazione
✧ Per ogni osservazione vogliamo restituire una classe di
appartenenza
✧ La classe viene scelta tra un insieme di classi note a priori
✧ Solitamente affrontato in maniera supervisionata
✧ Esempi:
✧ Filtri anti-spam
✧ Acquisti fraudolenti
✧ Argomento di un testo
35
8 Maggio 2021 Luca Naso
36. Clustering
✧ Per ogni osservazione vogliamo restituire una classe di
appartenenza (come la classificazione)
✧ La classe di output viene scelta tra un insieme di classi non note a
priori (diverso dalla classificazione)
✧ Questo è un tipico problema non supervisionato
✧ Esempi:
✧ Comportamento degli utenti di un sito web, dei pazienti di un ospedale,
degli automobilisti di una città, ...
✧ Relazioni tra i geni di pazienti con o senza una certa patologia
36
8 Maggio 2021 Luca Naso
37. Tabella Riepilogativa: Output
Nome Output Esempio
Regressione Continuo Peso
Classificazione Discreto - noto a priori = si Spam
Clustering Discreto - noto a priori = no Comportamento
37
8 Maggio 2021 Luca Naso
38. Scelta algoritmo
Conoscere le tassonomie dei problemi di machine learning
rappresenta il primo passo nella scelta del giusto algoritmo
38
8 Maggio 2021 Luca Naso
41. Percorso
1. Abbiamo capito cosa è il Machine Learning (definizione)
2. Abbiamo capito quali sono i vari tipi di Machine Learning
(tassonomia)
3. Vediamo adesso di entrare ancora più a fondo su cosa sia un
modello di Machine Learning
41
Luca Naso
8 Maggio 2021
42. Costruire un modello di ML
✧ Consideriamo il caso di problemi supervisionati e di regressione
✧ Costruire un modello di ML significa trovare una funzione che
associa ad ogni osservazione un valore di output
✧ Le osservazioni sono vettori di uno spazio multi-dimensionale delle
feature (o predittori), di solito indicate con X
✧ L'output (o target) è uno scalare, di solito indicato con y
✧ Noi vogliamo trovare quella funzione per cui y = f(X)
✧ Vediamolo meglio...
42
8 Maggio 2021 Luca Naso
43. Costruire un modello di ML
✧ Ci sono N osservazioni e P features (per ogni osservazione)
✧ L'osservazione i-esima si scrive come
✧ L'insieme di tutto il dataset si scrive come
✧ Noi cerchiamo quella funzione f per cui
43
8 Maggio 2021 Luca Naso
44. Costruire un modello di ML: esempio
✧ Stimare il peso di una persona in base ad altezza, sesso ed età
✧ feature = altezza, sesso, età
✧ X = vettore a 3 dimensioni
✧ y = peso
✧ L'osservazione i-esima si scrive come
✧ Ed il modello è:
44
8 Maggio 2021 Luca Naso
45. Costruire un modello di ML: esempio
Alcune osservazioni del dataset:
✧ X1 = (181 cm, uomo, 28 yr) -----> y1 = 82 kg
✧ X2 = (164 cm, donna, 25 yr) -----> y2 = 61 kg
✧ X3 = (172 cm, donna, 27 yr) -----> y3 = 63 kg
45
8 Maggio 2021 Luca Naso
46. Componenti aleatorie ed errori
✧ E' accettabile avere osservazioni uguali con target diversi?
✧ X4 = (171 cm, uomo, 31 yr) -----> y4 = 71 kg
✧ X5 = (171 cm, uomo, 31 yr) -----> y5 = 83 kg
✧ Sì, Machine Learning ≠ Interpolazione, per questo in realtà cerchiamo:
✧ Il termine aggiunto non dipende da X ed è scomposto in:
✧ 1. Variabilità intrinseca del fenomeno
✧ 2. Errore del modello di machine learning
46
8 Maggio 2021 Luca Naso
48. Passiamo a Python
Simuliamo un dataset di osservazioni
- con 1 feature
- ed etichettate
Feature: numeri casuali
Etichette: relazione lineare con fluttuazioni
48
Luca Naso
8 Maggio 2021
49. Codice Python
import numpy as np
import matplotlib.pyplot as plt
obs_number = 200
# features
X = 1 + 2 * np.random.random(obs_number)
# targets
a = 3.5
b = 8
fluctuations = 0.2
y = b + a * X + fluctuations * np.random.randn(obs_number)
# plot
plt.plot(X, y, '+')
plt.show()
49
Luca Naso
8 Maggio 2021
50. Riepilogo
✧ Cosa è il Machine Learning
✧ Come si suddividono i problemi di Machine Learning
✧ Cosa è un modello di Machine Learning
50
8 Maggio 2021 Luca Naso
51. Risorse
51
Luca Naso
8 Maggio 2021
Queste slides: slideshare
www.slideshare.net/LucaNaso/
Il codice: github github.com/lucanaso/mlworkshop-
eps
Luca Naso: Linkedin www.linkedin.com/in/lucanaso/