Big Data, AI e ML (4)

Corso pratico di Machine Learning & Artificial Intelligence

Negli ultimi anni “Machine Learning” e “AI” sono fra le parole più usate e ricercate. La ragione di ciò è dovuta principalmente all’aumento esponenziale della quantità di dati prodotti, all’incremento della potenza di calcolo e ai progressi effettuati nello sviluppo di algoritmi più efficienti.

Il Machine Learning viene utilizzato ovunque, spesso a nostra insaputa, con lo scopo di creare nuovo valore dai dati, per le aziende di ogni settore. Buona parte degli strumenti che utilizziamo giornalmente, dai sistemi di raccomandazione al riconoscimento facciale, dai fitness tracker agli assistenti domestici, analizzano i dati e prendono decisioni tramite questi algoritmi. I casi di applicabilità sono numerosi e spesso, sono limitati solo dalla fantasia.

Gli obiettivi principali del Machine Learning consistono nel comprendere la struttura dei dati, analizzarli tramite algoritmi e modelli intelligenti e generare nuovi insight che possono essere facilmente compresi e utilizzati dalle persone. Rispetto alla programmazione tradizionale, gli algoritmi di Machine Learning possono imparare dai dati di input e, tramite l’utilizzo dell'analisi statistica, produrre predizioni, classificare informazioni, prendere decisioni, riconoscere immagini e suoni ed altro ancora.

Questo corso, partendo da una panoramica sulle metodologie e sui modelli più diffusi, apprendimento supervisionato versus non supervisionato e approcci algoritmici più comuni, si pone l’obbiettivo di fornire ai discenti le basi teorico-pratiche per iniziare ad applicare i principali algoritmi di Machine Learning ai propri casi reali. Gli esempi sono implementati in linguaggio Python utilizzando le librerie di M.L. più diffuse.

Destinatari

  • Analisti
  • Progettisti
  • Sviluppatori
  • Data Analyst
  • Chiunque sia interessato ad approfondire, in modo pratico, i concetti relativi al Machine Learning

Prerequisiti

  • Conoscenze base di programmazione
  • Consigliata conoscenza dei principali concetti di statistic
  • Consigliata conoscenza base del linguaggio di programmazione Python

Requisiti per l'aula

  • Video proiettore con risoluzione minima nativa di 1024x768 (meglio se superiore)
  • Connessione internet non filtrata per il portatile del docente
  • Essendo un corso pratico i discenti dovranno essere forniti di un PC

NOTA: il docente utilizzerà un proprio portatile sul quale sono installati tutti gli esempi del corso. Se questo non fosse possibile, è necessario concordare in anticipo la predisposizione di un PC fornito dal cliente.

Contenuti

  • Breve introduzione ad AI e ML - Cosa sono, a cosa servono e differenze fra i concetti; il processo di Machine Learning; che cos’è un modello; apprendimento supervisionato versus non supervisionato; introduzione ai modelli di Machine Learning più diffusi; criteri di scelta fra i modelli.
  • Setup di un ambiente per le sperimentazioni (Jupyter Notebook e Anaconda).
  • Introduzione a Data Exploration, Analysis e Visualization (Pandas, Matplotlib, Plotly).
  • Analisi dei dati e loro visualizzazione - Lettura, scrittura e Creazione di dati; indicizzazione, selezione, assegnazione e rinomina dei dati; riepilogo, mappe e reportistica sui dati; visualizzazione dei dati (principali formati tabellari e grafici).
  • Introduzione al processo di Data Preparation (Pandas).
  • Data Preparation - Raggruppamento e ordinamento dei dati: grouping, pivoting e joining; features selection; gestione dei dati errati; gestione dei valori mancanti; manipolazione di set di dati in 1D, 2D e 3D; normalizzazione dei dati; divisione e creazione dei dataset fra Training e Testing.
  • Introduzione ai diversi modelli e loro utilizzi (Scikit-learn e Keras).
  • Implementazione dei Modelli Classici - Apprendimento supervisionato - Regressione Lineare e Logistica; classificazione (SVM, Decision Tree, Random Forest); Apprendimento non supervisionato - clustering (K-nearest neighbor); PCA; Apprendimento per rinforzo - Q–Learning.
  • Introduzione alle Reti Neurali - Introduzione ai modelli e diversi casi d’uso; Perceptron; CNN; LSTM.
  • Validazione dei modelli - Scoring (CM, ROC), interpretazione risultati.
  • Esercitazioni

