




























































































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
machine learning, laurea magistrale
Tipologia: Dispense
1 / 176
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























































































DOCENTE: LUIGI LAURA
I dati vanno raccolti sia che essi siano grandi o piccoli di grandezza mediante IoT e/o sistemi aziendali dedicati (CRM/ERP). I dati si raccolgono in Data Storage e vengono poi elaborati mediante la costruzione di un modello che viene eseguito e monitorato. Il tema del controllo va effettuato sui dati (data governance), sul modello usato (model governance) studiando il bias del modello stesso, perchè i modelli possono portare ad esclusioni di natura etica. Va poi controllato il deployment e infine la sicurezza e la privacy. Un data scientist è coinvolto negli aspetti algoritmici per sviluppare modelli dai dati.
Il processo KDD (estrazione conoscenza dai dati di base), secondo una catena del valore, ci conduce alla conoscenza come l’estratto più importante, una sorta di validazione di teoria del modello. Vanno selezionati i dati, pre-processati, trasformati, estratto un pattern e definita la conoscenza. Possiamo quindi definire un tipico processo di data science in questi passi:
Formulazione di ipotesi matematiche o in un linguaggio script dopo l’esplorazione dei dati; Caricamento e trasformazione dei dati importanti; Capire quali sono gli estratti (o “feature”) dei dati che sintetizzano i dati; Creare il modello (ipotesi); Valutare la correttezza del modello (testing ipotesi); Lanciare in esecuzione il modello; Monitorare il modello verificando le performance;
Il lavoratore in ambito Data Science può analizzare ciò che accade in organizzazione: gli analisti di business (business significa l’attività svolta rivolta ad un obiettivo specifico) capiscono le esigenze e insieme ai Data Scientists studiano e analizzano i dati. Infine pubblicano i loro risultati a favore degli sviluppatori, che trasformano in codice informativo gli operativi e le procedure e a favore dei data engineers che cercano dati e li elaborano in una pipeline senza discontinuità per nutrire i modelli stabiliti.
viene in genere svolto nel contesto della classificazione, quando vogliamo mappare l’input alle etichette di output, o regressione, quando vogliamo mappare l’input a un output continuo. Algoritmi comuni nell’apprendimento supervisionato includono regressione logistica , classificatore bayesiano naif (generalmente per la categorizzazione di testi), macchine a vettori di supporto (modelli associati ad algoritmi di apprendimento per la regressione e la classificazione), reti neurali artificiali e le cosiddette foreste casuali (classificatori d’insieme composti da molti alberi di decisione). Sia nella regressione che nella classificazione, l’obiettivo è trovare relazioni o strutture specifiche nei dati di input che ci consentano di produrre in modo efficace dati di output corretti. Si noti che l’output “corretto” è determinato interamente dai dati di addestramento, quindi mentre abbiamo una “verità di base” che il nostro modello riterrà vera, non si può dire che le etichette dei dati siano sempre corrette nelle situazioni del mondo reale. Le etichette dei dati “rumorose” o “errate” ridurranno chiaramente l’efficacia del modello. La complessità del modello si riferisce alla complessità della funzione che si sta tentando di apprendere, simile al grado di un polinomio. Il corretto livello di complessità del modello è generalmente determinato dalla natura dei dati di allenamento. Se hai una piccola quantità di dati o se i tuoi dati non sono distribuiti uniformemente in diversi scenari possibili, dovresti optare per un modello a bassa complessità. Ciò è dovuto al fatto che un modello ad alta complessità verrà “sovradattato” (overfitting, un modello statistico molto complesso si adatta ai dati osservati – il campione – perché ha un numero eccessivo di parametri rispetto al numero di osservazioni) se utilizzato su un numero ridotto di punti dati. L’overfitting si riferisce all’apprendimento di una funzione che si adatta molto bene ai dati di training, ma non generalizza ad altri punti dati, in altre parole, si sta imparando rigorosamente a produrre i dati di training senza apprendere la tendenza o la struttura effettiva nei dati che guida a questo output.
Unsupervised Learning: i dati di training non includono gli output desiderati. Un esempio è comprendere dai dati se avviene o non avviene un evento meteo mediante i dati dell’umidità. trovano modelli intrinseci nei dati.
Le attività più comuni nell’apprendimento senza supervisione sono il clustering (raggruppamento), l’apprendimento della rappresentazione e la stima della densità. In tutti questi casi, desideriamo conoscere la struttura intrinseca dei nostri dati senza utilizzare etichette fornite in modo esplicito. Alcuni algoritmi comuni includono il clustering k-means, l’analisi dei componenti principali e gli autocodificatori. Poiché non vengono fornite etichette, non esiste un modo specifico per confrontare le prestazioni del modello nella maggior parte dei metodi di apprendimento senza supervisione. Inoltre è molto utile nell’ analisi esplorativa perché può identificare automaticamente la struttura nei dati. Ad esempio, se un analista tentasse di segmentare i consumatori, i metodi di clustering senza supervisione sarebbero un ottimo punto di partenza per la loro analisi. In situazioni in cui è impossibile o impraticabile per un essere umano proporre tendenze nei dati, l’apprendimento non supervisionato può fornire informazioni iniziali che possono poi essere utilizzate per testare/verificare singole ipotesi. La riduzione della dimensionalità , che fa riferimento ai metodi utilizzati per rappresentare i dati utilizzando meno colonne o funzionalità, può essere eseguita tramite metodi di apprendimento non supervisionato. Nell’apprendimento della rappresentazione, per esempio, vogliamo imparare le relazioni tra le singole caratteristiche, permettendoci di rappresentare i dati utilizzando le caratteristiche latenti che inter- relazionano le caratteristiche iniziali. Questa struttura latente è spesso rappresentata utilizzando molte meno funzionalità di quelle con cui abbiamo iniziato, quindi può rendere l’ulteriore elaborazione dei dati molto meno intensiva e può eliminare le funzionalità ridondanti. In altri contesti, la riduzione della dimensionalità può essere utilizzata per convertire i dati da una modalità a un’altra. Ad esempio, un autoeconder ricorrente può essere utilizzato per convertire le sequenze in una rappresentazione a lunghezza fissa.
Semi-supervised Learning: i dati di training includono alcuni output desiderati mentre altri no. L’apprendimento semi supervisionato è un sistema con punti dati sia “non labelled” (non etichettati) sia etichettati. Si snoda tra l’apprendimento supervisionato e quello non supervisionato. I modelli semi-supervisionati mirano a utilizzare una piccola quantità di dati di allenamento etichettati insieme a una grande quantità di dati di allenamento senza etichetta. Ciò si
Deep Learning : usa reti per identificare pattern complessi nei dati. Il Deep Learning, la cui traduzione letterale significa apprendimento profondo , è una sottocategoria del Machine Learning e indica quella branca dell’intelligenza artificiale che fa riferimento agli algoritmi ispirati alla struttura e alla funzione del cervello, chiamati reti neurali artificiali e a metodi basati sull’assimilazione di rappresentazioni di dati, al contrario degli algoritmi per l’esecuzione di task specifici. Le architetture di Deep learning sono per esempio state applicate nella computer vision , nel riconoscimento automatico della lingua parlata , nell’ elaborazione del linguaggio naturale , nel riconoscimento audio e nella bioinformatica, ovvero l’utilizzo di strumenti informatici per descrivere dal punto di vista numerico e statistico determinati fenomeni biologici come le sequenze di geni, la composizione e la struttura delle proteine, i processi biochimici nelle cellule. Possiamo quindi definire il Deep Learning come un sistema che sfrutta una classe di algoritmi di apprendimento automatico che:
Intelligenza artificiale : sistemi computerizzati abili nel performare attività che normalmente richiedono l’intelligenza umana. In termini tecnici, l’Intelligenza Artificiale è un ramo dell’informatica che permette la programmazione e progettazione di sistemi sia hardware che software che permettono di dotare le macchine di determinate caratteristiche che vengono considerate tipicamente umane quali, ad esempio, le percezioni visive, spazio-temporali e decisionali. Si tratta cioè, non solo di intelligenza intesa come capacità di calcolo o di conoscenza di dati astratti, ma anche e soprattutto di tutte quelle differenti forme di intelligenza che sono riconosciute dalla teoria di Gardner, e che vanno dall’intelligenza spaziale a quella sociale, da quella cinestetica a quella introspettiva. Un sistema intelligente, infatti, viene realizzato cercando di ricreare una o più di queste differenti forme di intelligenza che, anche se spesso definite come semplicemente umane, in realtà possono essere ricondotte a particolari comportamenti riproducibili da alcune macchine.
Problemi ed applicazioni gestiti da Machine Learning:
- Riconoscimento dei gesti: abilità di analizzare le azioni umane ed estrarre informazioni in tempo reale da uno streaming video. Viene applicato in robot, sistemi di rilevamento cadute, monitoraggio performance delle automobili, sicurezza; - Analisi della voce: abilità di usare la voce come strumento di autenticazione o per identificare la persona che sta parlando mediante lo speech recognition; - Machine Vision: usato in robotica, riconoscimento facciale, moderazione dei contenuti… - Sorveglianza video : usare AI nelle immagini per le telecamere di sorveglianza; - Riconoscimento della scrittura a mano : estrazione della scrittura a mano; - Riconoscimento e generazione testi : agente automatico che genera dei testi trasformando dati in una narrativa, come le analisi di borsa; - Riconoscimento di entità : riconoscere oggetti in immagini; - NLP (Natural Language Processing): analisi dei test e l’abilità di estrarre informazioni sulle persone, posti, eventi da documenti di testo.
Dai dati di training sono estratti dei vettori “features” e mediante un algoritmo di ML si trasferisce un modello parametrizzato concludendo l’intervallo di training. Nell’intervallo operativo, il modello deve essere pienamente efficace e dare una performance significativa e soddisfacente. I dati vengono quindi smistati in vettori “features” che inseriti nel modello vengono rappresentati e lavorati. Il metodo unsupervised è del tutto simile al precedente ma vengono definite tre zone precise: l’algoritmo ML è l’ottimizzazione, la creazione dei “feature vectors” sono la rappresentazione e l’output è la valutazione.
Il training è il processo che consente al sistema di apprendere o di cambiare i suoi parametri più interni per ottimizzare la performance per svolgere l’attività. Esiste la regola del “no free lunch” ovvero che il set di dati di training e di testing devono venire dalla stessa distribuzione svolgendo alcune assunzioni (bias). Il sistema di dati universale è composto da due gruppi diversi: estraendo dei dati abbiamo un training set, ovvero un set osservato. In operazione, nell’utilizzo pratico, viene dato il testing set ovvero quello su cui noi andremo a verificare la performance, ovviamente peggiore del training set. I sistemi in test non sono comparabili con i sistemi in esercizio.
I dati in acquisizione differiscono come:
- Supervised learning : si distinguono i gruppi raggruppando per semantica;
- Unsupervised learning : si distinguono i gruppi senza sapere le loro semantiche; - Semi-supervised learning : non tutti i gruppi sono distinti correttamente ma il sistema deve comprendere come separarli correttamente; Il successo del ML dipende anche dall’algoritmo di apprendimento che controlla la ricerca per trovare e costruire strutture di conoscenza espresse da un modello. Gli algoritmi di ML devono estrarre informazioni utili da esempi che vengono forniti.
Ci sono diversi fattori che dipendono dalle performance:
- Tipo di training svolto; - La forma e la condizione di ogni conoscenza di sfondo che viene fornita al sistema; - Il tipo di feedback provveduto; - L’algoritmo di apprendimento usato;
Due fattori importanti per definire le performance sono il modello e l’ottimizzazione.
- Esempio di training : che deve essere nella forma 𝑥, 𝑓(𝑥); - Funzione target : 𝑓(𝑥); - Ipotesi : una funzione con la quale dare etichette ai possibili dati sconosciuti , funzione ℎ che può essere ritenuta simile a 𝑓 ; - Spazio delle Ipotesi : Un insieme di più ipotesi e legate - Concetto : funzione booleana. Un esempio è 𝑓(𝑥) = 1 chiamato come esempio positivo mentre per 𝑓(𝑥) = 0 si hanno esempi negativi; - Classificatore : funzione discreta per valori possibili di x 𝑓(𝑥) ∈ {1,... , 𝐾} dalla quale possiamo estrarre le class labels; - Spazio delle versioni : spazio di tutte le ipotesi che non sono state valutate per mezzo di un esempio che non è disponibile nel training; - Feature Space : proprietà con i quali possiamo descrivere un problema;
In modo simile all'individuazione della migliore corrispondenza nella regressione lineare, l'obiettivo della discesa del gradiente è di minimizzare la funzione di costo o l'errore tra il valore Y previsto e quello effettivo. Per fare ciò, richiede due punti di dati: una direzione e un tasso di apprendimento. Questi fattori determinano i calcoli delle derivate parziali delle future iterazioni, consentendo di giungere gradualmente al minimo locale o globale (ovvero al punto di convergenza). Il tasso di apprendimento (definito anche dimensione di fase o alfa) è la dimensione delle fasi completate per raggiungere il valore minimo. Di norma, si tratta di un valore di piccole dimensioni che viene valutato e aggiornato in base al comportamento della funzione di costo. Tassi di apprendimento elevati risultano in fasi di dimensioni maggiori, ma comportano il rischio di eccedere il valore minimo. Al contrario, un basso tasso di apprendimento comporta fasi di dimensioni ridotte. Sebbene offra il vantaggio di una maggiore precisione, il numero di iterazioni compromette l'efficienza complessiva, in quanto richiede più tempo e un numero maggiore di calcoli per raggiungere il valore minimo. o La funzione di costo (o perdita) misura la differenza o l'errore tra il valore effettivo e previsto di Y nella posizione corrente. Ciò migliora l'efficacia del modello di machine learning fornendo un feedback che consente al modello di correggere i parametri per ridurre al minimo l'errore e di trovare il valore minimo locale o globale. Si ripete continuamente, spostandosi nella direzione della discesa più inclinata (o gradiente negativo) fino a quando la funzione di costo non è prossima o pari a zero. A questo punto, il modello interromperà l'apprendimento. Inoltre, sebbene i termini funzione di costo e funzione di perdita siano considerati sinonimi, tra i due vi è una piccola differenza. È opportuno specificare che per funzione di perdita si intende l'errore di un esempio di training, mentre per funzione di costo si intende il calcolo dell'errore medio nell'ambito di un intero insieme di training.
Predizione: se abbiamo un dataset sul costo delle case vorremo predire il prezzo sapendo i dati che abbiamo (area abitabile e il numero di stanze). Abbiamo quindi due input (area abitabile e il numero di stanze) e un tipo di output (il costo della casa). Per costruire l’ipotesi inseriamo dei parametri definiti come pesi e segnati come 𝜃 0 , 𝜃 1 , 𝜃 2.
Definiamo quindi una funzione ipotesi come:
ℎ𝜃(𝑥) = 𝜃 0 + 𝜃 1 𝑥 1 + 𝜃 2 𝑥 2 = ∑ 𝑖=
𝑁 𝜃𝑖𝑥𝑖 = 𝜃𝑇𝒙.
In questo caso il 𝜃𝑇^ è un vettore di dimensione 3 mentre 𝑥 diventa un vettore di dimensione 2. Questa è la nostra predizione costruita dal prodotto matriciale tra un vettore riga e uno colonna.
Avendo un training set come facciamo a imparare e scegliere i parametri corretti per 𝜃? Introduciamo una funzione di costo 𝐽 che va minimizzata per stimare i parametri in modo opportuno che devono rendere la funzione ipotesi ℎ(𝑥) molto vicina agli output:
𝑖=
𝑚 (ℎ𝜃(𝑥𝑖) − 𝑦𝑖)^2
In questo caso non si tenta di risolvere contemporaneamente ma si svolge iterativamente per ogni elemento e singolo parametro. Questa regola è detta di batch gradient descent , ovvero variare il 𝜃 in base alla diminuzione della funzione costo e usando tutti i dati.
Riprendiamo il problema: predire il costo della casa mediante due parametri. Nel training set avevamo dati e supponiamo anche una retta che è il valore ottimale. La funzione può presentare in questo caso un unico punto di minimo che viene scoperto con un numero finito di passi e da qualsiasi punto si parte corrisponde sempre al medesimo.
La regola di update non contiene la sommatoria perchè possediamo un loop che richiama gli esempi uno alla volta.
Loop { for i=1 to m { 𝜃𝑗: = 𝜃𝑗 + 𝛼(𝑦(𝑖)^ − ℎ𝜃(𝑥(𝑖)))𝑥𝑗^ (𝑖)^ per ogni 𝑗 }}
Arriveremo a una stima di 𝜃𝑗. Non consideriamo un calcolo fatto sugli
esempi, questo tipo di operazione ci slega dalla dimensione del dataset. Questo approccio è il più diffuso perchè sebbene non dia garanzia di convergenza nel punto minimo esistente è più rapido non dipendendo dal numero di parametri. Svantaggi: Per i problemi convessi, la discesa del gradiente può individuare facilmente il valore minimo globale; all'emergere di problemi non convessi, la discesa del gradiente riscontra difficoltà nell'individuazione del minimo globale, mentre il modello raggiunge i migliori risultati. Quando la pendenza della funzione di costo si avvicina allo zero, il modello interrompe l'apprendimento. Oltre al valore minimo globale, solo pochi scenari possono produrre questa pendenza, ovvero i valori minimi locali e i punti di sella. I valori minimi locali imitano la forma di un valore minimo globale, nella quale la pendenza della funzione di costo aumenta in entrambi i lati del punto corrente. Tuttavia, con i punti di sella, il gradiente negativo esiste solo su un lato del punto, raggiungendo un valore massimo locale su un lato e un valore minimo locale sull'altro.
Nelle reti neurali ricorrenti, possiamo rilevare altri due problemi quando il modello ha eseguito il training con la discesa del gradiente e la propagazione inversa. Gradienti che scompaiono: si verifica quando il gradiente è troppo piccolo. Durante lo spostamento all'indietro nella propagazione inversa, le dimensioni del gradiente continuano a diminuire, causando un rallentamento dell'apprendimento da parte dei primi livelli nella rete rispetto agli altri livelli. Quando ciò accade, i parametri di peso vengono aggiornati fino a quando non diventano insignificanti, ovvero pari a 0, risultando nell'interruzione dell'apprendimento da parte dell'algoritmo. Gradienti che esplodono: si verifica quando il gradiente è troppo grande, creando un modello instabile. In questo caso, i pesi del modello diverranno troppo grandi fino ad essere rappresentati come NaN. Una soluzione a questo problema è rappresentata dall'utilizzo di una tecnica di riduzione della dimensionalità, che può ridurre al minimo la complessità all'interno del modello.
REGRESSIONE Regressione logistica: Quando la variabile dipendente è discreta, è applicabile la tecnica di regressione logistica. In altre parole, questa tecnica viene utilizzata per calcolare la probabilità di occorrenze mutuamente esclusive come pass/fail, true/false, 0/1 e così via. Pertanto, la variabile target può assumere solo uno dei due valori e una curva sigmoidea rappresenta la sua connessione alla variabile indipendente e la probabilità ha un valore compreso tra 0 e 1.
Regressione quantifica: L'approccio della regressione quantile è un sottoinsieme della tecnica della regressione lineare. Viene utilizzato quando i requisiti di regressione lineare non sono soddisfatti o quando i dati contengono valori anomali. In statistica viene utilizzata la regressione quantile.
Regressione lineare bayesiana: La regressione lineare bayesiana è una forma di tecnica di analisi di regressione utilizzata nell'apprendimento automatico che utilizza il teorema di Bayes per calcolare i valori dei coefficienti di regressione. Piuttosto che determinare i minimi quadrati, questa tecnica determina la distribuzione a posteriori delle caratteristiche. Di conseguenza, l'approccio supera la normale regressione lineare in termini di stabilità.
Regressione delle componenti principali: I dati di regressione multicollineare vengono spesso valutati utilizzando l'approccio di regressione delle componenti principali. L'approccio della regressione delle componenti significative, come la regressione della cresta, riduce gli errori standard distorcendo le stime di regressione. L'analisi delle componenti principali (PCA) viene utilizzata prima per modificare i dati di addestramento, quindi i campioni trasformati risultanti vengono utilizzati per addestrare i regressori. Regressione dei minimi quadrati parziali: La tecnica di regressione dei minimi quadrati parziali è una tecnica di analisi di regressione basata sulla covarianza veloce ed efficiente. È vantaggioso per problemi di regressione con molte variabili indipendenti con un'elevata probabilità di multicollinearità tra le variabili. Il metodo riduce il numero di variabili a un numero gestibile di predittori, quindi viene utilizzato in una regressione. Regressione della rete elastica: La regressione della rete elastica combina tecniche di regressione con cresta e lazo che sono particolarmente utili quando si tratta di dati fortemente correlati. Regolarizza i modelli di regressione utilizzando le penalità associate ai metodi di regressione con ridge e lazo.
Regressione lineare: la regressione è un metodo di supervised machine learning e quella lineare presuppone una connessione lineare tra una variabile dipendente (Y) e una variabile indipendente (X). Impiega una linea di regressione, nota anche come linea di adattamento. La connessione lineare è definita come Y = c+m*X + e, dove 'c' denota l'intercetta, 'm' denota la pendenza della linea e 'e' è il termine di errore.