I principali framework per la ML

I principali framework a disposizione per un progetto di Machine Learning sono:

  1. Apache Singa è una piattaforma di distributed deep learning platform per l’allenamento di modelli big deep learning su grandi datasets. È stato progettato con un modello di programmazione intuitivo basato sull’astrazione del layer. Sono supportati i principali modelli di deep learning quali: convolutional neural networks (CNN), energy models come restricted Boltzmann machine (RBM) e (RNN).
  2. Amazon Machine Learning  è un servizio che rende facile, per gli sviluppatori di tutti i livelli, utilizzare la modellazione di ML. Amazon Machine Learning fornisce strumenti di visualizzazione e procedure guidate che guidano il processo di creazione di modelli di apprendimento automatico (ML) senza dover imparare algoritmi complessi ML e la relativa tecnologia di basso livello. Si connette ai dati memorizzati su Amazon S3, Redshift o RDS e può eseguire la classificazione binaria, la classificazione multiclasse o la regressione su tali dati per creare un modello.
  3. Azure ML Studio consente agli utenti di Microsoft Azure di creare e addestrare modelli, quindi trasformarli in API che possono essere consumate da altri servizi. Gli utenti possono ottenere fino a 10 GB di archiviazione per conto per i dati del modello, anche se è possibile anche collegare il proprio storage Azure al servizio per i modelli più grandi. Sono disponibili un’ampia gamma di algoritmi, sia a Microsoft sia a terzi. Non hai nemmeno bisogno di un account per provare il servizio; è possibile accedere in forma anonima e utilizzare Azure ML Studio per un massimo di otto ore.
  4. Caffe è un deep learning framework realizzato con un focus su velocità e modularità. È stato sviluppato dalla Berkeley Vision and Learning Center (BVLC) e da una community di sviluppatori. Yangqing Jia ha creato questo progetto durante il suo dottorato (PhD) presso la UC Berkeley. Caffe è rilasciato sotto la licenza BSD 2-Clause.  Modelli e ottimizzazione sono definiti tramite configurazioni senza dover impostare codice di basso di livello e l’utente può scegliere di passare da CPU a GPU. La velocità fa di Caffe il framework perfetto per la ricerca e per sviluppi di tipo industriale. Caffe può processare oltre 60M immagini al giorno con un singolo processore grafico NVIDIA K40 GPU.
  5. H2O consente a chiunque di applicare facilmente la matematica e l’analisi predittiva per risolvere i problemi aziendali più impegnativi. Combina in modo intelligente le funzionalità uniche non presenti in altre piattaforme per l’apprendimento delle macchine, tra cui: Best of Breed Open Source, Easy-to-Use WebUI e Familiar Interfaces, Supporto Agnostico dei dati per tutti i tipi comuni di database e file. Con H2O è possibile lavorare con i propri linguaggi e strumenti preferiti. Inoltre, è possibile estendere la piattaforma agli ambienti Hadoop.
  6. Massive Online Analysis (MOA) è il framework open source più diffuso per l’estrazione del flusso di dati, con una comunità in crescita molto attiva. Esso comprende una raccolta di algoritmi di ML (classification, regressionclusteringoutlier detection, concept drift detection and recommender systems) e strumenti per la valutazione. Connesso al progetto WEKA, anche MOA è scritto in Java, mentre è scalabile a problemi più esigenti.
  7. MLlib (Spark)  è la libreria ML di Apache Spark. Il suo obiettivo è quello di rendere scalabile e facile l’applicazione di algoritmi di ML. È costituito da comuni algoritmi di apprendimento e utilità, compresa la classificazione, la regressione, il clustering, il filtro collaborativo, la riduzione della dimensione, nonché le primitive di ottimizzazione di livello inferiore e le API di alto livello.
  8. mlpack, è una libreria di apprendimento automatico basata su C ++ originariamente sviluppata nel 2011 e progettata per “scalabilità, velocità e facilità d’uso”, secondo i creatori della biblioteca. L’implementazione di mlpack può essere eseguita tramite una cache di eseguibili di riga di comando per operazioni veloci, “black box” o con un’API C ++ per un lavoro più sofisticato. Mlpack fornisce questi algoritmi come semplici programmi di riga di comando e classi C ++ che possono quindi essere integrate in soluzioni di ML su larga scala.
  9. Pattern è un modulo di web-mining per il linguaggio Python. Ha strumenti per l’estrazione dei dati (Google, Twitter and Wikipedia API, un web crawler, e un parser HTML), per il natural language processing (part-of-speech taggers, n-gram search, sentiment analysis, WordNet), e per il machine learning (vector space model, clustering, SVM), oltre ad analisi di reti e <canvas> visualization.
  10. Scikit-Learn sfrutta l’ampio spettro di utilizzo di Python, ed coordina diversi pacchetti Python esistenti – NumPy, SciPy e matplotlib – per il lavoro matematico e scientifico. Le librerie risultanti possono essere utilizzate sia per le applicazioni “workbench” interattive o essere incorporate in altri software e riutilizzate. Il kit è disponibile sotto una licenza BSD, quindi è completamente aperto e riutilizzabile. Scikit-learn include strumenti per molti compiti standard di machine-learning (quali clustering, classification, regression, etc.). E poiché scikit-learn è sviluppata da una ampia comunità di sviluppatori ed esperti di ML, eventuali nuove funzionalità man mano sviluppate e testate vengono aggiunte man mano alla libreria.
  11. Shogun è tra le più antiche, più venerate delle librerie di apprendimento automatico, Shogun è stato creato nel 1999 e scritto in C ++, ma non è limitato a lavorare in C ++. Grazie al SWIG library, Shogun può essere utilizzato in modo trasparente in tali lingue e ambienti: Java, Python, C#, Ruby, R, Lua, Octave e Matlab. Shogun è progettato per un apprendimento su vasta scala unificato per una vasta gamma di tipi di funzioni e impostazioni di apprendimento, come la classificazione, la regressione o l’analisi dei dati esplorativi.
  12. TensorFlow è una libreria di software open source per il calcolo numerico che utilizza grafici di flusso di dati. TensorFlow implementa i cosiddetti grafici di flusso di dati, in cui i blocchi di dati (“tensori”) possono essere elaborati da una serie di algoritmi descritti da un grafico. Lo scambio dei dati attraverso il sistema prende il nome di “flussi” – da cui il nome della libreria. I grafici possono essere realizzati con C ++ o Python e possono essere elaborati su CPU o GPU.
  13. Theano è una libreria Python che consente di definire, ottimizzare e valutare le espressioni matematiche, in particolare quelle con matrici multidimensionali (numpy.ndarray). Utilizzando Theano è possibile raggiungere velocità che competono con le implementazioni manuali C per problemi che implicano grandi quantità di dati. E ‘stato scritto presso il laboratorio LISA per sostenere il rapido sviluppo di efficienti algoritmi di apprendimento macchina. Theano è chiamato in onore del matematica greca. Theano è rilasciata sotto la licenza BSD.
  14. Torch è un framework scientifico di calcolo con ampio supporto per gli algoritmi di apprendimento macchina che mette prima le GPU. È facile da usare ed efficiente, grazie a un linguaggio di scripting facile e veloce, LuaJIT, e un’implementazione C / CUDA . L’obiettivo di Torch è quello di avere la massima flessibilità e velocità nella costruzione di algoritmi scientifici, rendendo il processo estremamente semplice. Torch è dotata di ampio ecosistema di pacchetti community-driven di machine learning, computer vision, signal processing, parallel processing, image, video, audio e networking.
  15. Veles è una piattaforma distribuita per applicazioni ML scritta in C ++, anche se utilizza Python per eseguire l’automazione e il coordinamento tra i nodi. I set di dati possono essere analizzati e normalizzati automaticamente prima di essere alimentati al cluster e un’applicazione REST consente di utilizzare immediatamente il modello addestrato nella produzione. Si concentra sulle prestazioni e la flessibilità.
4 anni ago