Durata

3 giorni (introduttivo) 5 giorni (avanzato)

 

 

 

Blockchain

La Blockchain, basata sulla, Distributed Ledger Technology è una struttura dati che consente lo scambio diretto di token tra diverse parti contrattanti all'interno di una rete senza la necessità di intermediari. Nata da ormai dieci anni come parte del protocollo Bitcoin per lo scambio di valuta virtuale, oggi si ipotizza il suo utilizzo in tutti quegli ambiti in cui è necessario scambiare informazioni in modo sicuro, non alterabile e validato quali, ad esempio, transazioni bancarie, atti notarili, etc.
Ma in cosa consistono le blockchain? Quali sono i reali vantaggi di questi strumenti? Sono davvero così sicure? Esistono degli svantaggi nel loro utilizzo?
Questo seminario, tramite l'esposizione di esempi pratici e casi d'uso, vuole rispondere a queste domande e fornite un corredo teorico-pratico per il loro utilizzo all'interno delle aziende.

Destinatari

  • Capi progetto
  • Analisti
  • Progettisti
  • Sviluppatori
  • Chiunque sia interessato ad approfondire i concetti relativi alle blockchain.

Prerequisiti

Conoscenze base sulle tecnologie Internet, sulle applicazioni distribuite e sulla crittografia.

Requisiti per l'aula

  • Video proiettore con risoluzione minima nativa di 1024x768 (meglio se superiore)
  • Connessione internet non filtrata per il portatile del docente
  • Lavagna a fogli mobili con pennarelli di diversi colori (o strumenti equivalenti)

NOTA: il docente utilizzerà un proprio portatile sul quale sono installati tutti gli esempi del corso. Se questo non fosse possibile è necessario concordare in anticipo la predisposizione di un PC fornito dal cliente.

Contenuti

  • Introduzione – cosa sono le blockchain; tipologie: public, permissioned, private, semi-private, etc; cenni sulla crittografia; cenni sulle funzioni di hash; il teorema CAP; il problema dei generali Bizantini; principali campi di applicazion;. i tre livelli di blockchain.
  • Proprietà caratteristiche – consenso distribuito; verifica delle transazioni; criptovaluta; smart property; immutabilita; unicità; smart contracts.
  • Architettura di una blockchain – database distribuito; nodi; il registro delle transazioni; indirizzi; blocchi; rete peer-to-peer.
  • Esempi di blockchain -  funzionamento e campi di applicazione;  bitcoin, ethereum, hyperledger
  • Casi d’uso e applicazioni pratiche: scambio di valuta; stipula di contratti; discussione collettiva su possibili applicazioni nel dominio del cliente.
  • Tecnologie, strumenti e piattaforme – linguaggi e strumenti per programmare una blockchain; principali piattaforme disponibili.
  • Sicurezza e privacy di una blockchain – quando sono sicure le blockchain; principali problemi relativi alla sicurezza e alla privacy.

Durata

2 giorni

 

NoSQL Databases: Tecnologie e Problematiche

 

Al giorno d’oggi sono generate enormi quantità di dati eterogenei aventi strutture non sempre riconducibili a formati “relazionali”. La moda è di memorizzare questi dati su Hadoop. Tale soluzione, però, non è sempre la più indicata per motivi di complessità dell’architettura, pesantezza delle componenti e difficoltà di scrittura delle analytics. I database NoSQL, non necessariamente legati al mondo dei BigData, se utilizzati per elaborare determinati tipi di informazioni consentono di implementare soluzioni più agili rispetto ad un file system distribuito e di implementare query molto performanti. Questo seminario, dopo aver descritto le principali tipologie di database NoSQL, vuole mostrare, mediante la descrizione di esempi pratici, le funzionalità dei principali prodotti, i campi di applicazione e i relativi vantaggi e svantaggi.

