Machine Learning: le librerie

Per capire i meccanismi fondamentali del machine learning abbiamo sviluppato un perceptron e una piccola rete neurale direttamente in python. Naturalmente per applicazioni reali in cui è necessario analizzare una notevole quantità di dati complessi non è il caso di reinventare la ruota scrivendo gli algoritmi di machine learning da zero.

La scelta migliore è quella di affidarsi ad una delle librerie per il machine learning disponibili sul web. Per non perdersi tra il mare di alternative disponibili c’è questo articolo: una (personale) valutazione dei framework migliori. Tutti disponibili gratuitamente per l’uso.

 

TensorFlow

Probabilmente la libreria open source più nota. Open Source e sviluppata direttamente da Google. La libreria mette a disposizione una serie di API che semplificano, e di molto, le operazioni di calcolo. La documentazione è completa e i tutorial abbondano, sia per i neofiti che per i sviluppatori con esperienza nel campo.

LINK: https://www.tensorflow.org

 

 

Theano

Questa in realtà non è una libreria per algoritmi di apprendimento. Si tratta piuttosto di un’insieme di strumenti (in python) che permette di elaborare strutture multidimensionali in moto semplice ed efficiente dal punto di vista delle performance. Può sfruttare le risorse di calcolo delle GPU per velocizzare in modo significativo le operazioni.

LINK: http://deeplearning.net/software/theano/

 

Keras

Questa mi piace parecchio.  TensorFlow e  Theano in un’unica libreria di alto livello che ne semplifica l’utilizzo. Modulare, facilmente estendibile e minimalista quanto basta per non perdere di versatilità.

LINK: https://keras.io

 

Blocks

Un elegante wrap per Theano, che lavora benissimo in coppia con fuel per processare i dataset. Molto interessante la funzionalità di Live Plotting che sfrutta  Bokeh per la visualizzazione grafica dei dati.

LINK: https://blocks.readthedocs.io/en/latest/

 

Lasagne

Una libreria di alto livello per Theano che coniuga la leggerezza ad una curva di apprendimento rapida. La libreria è in continua evoluzione, tutto il codice è disponibile in un repository GitHub.

LINK: https://lasagne.readthedocs.io/en/latest/

 

Caffe

Licenza BSD, sviluppata a Berkeley. Veloce, stabile e in grado di utilizzare CPU o GPU per i calcoli. Probabilmente non è la più immediata ma la documentazione e gli esempi disponibili sono sufficienti a prendere dimestichezza con il framework.

LINK: http://caffe.berkeleyvision.org

 

Ne esistono altre ma un’articolo più lungo sarebbe poco utile, basta utilizzare Google per trovarle in breve tempo. Ma quale di queste scegliere? Non esiste la risposta universale a questa domanda perché bisogna conoscerle  e  valutare di volta in volta quale è la più adeguata al progetto che hai in mente..