La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

TEORIE E TECNICHE DEL RICONOSCIMENTO Apprendimento automatico Introduzione a SciKit-Learn.

Presentazioni simili


Presentazione sul tema: "TEORIE E TECNICHE DEL RICONOSCIMENTO Apprendimento automatico Introduzione a SciKit-Learn."— Transcript della presentazione:

1 TEORIE E TECNICHE DEL RICONOSCIMENTO Apprendimento automatico Introduzione a SciKit-Learn

2 FACCIAMO UN PASSO INDIETRO … Molti dei metodi per interpretare testi che abbiamo visto sono basati su CLASSIFICATORI appresi usando tecniche di APPRENDIMENTO AUTOMATICO: – Classificazione di documenti in spam / non spam – Sentiment analysis – Classificazione delle parti del discorso – Etc etc

3 CLASSIFICATORI Un CLASSIFICATORE e’ una FUNZIONE da oggetti che si vogliono classificare a etichette DISCRETE La disambiguazione delle parti del discorso e molti altri problemi in LC possono essere visti come problemi di classificazione – Determinare la parte del discorso di un token – Assegnare valore SPAM/NO SPAM a un messaggio – Assegnare un valore positivo / negativo ad una recension

4 CLASSIFICATORI COME FUNZIONI TOKENPOS LaDT mammaNN diOF GiacomoNNP haHV

5 UNA VISIONE GEOMETRICA DELLA CLASSIFICAZIONE SPAM NON-SPAM

6 VISIONE GEOMETRICA DELLE FUNZIONI

7 IL RUOLO DELL’APPRENDIMENTO AUTOMATICO Un classificatore potrebbe essere codificato a mano (in Python, per esempio) Ma nella linguistica computazionale moderna, e in moltre altre aree dell’intelligenza artificiale, questi classificatori non vengono specificati a mano, ma vengono APPRESI AUTOMATICAMENTE a partire da esempi.

8 Il termine ‘Machine Learning’ e’ stato coniato negli anni ‘50 da Samuel, che sviluppo’ tecniche di apprendimento automatico per sviluppare un sistema che imparasse a giocare a dama APPRENDIMENTO E LA DAMA

9 Arthur Samuel (1959). Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed. Tom Mitchell (1998) Well-posed Learning Problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E. Machine Learning definition

10 ALTRE APPLICAZIONI Robotica (per esempio veicoli autonomi)

11 APPROCCI ALL’APPRENDIMENTO SUPERVISIONATO: dato un insieme di esempi di input / output, trovare una associazione che predica accuratamente l’output associato ad un certo input NON SUPERVISIONATO o CLUSTERING: dato un insieme di esempi non etichettati, raggruppare gli esempi in gruppi di oggetti “simili” (CLUSTER)

12 APPRENDIMENTO SUPERVISIONATO

13 APPRENDIMENTO SUPERVISIONATO IN NLTK >>> featuresets = [(gender_features(n), g) for (n,g) in names] >>> train_set, test_set = featuresets[500:], featuresets[:500] >>> classifier = nltk.NaiveBayesClassifier.train(train_set) >>> classifier.classify(gender_features('Neo')) 'male' >>> classifier.classify(gender_features('Trinity')) 'female'

14 DUE TIPI DI APPRENDIMENTO SUPERVISIONATO

15 CLASSIFICAZIONE: Spam, non-spam Classification Discrete valued output (0 or 1) Spam? 1(Y) 0(N) Length of message (words)

16 REGRESSIONE: PREDIRRE IL COSTO DELLE CASE Prezzo (€) in 1000’s Dimensione in m 2 Regression: Predict continuous valued output (price) Supervised Learning “right answers” given

17 APPRENDIMENTO AUTOMATICO IN PYTHON Come abbiamo visto, la libreria NLTK permette di apprendere diversi tipi di classificatori a partire da testi Ma in Python esistono diverse librerie piu’ generali Useremo la libreria SciKit-Learn

18 SCIKIT-LEARN Una libreria open-source di funzioni per l’apprendimento automatico – Basata su numpy, scipy, e matplotlib Fornisce funzioni per – Classificazione – Regressione – Clustering – Riduzione di dimensionalita’ Sito web: –

19 APPRENDIMENTO AUTOMATICO CON SCIKIT-LEARN 1.Leggere i dati (e ripulirli se necessario) 2.Analizzarli, per esempio tramite visualizzazione 3.Identificare il miglior algoritmo di apprendimento 4.Analizzare le prestazioni

20 ESEMPIO DI REGRESSIONE Obiettivo: sviluppare una funzione che predice la quantita’ di accessi ad un sito web

21 I DATI

22 LEGGERE I DATI

23 VISUALIZZARE I DATI

24 VISUALIZZARE I DATI: CODICE

25 APPRENDERE UNA FUNZIONE Nell’apprendimento supervisionato (sia regressione che classificazione) si cerca di trovare la funzione che fornisca la “migliore rappresentazione dei dati” Si definisce “migliore rappresentazione dei dati” come “rappresentazione che minimizza l’ERRORE”

26 MINIMIZZARE L’ERRORE

27 ERRORE NEL CASO DELLA REGRESSIONE

28 IMPARARE LA FUNZIONE CHE RAPPRESENTA MEGLIO I DATI

29 VISUALIZZARE IL RISULTATO La funzione approssima bene I dati le prime quattro settimane Dopodiche’ e’ chiaro che c’e’ un problema con l’idea che la funzione sia una linea retta

30 UN’APPROSSIMAZIONE MIGLIORE

31 ANCORA MEGLIO?

32 OVERFITTING Aumentando il grado del polinomio otteniamo delle funzioni che ottengono risultati migliori `memorizzando’ i dati di addestramento, ma non generalizzano a sufficienza

33 TRAIN E TEST Come nei casi di classificazione visti in precedenza, per trovare la soluzione migliore vogliamo dividere I dati in train e test e valutare solo su tes

34 LEZIONE DI BASE Sviluppando algoritmi di apprendimento automatico e’ importante non limitarsi a provare tutti I metodi possibili e tutti I parametri possibili, ma cercare di capire cosa sta succedendo (per esempio visualizzando i dati) e scegliere sulla base dell’analisi

35 PACCHETTI COMPRESI CON SCIKIT-LEARN NumPy – Operazioni su array SciPy – Contiene implementazioni di praticamente tutti gli algoritmi numerici

36 NUMPY

37 SCIPY

38 LETTURE

39 QUESTA LEZIONE Echert & Coelho, capitolo 1


Scaricare ppt "TEORIE E TECNICHE DEL RICONOSCIMENTO Apprendimento automatico Introduzione a SciKit-Learn."

Presentazioni simili


Annunci Google