Menu

Azure Machine Learnig per Estrarre Conoscenza dai Dati

Un servizio online di Microsoft Azure consente analisi statistiche predittive utilizzando la tecnologia di apprendimento automatico (Machine Learning).

Gianni Giaccaglini

Sotto il nome Machine Learning (apprendimento automatico) s’inquadra un ramo importante dell'Intelligenza Artificiale, con sistemi e algoritmi sofisticati che sfruttano dati di ogni tipo provenienti da esempi, sensori e, più comunemente, basi di dati magari Big Data, al fine di acquisire nuova conoscenza. Da Wikipedia: “La difficoltà sta nel fatto che l'insieme dei comportamenti forniti da tutti gli input e fonti dati possibili è troppo grande per essere coperto da insiemi finiti di valori rilevati. Da qui nasce la necessità di utilizzare tecniche per generalizzare gli esempi, in modo da essere in grado di produrre un rendimento utile per casi nuovi.”
Per saperne di più, suggeriamo la lettura dell'e-Book Introduction to Machine Learning liberamente scaricabile cliccando sul titolo.

Vi si apprende tra l’altro che, almeno idealmente, il Machine Learning dovrebbe scegliere tra più algoritmi evoluti (bayesiani ad esempio) facendone eventualmente un mixage astuto e il più automatico possibile. 

Fabio SantiniÈ a questo impegnativo indirizzo che si ispira il servizio, varato del giugno 2014, detto appunto Machine Learning offerto dalla piattaforma Cloud di Microsoft Azure.

Una rapida ricerca sul web permette di rendersi corso del successo ottenuto da Azure Machine Learning (d’ora in avanti: Azure ML) sia in aziende che presso enti universitari e istituti di ricerca. Come ci ha rivelato Fabio Santini, direttore della Divisione Developer Experience and Evangelism di Microsoft Italia, “ML nasce da un lavoro pluriennale di sviluppo di algoritmi complessi per nostri prodotti, quali Xbox e Bing.”

Primi passi con Azure ML

Per consentire all’inclita e al volgo l’operatività di questa perla del mondo Azure, Microsoft mette a disposizione gratuitamente:

* il sito https://studio.azureml.net/, ricco di informazioni, dimostrazioni e il Blog ufficiale di Microsoft sui possibili usi del sistema;

* Il sito Machine Learning.

Per accedervi occorre avere un account su msn.com o su outlook.com, ottenibile gratuitamente senza molte formalità e con pochi Click.

Nell'uso e apprendimento del sistema siamo partiti dal Machine Learning Center che offre numerosi video esplicativi e permette di compiere in prima persona una serie di prove concrete. Prima di descrivere quelle fatti da noi inizialmente precisiamo subito che non si tratta di materia semplice come ingenuamente si potrebbe pensare....

All’avvio si presenta il quadro seguente:

Microsoft-Machine-Learning

Come viene subito dichiarato Azure ML si rivolge a uomini di scienza e sviluppatori, anche se sono ammessi i più scafati power user, offrendo strumenti per creare soluzioni “predittive” nonché di pubblicarle sulla piazza mercato di Azure (in analogia con quel che avviene con lo Store delle App di Windows 8 e altrove).

Procediamo con il primo passaggio:

Microsoft-Machine-Learning-2

Al centro si ha l’anello generale di una catena, che via via si arricchisce di numerosi blocchi intermedi, che parte da un generico lettore (Reader) di fonti dati per approdare a funzionalità statistiche evolute. Mediante le voci elencate sulla sinistra il Reader può attingere a dataset tipici, dati di I/O e altre speciali, mentre alle statistiche vere e proprie si affiancano quelle rivolte ad analitiche testuali.

Proseguiamo con la scelta di una delle basi dati del ben fornito repertorio Azure, precisamente quella delle carte di credito tedesche (operazione oltretutto indicata dal tutorial Azure ML):

Microsoft-Machine-Learning-3

In questo caso il Reader, come segnalato al centro, pesca appunto da tale fonte. Sulla destra se ne hanno informazioni generali tra cui le date di avvio e fine dell’esperimento in corso. Possono corredare tutti i blocchi e sotto-blocchi della soluzione, che così viene inquadrata come un progetto, e tornano utili all’operatore, il cui lavoro in molti punti è di tipo professionale, specie nella stesura di codice informatico per creare App verticali (v. più avanti il passo 6).

Per farla breve mostriamo le due fasi conclusive del progetto didattico sulle credit card teutoniche. La prima è il tipico diagramma finale, con tutti i blocchi e gl’intrichi delle interconnessioni:

Microsoft-Machine-Learning-4

In esso si possono notare interventi di R Script e di altro tipo come il trattamento di tabelle che, ripetiamo, richiedono un sia pur minimo grado di competenza in materia.

Ed ecco il grafico di una previsione statistica, con opportuno corredo di parametri sulla sua attendibilità:

Microsoft-Machine-Learning-5

I passi di un progetto Machine Learning

I passaggi che qui percorriamo sono descritti in dettaglio nel tutorial online già citato: ne forniamo una rapida sintesi, facente seguito alle illustrazioni generali e alle immagini fornite sopra, per semplificarne la comprensione e avere immediatamente una vista complessiva del sistema:

Passo 1. Creazione di un cosiddetto Workspace ML, con tanto di credenziali del nuovo sviluppatore, precisamente nell’ambiente ML Studio di Azure ML.

