Udacity è un’organizzazione educativa che offre corsi online, molti dei quali a pagamento. Quello di oggi è però gratuito: un’introduzione a tensorflow for deep learning.
L’obiettivo del corso è fornire un approccio pratico al deep learning, con un metodo studiato apposta per gli sviluppatori.
Hai capito ben! Un corso introduttivo al deep learning completamente gratuito su una piattaforma esteticamente ineccepibile e soprattutto funzionale.
Intendiamoci, Udacity non versa un centesimo, ma francamente a me interessa maggiormente farti conoscere questa risorsa preziosa: è un trampolino di lancio per la tua carriera, per il nostro futuro!
Basta indugiare, andiamo alla scoperta di Intro to TensorFlow for Deep Learning
Cos’è TensorFlow?
TensorFlow, abbreviato in TF, è una potente libreria open source per la creazione di modelli di machine learning in ambiti di ricerca, e sviluppo prodotti.
Il principio che sta alla base del suo funzionamento è relativamente banale: definiamo con Python un grafo computazionale da eseguire; quindi TensorFlow esegue il grafo attraverso un codice altamente ottimizzato in C++.
Il grafo può poi essere suddiviso in chunk eseguibili parallelamente su multiple CPU o GPU, parola d’ordine: ottimizzazione.
Ciliegina sulla torta, TensorFlow supporta distributed computing permettendoci di gestire reti neurali colossali su giganteschi dataset di training dividendo il costo computazionale su molteplici server.
TensorFlow è in grado di gestire neural network con milioni di parametri su training set da miliardi di istanze con milioni di features.
Grandi numeri, smisurata potenza, ottimi risultati.
Questo perché TensorFlow è stato progettato da Google avendo ben chiaro l’obiettivo finale: realizzare una libreria versatile, flessibile, scalabile, pulita e ben documentata che potesse funzionare tanto in ambito di ricerca quanto in ambiente di produzione (production-ready).
TensorFlow Advantages and Characteristics
A rendere immediata la sua diffusione hanno contribuito diversi fattori.
Vediamo i principali.
- Cross-platform, TensorFlow lavora bene su Windows, macOS, Linux, Android e iOS.
- API, è presente una API chiamata TF.Learn compatibile con Scikit-Learn
- Compatibilità, molte high-level APIs sono state costruite sopra TensorFlow, una di queste Keras è ora ufficialmente integrata
- autodiff, automatic differentiating un metodo built-in usato per calcolare automaticamente i gradienti delle funzioni definite, attraverso una moltitudine di nodi ottimizzati per trovare il parametro che minimizza la cost function
- TensorBoard, una dashboard web che permette di monitorare il processo di training in real-time: computational graph, learning curves e molto altro.
Intro to TensorFlow for Deep Learning
Gestita in larga misura da Google, questa libreria è ormai giunta alla versione 2.0 che porta con sé molte novità e funzionalità.
All’interno del corso di Udacity, sviluppato in collaborazione con il team TF, impareremo a creare da zero dei classificatori d’immagine e sperimenteremo altri modelli.
Non finisce qui.
L’obiettivo è anche quello di sviluppare applicazioni compatibili con piattaforme cloud, mobile, e web-oriented in modo da raggiungere una discreta autonomia e diventare capaci di creare un vero prodotto AI da zero.
Struttura corso
Qui iniziano i dubbi e le perplessità.
Il sito di Udacity relativo al corso riporta la bellezza di 14 moduli.
Una volta iscritto però sono apparentemente 9 i moduli davvero presenti:
- Welcome to the Course, 30 minuti di noiosi convenevoli
- Introduction to Machine Learning, nuovi punti di vista ben accetti.
- Your First Model – Fashion MNIST, ahimé il MNIST. Ricordati di ometterlo dal tuo curriculum.
- Introduction to CNNs, 2h di modulo per un’infarinatura generale sulle Convolutional Neural Network. Giusto qualche layer particolare, come il Max Pooling, ma poco approfondimento
- Going Further With CNNs, una visione approfondita (ma non troppo) sulle Convolutional Neural Network con un progetto pratico, sui cani e fiori… Ancora una volta banale, non ci piace… per iniziare però è ottimo!
- Transfer Learning, utile per capire le dinamiche e logiche di funzionamento di una tecnica molto usata, e giusto una citazione di 2 minuti sul MobileNet. Poi ancora cani e gatti, e fiori
- Saving and Loading Models, nulla di trascendentale e comunque all’interno della piattaforma di Google Colab
- Time Series Forecasting, un modulo contenente 31 sezioni che, ammetto, devo ancora esplorare. Sembrano promettenti! Inoltre sono curate da Aurélien Géron, autore francese di ” Hands-on Machine Learning with Scikit-Learn, Keras and TensorFlow ” libro must have
- Introduction to TensorFlow Lite, un video di pochi minuti inteso come congiunzione con un altro corso gratuito di Udacity basato su TensorFlow Lite, una versione progettata per dispositvi mobili.
Conclusione
Premessa, non posso sbilanciarmi a livello contenutistico.
Non ho fatto il corso, e devo aspettare per poter anche solo accennare a qualche vaga recensione.
L’obiettivo di questo post è quindi quello di fornirti una visione d’insieme sul corso e al contempo un’opinione in più che mai guasta.
Il fatto che si tratti di una risorsa gratuita è per me il valore più alto.
È vero, il corso non è una mappa del tesoro: una volta terminato mentiresti se ti definissi machine learning engineer o cose simili.
Considerando la sua natura, di carattere introduttivo, è a mio avviso un buon punto d’inizio per futuri approfondimenti.
Qualcosa da esaminare, magari in un weekend piovoso.
Un caldo abbraccio, Andrea.
P. S. Ho deciso di dare il benvenuto ai nuovi iscritti all’email list! In questo post tutto l’affetto va a Daniele, e Alberto che ci saluta dalla calda Sardegna!
E te, vuoi essere il prossimo nome della lista?