Come è fatta una rete neurale (seconda parte)
Nell’ultimo articolo ho introdotto il tema delle funzioni statistiche ed in particolare della regressione lineare, quale strumento per effettuare analisi predittive. Per continuità, prima di passare oltre ed iniziare ad affrontare il tema più specifico del machine learning e del deep learning, proverò a completare il quadro.
Ho voluto soffermarmi , dunque, sui metodi statistici, sebbene “a mio avviso già superati”, se non altro perchè le tecniche utilizzate, almeno fino a qualche anno fa, erano limitate per problemi computazionali esclusivamente a strumenti come la regressione lineare o modelli lineari generalizzati e comunque rapprensentano la storia consolidata.
Tuttavia, le recenti innovazioni tecnogiche quali l’introduzione dell’uso delle GPU (graphics processing unit ) o dei più recenti NNP ( Neural Network Processor) nel campo della AI , hanno consentito e consentiranno sempre più velocemente lo sfruttamento di algoritmi più sofisticati ed automatici di Machine Learning e deep Learning.
A differenza dei metodi tradizionali di regressione, il Machine Learning introduce tecniche non parametriche. Nei prossimi articoli parleremo delle differenze degli algoritmi di Machine Learning, distinguibili sostanzialmente in due diverse categorie, supervised e unsupervised, che differiscono tra loro nei criteri utilizzati per classificare i dati e nel fornire le predizioni. Ma di questo parleremo in seguito.
Tornando sui nostri passi completiamo il nostro tour sull’approccio statistico.
Come dicevano, la regressione lineare è uno strumento molto semplice e nel contempo molto potente, ma non risponde sempre efficacemente alle diverse esigenze , in quanto la complessità dello spazio di dispersione ( legato ai dati campione) può suggerire la necessità di utilizzare funzioni ben più complesse di una retta. Ciò è facilmente comprensibile se si osservano i dati di esempio, in cui è evidente quanto di fatto una funzione lineare (una retta) non risponda sempre alla esigenze di modello e pertanto diventa necessario scegliere delle curve diverse più complesse.
Capito dunque che una retta non è sempre la scelta migliore, resta dunque un problema da risolvere; quale funzione si deve scegliere ? e come si fa a sapere se la funzione scelta quale modello di riferimento è più o meno efficace ?
In merito, al secondo punto, viene in nostro aiuto uno strumento per valutare la bontà del modello scelto, chiamato coefficiente di determinazione o bontà di adattamento (più comunemente R2) che è una proporzione tra la variabilità dei dati e la correttezza del modello statistico utilizzato; giusto per dare un quadro esaustivo in formule si ha :
ovvero R2 è il rapporto tra la devienza di errore e la devianza totale.
Cerchiamo di approfondire il concetto analizzando l’esempio di figura in cui tenteremo di capire come costruire un modello predittivo di analisi dei prezzi di un immobile al variare, ad esempio, del numero di vani (linea blu). Nella figura pertanto , la linea blu rapprensenta il grafico di dispersione ( i dati reali e cioè il valore di un immobile al variare della numero di vani), la linea gialla rappresenta la curva di regressione (ovvero il nostro modello predittivo) ed infine la linea verde rappresenta la media ( la media del valore di un immobile ).
Come già descritto nell’articolo precendente la retta di regressione è il risultato di un calcolo che porta a determinare quella curva che minimizza il costo, ovvero signifca scegliere opportunamente i valori w e b e cioè il coefficiente angolare e l’ intercetta della retta.
y= wx+b
Per dare il giusto significato a quanto detto diamo qualche breve definizione:
Devianza totale :
dove D0 è la differenza tra il valore reale e la media dei valori
Devianza di errore:
dove D1 è la differenza tra il valore reale ed il valore predetto o di regressione
Devianza di regressione:
dove D2 è la differenza tra il valore predetto o di regressione e la media dei valori
inoltre la devianza totale è dunque :
DEV(y) = DEV(E)+DEV(R)
per cui facendo qualche semplice calcolo avremo che il coefficiente di determinazione può essere calcolato anche come :
dove R² può assumere valori compresi tra 0 e 1
In definitiva basta ricordarsi e sapere che se :
il modello è pessimo, mentre se
il modello è perfetto ed in tal caso la : DEV(E) = 0 e DEV(y) = DEV(R)
Quindi più vicino a 1 è il valore dell’indice di bontà migliore sarà il modello che utilizzeremo.
Esistono ovviamente altri metodi per calcolare l’indice di bontà e molti altri aspetti da analizzare ma lasciamo ad altri articoli l’approfondimento di questi temi.
Quello che è importante è che abbiamo capito che individuare un modello di regressione con un valore di bontà prossimo a 1 significa poter usare un modello predittivo di machine learning ottimale.
A questo punto non ci resta che fare un piccolo esempio pratico e per lo scopo, anzichè fare i calcoli a mano ci facciamo aiutare dal mitico excel. Partiamo da un piccolo set di dati campione ( ovviamente in un caso reale dovremmo avere a disposizione un set significativo) e proviamo a costruire un sistema predittivo che sia in grado di darci il prezzo di un immobile ovvero il valore predetto, in base ad un valore di ingresso che sarà la nostra richiesta di valutazione in base ai metri quadri.
Partendo dal set di dati inseriamo con excel un grafico a dispersione
Selezionate le righe mt e prezzo ecco il risultato.
Ovviamente bisogna dire ad Excel di inserire anche le linee di regressione; nel mio caso ho inserito una regressione lineare ed una del terzo grado per dare il senso di come sia possibile modellare il sistema con curve differenti. Per fare questo ultimo passo è stato sufficente selezionare/cliccare sui punti del grafico di dispersione ( punti blu ) e con il tasto destro del mouse selezionare nel menu aggiungi linee di tendenza.
Abbiamo così ottenuto i modelli di regressione ed a questo punto possiamo valutarne l’efficacia grazie al fattore R².
Nel caso di esempio la regressione del terzo ordine ha un fattore R² leggermente migliore.
y = 3,124x – 49,725
R² = 0,416
Regressione Lineare del terzo ordine
y = -0,0007x3 + 0,2692x2 – 29,143x + 1192,6
R² = 0,4306
articolo precedente ( prima parte )
articolo successivo ( terza parte )
Sono amante della tecnologia e delle tante sfumature del mondo IT, ho partecipato, sin dai primi anni di università ad importanti progetti in ambito Internet proseguendo, negli anni, allo startup, sviluppo e direzione di diverse aziende; Nei primi anni di carriera ho lavorato come consulente nel mondo dell’IT italiano, partecipando attivamente a progetti nazionali ed internazionali per realtà quali Ericsson, Telecom, Tin.it, Accenture, Tiscali, CNR. Dal 2010 mi occupo di startup mediante una delle mie società techintouch S.r.l che grazie alla collaborazione con la Digital Magics SpA, di cui sono Partner la Campania, mi occupo di supportare ed accelerare aziende del territorio .
Attualmente ricopro le cariche di :
– CTO MareGroup
– CTO Innoida
– Co-CEO in Techintouch s.r.l.
– Board member in StepFund GP SA
Manager ed imprenditore dal 2000 sono stato,
CEO e founder di Eclettica S.r.l. , Società specializzata in sviluppo software e System Integration
Partner per la Campania di Digital Magics S.p.A.
CTO e co-founder di Nexsoft S.p.A, società specializzata nella Consulenza di Servizi in ambito Informatico e sviluppo di soluzioni di System Integration, CTO della ITsys S.r.l. Società specializzata nella gestione di sistemi IT per la quale ho partecipato attivamente alla fase di startup.
Sognatore da sempre, curioso di novità ed alla ricerca di “nuovi mondi da esplorare“.
Comments