Destinatari

  • Capi progetto
  • Analisti
  • Progettisti
  • Sviluppatori
  • Chiunque sia interessato ad approfondire i concetti relativi ai database NoSQL

Prerequisiti

Conoscenze base sulle tecnologie Internet e sulle applicazioni distribuite.

Requisiti per l'aula

  • Video proiettore con risoluzione minima nativa di 1024x768 (meglio se superiore)
  • Connessione internet non filtrata per il portatile del docente
  • Lavagna a fogli mobili con pennarelli di diversi colori (o strumenti equivalenti)

NOTA: il docente utilizzerà un proprio portatile sul quale sono installati tutti gli esempi del corso. Se questo non fosse possibile è necessario concordare in anticipo la predisposizione di un PC fornito dal cliente.

Contenuti

  • Introduzione – Principali tipologie di dati; Small Data e Big Data; Classificazione dei DBMS (OldSQL, NewSQL, NoSQL) e principali differenze; cosa sono i database NoSQL; principali caratteristiche; il teorema CAP; Classificazione dei database NoSQL;
  • Database chiave-valore – dizionari e hash table; principali funzionalità; data modelling; modelli e pattern architetturali; campi di applicazione; principali database chiave-valore (Redis, BigTable,…); esempi pratici di utilizzo.
  • Database documentali – cosa si intende per “document”; struttura gerarchica; collezioni di document; principali funzionalità; data modelling; modelli e pattern architetturali; campi di applicazione; principali database documentali (MongoDB, CouchDB, CouchBase,…); esempi pratici di utilizzo. 
  • Database colonnari o orientati alle tabelle: tabelle estese (indice di riga, colonna e temporale); column family e super column family; tabelle nidificate; principali funzionalità; data modelling; modelli e pattern architetturali; campi di applicazione; principali database colonnari (Cassandra, Hbase, ,…); esempi pratici di utilizzo.
  • Database a grafo – strutture reticolari, ad albero e a grafo; tipologie di elaborazione su modelli a grafo; principali funzionalità; data modelling; modelli e pattern architetturali; campi di applicazione; principali database a grafo (Neo4J, OrientDB…); esempi pratici di utilizzo.
  • Database ad Oggetti: cosa si intende con oggetto; il paradigma object oriented; principali funzionalità; data modelling; modelli e pattern architetturali; campi di applicazione; principali database object-oriented (Redis, BigTable,…); esempi pratici di utilizzo.
  • Database Multivariate – quando il DBMS implementa più modelli
  • Database NoSQL Specializzati – suite di ricerca: SOLR e Elasticsearch; Blockchain.
  • NoSQL e Hadoop: database NoSQL nativi per Hadoop; integrazione fra Hadoop e NoSQL: trarre il meglio dai due mondi;
  • Integrazione con i sistemi aziendali esistenti – architetture di integrazione; forward e reverse engineering; conversione da e verso RDBMS; strumenti utilizzabili (Es. ErWin);
  • Problematiche di sicurezza e privacy – principali problematiche di sicurezza e privacy dei database NoSQL; policy di accesso; cifratura delle informazioni; strumenti di sicurezza forniti;
  • Governance – principali problematiche relative alla governance; catalogo dei metadati; ruoli e figure professionali; lineage;
  • Casi di studio ed esempi pratici.

Durata

3 giorni

 

 

 

Big Data: Tecnologie e Problematiche

I Big Data rappresentano la principale tendenza in campo informatico degli ultimi anni. Con Big Data si intendono dataset aventi dimensioni e caratteristiche tali da non essere facilmente trattati con sistemi tradizionali quali, ad esempio, i database relazionali. Questo non vuol dire che gli strumenti di gestione dati normalmente presenti in azienda non siano in grado di trattare i big data ma che il loro utilizzo può essere poco produttivo in termini di tempi e costi di elaborazione. A tal fine, gli strumenti tradizionali, possono essere affiancati (mai sostituiti) da nuovi prodotti quali file system distribuiti, database NoSQL e framework di elaborazione distribuita come Apache Spark e, l’ormai superato, map-reduce. La scelta degli strumenti non può essere fatta in modo superficiale e deve essere basata sui requisiti di business dell’azienda (pattern di Polyglot Persistence).

