Simone Scardapane

TensorFlow: resoconto secondo incontro Meetup "Machine-Learning e Data Science" Roma (19 febbraio 2017)

170219-tensorflow.jpg

Il 16 febbraio 2017 si è svolto a Roma – presso il Talent Garden di Cinecittà - il secondo incontro del Meetup "Machine Learning e Data Science" (web, fb, slideshare): l’incontro - organizzato insieme al Google Developer Group Roma Lazio Abruzzo   - è stato dedicato alla presentazione di TensorFlow,  la soluzione di Google per il deep learning nel machine learning.

Nel seguito una breve sintesi dell’incontro del 16 febbraio 2017.

Prima di iniziare:

•    Cos’è il Machine Learning? Intervista a Simone Scardapane sul Machine Learning Lab (1 dicembre 2016)
•    Cos’è TensorFlow? Andrea Bessi, “TensorFlow CodeLab”, Nov 16, 2016

Resoconto

Premessa

Il 15 Febbraio 2017 a Mountain View (USA) si è tenuto il “TensorFlow Dev Summit” , il primo evento ufficiale di Google dedicato a TensorFlow, la soluzione di deep learning rilasciato circa un anno fa e giunta adesso alla versione 1.0 “production ready”.
Il “TensorFlow Dev Summit” è stato aperto da un keynote di Jeff Dean (wiki, web, lk) - Google Senior Fellow - Rajat Monga (tw) - TensorFlow leader nel Google Brain team - e Megan Kacholia (lk) Engineering Director del TensorFlow/Brain team.

Per approfonsire il #TFDevSummit 2017:

L’incontro del Meetup "Machine-Learning” di Roma è stata un’occasione per rivedere insieme e commentare il video e fare anche una breve presentazione di TensorFlow.
Alla fine dell'evento c’è stato un piccolo rinfresco aperto a tutti gli appassionati di deep learning a Roma.

Simone Scardapane: “TensorFlow and Google, one year of exciting breakthroughs”

Simone (mup, web, fb, lk) ha aperto l’incontro con una breve presentazione sul deep learning e TensorFlow.
“TensorFlow” ha detto Simone “ ha reso accessibili a tutti le reti neurali che sono alla base del deep learning e dell’intelligenza artificiale. Prima di TensorFlow c’era una oggettiva difficoltà nel gestire e allenare reti neurali vaste e complesse”.
Le moderne architetture di deep learning usano infatti reti neurali molto complesse: ad esempio nelle applicazioni di data imaging  i modelli architetturali prevedono decine di milioni di parametri.

170219-reteneurale.jpg

(Rete neurale, immagine tratta da http://joelouismarino.github.io/blog_posts/blog_googlenet_keras.html)

Uno dei grossi vantaggi di TensorFlow è che permette di definire una rete neurale in modo simbolico: lo strumento fornisce inoltre un compilatore efficiente che gestisce in automatico il processo di back-propagation.
TensorFlow può essere utilizzato inoltre con una interfaccia semplificata come Keras arrivando quasi ad una sorta di programmazione dichiarativa.
La prima release di TensorFlow – ha ricordato Simone - è stata rilasciata nel novembre 2015 con licenza aperta Apache 2.0  (cos’è?). Il 15 febbraio 2017 – durante il TFDevSummit - è stata annunciata la versione 1.0 di TensorFlow la prima “production ready”.
La disponibilità di un ambiente deep learning aperto e “user-friendly” ha permesso lo sviluppo di una vasta comunità di esperti, ricercatori e semplici appassionati e il rilascio applicazioni software di grande impatto. Simone ha mostrato alcuni esempi.

1) Neural image captioning: software in grado di riconoscere e descrivere o sottotitolare immagini.

170216-tensorflow-s2.jpg
 

170216-ragazzo-aquilone.jpg

170216-tren-b-n.jpg

2) Google Neural Machine Translation (GNMT)  che ha permesso il rifacimento di “Google translator” grazie al deep learning: invece di tradurre parola per parola ora è possibile analizza il testo nella sua interezza cogliendo significato e il contesto con un livello di accuratezza ormai vicino alla traduzione umana.

nmt-model-fast.jpg

170216-neural-translation.jpg
170216-neural-translation2.jpg

3) Generative Adversarial Networks (GANS) sistemi capaci di generare nuovi dati grazie a un emenorme “training set” e che lavorano con una coppia di reti neurali: la prima produce nuovi dati la seconda controlla la “bontà” del risultato; questi sistemi sono già stati usati per generare immagini artificiali, scenari per video-game, migliorare immagini e riprese video di scarsa qualità.

170216-generative-image

4) Alphago: il deep learning è anche alla base dei recenti spettacolari successi dell’IA nel campo dei giochi da tavolo come la vittoria di Alphago di Google  contro il campione del mondo di GO.

170216-alphago.jpg