Passo 2. Scelta di un dataset. Per creare un modello previsionale il tutorial adotta un dataset messo a disposizione di studiosi dall’UCI (Università della California a Irvin) su un Repository dedicato al Machine Learning. Eccone l’URL: http://archive.ics.uci.edu/ml/datasets/Statlog+(German+Credit+Data). 
Si tratta di una tabella relativa a 1000 titolari di carte di credito in Germania con campi contenenti informazioni finanziarie, occupazione e così via, nonché il livello di rischio associato a ciascun soggetto. Il tutorial indica anche criteri pratici per valutare l’attendibilità di tale indicazione. Questa fase si compone a sua volta di due operazioni. La prima è la conversione del formato del dataset. Quello dell’UCI è un formato separato da blank, mentre Azure ML privilegia il CSV (Comma Separated Value). Ed ecco il primo intervento dello sviluppatore, pur semplice ma che richiede competenza. Con Windows Power Shell si ha: 
sed 's/ /,/g' german.data > german.csv. La seconda operazione è l’upload del dataset dal PC a ML Studio. Per brevità ne omettiamo i dettagli, dandoli come intuibili.

Passo 3. Creazione di un nuovo esperimento ML. Le fasi di questo passo cruciale sono state già illustrate per sommi capi dalle figure che corredano l’articolo. Delle innumerevoli particolarità citiamo l’intervento relativo ai metadati con il modulo ad hoc Metadata Editor, ove si fissano proprietà e si ridanno nomi ai campi, seguito dalla creazione dei dataset di test e training, in cui si usa il modulo Execute R Script per redigere script come quello che riportiamo qui sotto:

dataset1 <- maml.mapInputPort(1)

data.set<-dataset1[dataset1[,21]==1,]

pos<-dataset1[dataset1[,21]==2,]

for (i in 1:5) data.set<-rbind(data.set,pos)

maml.mapOutputPort("data.set")

Anche queste operazioni sono riservate a gente con un minimo di padronanza in Information Technology.

Passo 4. Utilizzo e valutazione dei modelli di analisi predittiva. Su tale punto, essendo questa una recensione e non un manuale, ci limitiamo a ritenere che la scelta del tipo di statistica dal repertorio di Azure ML è molto delicata per evitare il rischio di risultati falsi e fuorvianti.

Passo 5. Pubblicazione del servizio web Azure Machine Learning (fase preparatoria). Scopo di questa fase e della successiva è consentire ad altra gente l’uso del nostro modello previsionale. Lo si ottiene pubblicandolo come web service di Azure. Nel nostro caso l’utente dovrebbe limitarsi a fornire una propria fonte, ricavandone una previsione del rischio sul credito.

Passo 6. Accesso al servizio Azure Machine Learning. Costituisce la conclusione del lavoro di pubblicazione. In questa sede si debbono utilizzare particolari API, anche allo scopo di rendere al massimo trasparente e facile l’uso del nostro servizio Azure ML anche da parte di utenti finali. E qui l’intervento di un programmatore qualificato è d’obbligo, come testimonia il listato fornito dal tutorial.

Riflessioni conclusive

Potenzialmente Azure ML trova impiego nei campi più vari. Si spazia dalle analisi di mercato, cosa cui tutti pensano, a indagini in chimica molecolare e diremmo che tutti i settori un tempo inquadrati nella Ricerca operativa possano trovare copertura.

La nostra sperimentazione ci ha permesso di comprendere l’operatività concreta di questo brillante servizio Azure. Anche se il tutorial seguito si riferisce a una tabella di soli 1000 record Azure ML si applica anche a Big Data e, in genere, a dati sia relazionali che NoSQL (tramite Hadoop e simili) nonché a fonti inusuali (sensori dell’emergente arena M2M, Machine to Machine).

Quel che in tutta onestà non abbiamo potuto valutare a fondo è la parte degli algoritmi, il cui insieme è ampio e variegato. Tuttavia dubitiamo che l’ideale della teoria sul Machine Learning, ossia l’individuazione meccanica di quello più adatto venga esaudito quasi miracolosamente. Riflettendo meglio, alla fine ci siamo convinti che si tratti di un versatile ausilio per guidare l’utilizzatore nella scelta. Fabio Santini dichiara che Azure ML è una palestra in cui “Si danno strumenti per assemblare gli algoritmi, fare delle prove, cambiare gli algoritmi, reinserire i risultati di una elaborazione precedente, sulla base dei quali Azure ML apprende gradualmente e aiuta a prendere decisioni.” Come abbiamo constatato l’ambiente è scalabile e strutturato in modo di gran lunga più semplice rispetto ai tool statistici tradizionali, comunque richiede un utilizzatore dotato perlomeno di nozioni generali in IT e in Statistica (oggi chiamato Data Scientist). Il quale avvalendosi di Azure ML dovrà, cum grano salis, procedere provando e riprovando per pervenire alla soluzione ottimale.
Come si paga Azure ML
Comprende una sezione ML Studio e una API ML (per sviluppo soluzioni). Premesso che i sottoscrittori di Azure ne usufruiscono senza aggravi, ML Studio è offerto in due modalità: gratuita e standard. La prima consente prove con fino a 10 GB di dati personali. La seconda è attualmente disponibile in anteprima. Qui ci limitiamo a indicare due tariffe orarie.
ML Studio Service: € 0,2383/ora di esperimento.
Servizio API: € 0,5586/ora di predizione
Per maggiori dettagli: http://azure.microsoft.com/it-it/pricing/details/machine-learning/

Ultima modifica ilDomenica, 26 Aprile 2015 08:47

Aggiungi commento


Codice di sicurezza
Aggiorna

Torna in alto