Ma quali caratteristiche devono avere i dati per essere considerati “Big”? Quali vantaggi di business possono derivare dalla loro elaborazione? Quali sono le principali tecnologie per la loro memorizzazione, elaborazione e gestione? Questo corso vuole fornire una panoramica sullo stato dell’arte delle tecnologie e dei processi per la gestione di Big Data in modo da fornire ai discenti strumenti pratici per iniziare ad introdurre questi strumenti in azienda.

Gli argomenti sono descritti tramite l’esposizione di casi di studio reali ed esempi di funzionamento dei principali strumenti trattati.

Destinatari

  • Capi progetto
  • Analisti
  • Progettisti
  • Sviluppatori
  • Chiunque sia interessato ad approfondire i concetti relativi ai Big Data

Prerequisiti

Conoscenze base sui database, sulle tecnologie alla base di internet e delle applicazioni distribuite

Requisiti per l'aula

  • Video proiettore con risoluzione minima nativa di 1024x768 (meglio se superiore)
  • Connessione internet non filtrata per il portatile del docente
  • Lavagna a fogli mobili con pennarelli di diversi colori (o strumenti equivalenti)

NOTA: il docente utilizzerà un proprio portatile sul quale sono installati tutti gli esempi del corso. Se questo non fosse possibile è necessario concordare in anticipo la predisposizione di un PC fornito dal cliente.

Contenuti

  • Introduzione ai Big Data – cosa sono i Big Data; quanto sono grandi i Big Data? Le principali proprietà: volume, velocità, varietà, valore, veracità; classificazione dei Big Data; come individuare i Big Data; sorgenti di provenienza dei Big Data; quali opportunità per il business? Big Data rispetto agli strumenti tradizionali (RDBMS, DWH, BI, …); il processo di gestione dei Big Data.
  • Come memorizzare i Big Data – pattern architetturali per la memorizzazione dei Big Data; utilizzo di file system distribuiti (es. HDFS); database NoSQL e loro classificazione; criteri per la scelta dello strumento di storage in base ai requisiti di business; il concetto di Data Lake: cos’è e come implementarlo; come trasferire i dati da e verso il DataLake; memorizzare i dati in base alle esigenze del business; strumenti per il trasferimento dei dati.
  • Come elaborare e analizzare i Big Data – elaborazione distribuita; Map/Reduce e principali pattern di implementazione; strumenti per l’elaborazione con Map/Reduce  (YARN, TEZ, PIG, …); integrazione con i linguaggi di programmazione tradizionali; Real-time analytics e complex event processing; Utilizzo di Apache Spark; concetti base di Data Mining; advanced analytics e AI.
  • Come interrogare e come visualizzare i Big Data – utilizzo degli strumenti e dei linguaggi di interrogazione nativi; mapping su SQL (Hive, Drill, Impala, ….); integrazione con RDBMS e con strumenti di Business Intelligence tradizionali;
  • Introduzione ad Hadoop – che cos’è Hadoop; principali strumenti forniti; principali pattern architetturali; principali distribuzioni a confronto.
  • Principali NoSQL Database a confronto – architettura, caratteristiche e funzionalità di MongoDB, Cassandra, CouchDB e altri.
  • Integrazione con i sistemi aziendali esistenti – architetture di integrazione; strumenti utilizzabili;
  • Problematiche di sicurezza e privacy – come memorizzare i dati in modo sicuro; gestione multitenancy; politiche di accesso.
  • Big Data Governance – che cos’è la data governance; processo di governance; il repository dei metadati; ruoli e responsabilità; nuove figure professionali (es. Data Scientist).
  • Casi di studio ed esempi pratici.

Durata

3 giorni