5) WaveNet - a generative model for raw audio - capace di generare discorsi che imitano una voce umana con molta più “naturalezza” rispetto ai migliori sistemi di Text-to-Speech oggi esistenti. WaveNet è già stato utilizzato anche per creare musica artificiale.

Simone ha concluso il suo intervento ricordando che di deep learning e ML si parlerà anche in un track specifico alla Data Driven Innovation Roma 2017   che si terrà presso la 3° università di Roma il 24 e 25 febbraio 2017.

Sintesi del keynote di Jeff Dean, Rajat Monga e Megan Kacholia su TensorFlow

Il keynote di apertura del TF DevSummit 2017 condotto da Jeff Dean, Rajat Monga e Megan Kacholia  ha trattato:

  • origini e storia di TensorFlow
  • i progressi da quanto è stata rilasciata la prima versione opensource di TensorFlow
  • la crescente comunità open-source di TensorFlow
  • performance e scalabilityà di TensorFlow
  • applicazioni di TensorFlow
  • exciting announcements!

Jeff Dean

jeff dean.jpg

Jeff ha detto che l’obiettivo di Google con TensorFlow è costruire una “machine learning platform” utilizzabile da chiunque.
TensorFlow è stato rilasciato circa un anno fa ma le attività di Google nel campo del machine learning e deep learning sono iniziati 5 anni fa.
Il primo sistema realizzato – nel 2012 – è stato DistBelief un sistema proprietario di reti neurali adatto ad un ambiente produzione come quello di Google basato su sistemi distribuiti (vedi “Large Scale Distributed Deep Networks” in pdf). DistBelief è stato utilizzato in molti prodotti Google di successo come Google Search, Google Voice Search, advertising, Google Photos, Google Maps, Google Street View, Google Translate, YouTube.
Ma DistBelief aveva molti limiti: “volevamo un sistema molto più flessibile e general purpose” ha detto Jeff “che fosse open source e che venisse adottato e sviluppato da una vasta comunità in tutto il mondo e orientato non solo alla produzione ma anche alla ricerca. Così nel 2016 abbiamo annunciato TensorFlow, una soluzione capace di girare in molteplici ambienti compreso IOS, Android, Raspberry PI, capace di girare su CPU, GPU e TPU, ma anche sul Cloud di Goole ed essere interfacciata da linguaggi come Python, C++, GO, Hasknell, R”.

170216-tensorflow-keynote1.jpg
TensorFlow ha anche sofisticati tool per la visualizzazione dei dati e questo ha facilitato lo sviluppo di una vasta comunità open source intorno a TensorFlow.

170216-tensorflow-keynote2.jpg

Rajat Monga

rajatmonga2.jpg

Rajat Monga ha ufficialmente annunciato il rilascio della versione 1.0 di TensorFlow illustrandone le nuove caratteristiche.

170216-tensorflow-keynote3.jpg

170216-tensorflow-keynote4.jpg

Rajat ha poi illustrato le nuove API di TensorFlow

170218-tf-model.jpg

TensorFlow 1.0 supporta IBM's PowerAI distribution, Movidius Myriad 2 accelerator, Qualcomm SnapDragon Hexagon DSP. Rajat ha annunciato anche la disponibilità di XLA an experimental TensorFlow compiler  specializzato nella compilazione just-in-time e nei calcoli algebrici.

170218-tf-xla.jpg

Megan Kacholia

megankacholia2.jpg

Megan Kacholia ha approfondito il tema delle performancedi TensorFlow 1.0.

170216-tensorflow-keynote7.jpg

In ambiente di produzione si possono utilizzare  molteplici architetture: server farm, CPU-GPU-TPU, server a bassa latenza (come nel mobile) perché TensorFlow 1.0 è ottimizzato per garantire ottime performance in tutti gli ambienti.

170218-tf-performance1.jpg

Megan ha poi illustrato esempi dell’uso di TensorFlow in ricerche d'avanguardia - cutting-edge research – e applicazioni pratiche in ambiente mobile.

170218-tf-research2.jpg

170218-tf-research1.jpg

Conclusione del keynote

In conclusione del Keynote è di nuovo intervenuto Jeff per ringraziare tutti coloro che contribuiscono alla comunità di TensorFlow pur non facendo parte di Google.
“Dalla comunità” ha detto Jeff “arrivano suggerimenti, richieste e anche soluzioni brillanti a cui in Google non avevamo ancora pensato” citando il caso di un agricoltore giapponese che ha sviluppato un’applicazione con TensorFlow su Raspberry PI per riconoscere i cetrioli storti e scartarli nella fase di impacchettamento.
Nel campo della medicina – ha ricordato Jeff – TensorFlow è stato usato per la diagnostica della retinopatia diabetica (qui una sintesi) e all’università di Stanford per la cura del cancro della pelle .

Contatti

•    Meetup “Machine-Learning e Data Science” di Roma: - sito web e pagina Facebook

Approfondimenti

Video

Ulteriori informazioni su TensorFlow

Leggi anche

AG-Vocabolario: