I migliori strumenti di machine learning per data scientist e sviluppatori

Le aziende sono sempre più interessate alle applicazioni dell’intelligenza artificiale. Ecco venti strumenti per lo sviluppo di modelli di apprendimento automatico

ai-machine learning

Le aziende sono sempre più interessate a integrare l’intelligenza artificiale e l’apprendimento automatico nelle loro operazioni. L’apprendimento automatico, ovvero la capacità di un sistema di apprendere da grandi insiemi di dati anziché seguire le regole predefinite, offre una serie di vantaggi: nei servizi finanziari, per esempio, permette di creare modelli predittivi per la prevenzione delle frodi; nel settore del marketing permette ai retailer di offrire migliori suggerimenti ai loro clienti.

I big dell’IT, quali Google, Microsoft, IBM e AWS, offrono API di apprendimento automatico tramite le rispettive piattaforme cloud, permettendo agli sviluppatori di creare servizi in modo più semplice, alleggerendo in parte la complessità degli algoritmi. C’è anche un numero crescente di framework di apprendimento profondo (deep learning) open source rivolti a sviluppatori e data scientist.

Ecco una selezione dei migliori strumenti di machine learning oggi disponibili.

1. Apache PredictionIO

Apache PredictionIO è un server di apprendimento automatico open source, costruito su uno stack open source per sviluppatori e data scientist. Apache PredictionIO permette di creare motori predittivi per tutte le attività di apprendimento automatico.

Può essere installato come uno stack completo di apprendimento automatico, insieme ad Apache Spark, MLlib, HBase, Spray ed Elasticsearch per semplificare e accelerare la gestione dell’infrastruttura di apprendimento automatico.

Una caratteristica che distingue PredictionIO è la sua capacità di rispondere a query dinamiche in tempo reale, una volta distribuito come servizio web. PredictionIO unifica i dati da più piattaforme in batch o in tempo reale offrendo analisi predittive complete.

PredictionIO fornisce anche un sistema di template per la creazione di motori di machine learning, grazie ai quali si riducono le tradizionali complessità di impostazione dei sistemi ed è possibile rispondere a specifici tipi di previsioni.

2. Accord.NET

Accord.NET è un framework per il calcolo scientifico. Disponibile in .NET, è combinato con librerie di elaborazione di audio e immagini che comprendono una vasta gamma di applicazioni di calcolo scientifico, come l’apprendimento automatico, l’elaborazione di dati statistici e il riconoscimento di pattern.

Inoltre, può essere considerato un framework completo per computer vision, elaborazione audio, elaborazione di segnali e applicazioni statistiche.

In seguito alla fusione con il progetto AForge.NET nel 2015, il framework offre un’API unificata per i modelli di apprendimento automatico.

Accord.NET può essere utilizzato su Microsoft Windows, Xamarin, Unity3D, applicazioni Windows Store, Linux e mobile.

3. Amazon Machine Learning

Amazon Machine Learning offre un servizio gestito per lo sviluppo di previsioni e modelli di apprendimento automatico.

Consente lo sviluppo di applicazioni intelligenti, robuste e scalabili che possono essere utilizzate senza un ampio background in algoritmi e tecniche di apprendimento automatico.

Il servizio consiste di tre operazioni per il processo di costruzione di modelli di apprendimento automatico: analisi dei dati, addestramento del modello e valutazione.

Le funzioni includono anche le API per previsioni batch e in tempo reale per consentire agli utenti di creare facilmente applicazioni intelligenti.

4. Amazon SageMaker

La piattaforma di cloud computing di Amazon Web Services (AWS) è già utilizzata da molti data scientist e sviluppatori per i loro modelli di apprendimento.

In occasione di AWS re: Invent, a novembre 2017, la società ha lanciato SageMaker, una piattaforma di machine learning completamente gestita che intende ridurre le complessità di gestione dei modelli in esecuzione su AWS.

SageMaker è essenzialmente una piattaforma per l’authoring, la formazione e l’implementazione di algoritmi di apprendimento automatico per le applicazioni aziendali senza provisioning dell’infrastruttura, gestione e ottimizzazione dei modelli di formazione.

La piattaforma offre un servizio di sviluppo, addestramento e validazione di modelli distribuiti attraverso cui gli utenti possono scegliere un algoritmo AWS, importare un framework come TensorFlow o scrivere e distribuire il proprio algoritmo con i container Docker, direttamente all’interno di SageMaker.

Per la formazione è sufficiente specificare una posizione in S3 e l’istanza che si desidera utilizzare. SageMaker crea immediatamente un cluster isolato e una rete software-defined con scalabilità automatica e pipeline di dati per iniziare l’addestramento. Quando l’utente ha concluso il lavoro, il cluster viene eliminato.

Per l’hosting del modello vengono utilizzati endpoint HTTP, che possono essere scalati per supportare il traffico e consentire di testare più modelli contemporaneamente. Gli algoritmi possono essere implementati direttamente in produzione utilizzando istanze EC2, e il modello viene distribuito con la scalabilità automatica tra le zone di disponibilità.

I modelli di ottimizzazione procedono tradizionalmente per prove ed errori, ma SageMaker viene fornito con ciò che AWS chiama “hyper parameter optimisation (HPO)”. Selezionando una casella SageMaker esegue più copie del modello di addestramento e utilizza l’apprendimento automatico per esaminare ogni modifica in parallelo e ottimizzare i parametri di conseguenza.

5. AWS API

AWS sta sviluppando anche un pacchetto di API di apprendimento automatico che possono essere utilizzate direttamente dall’utente.

Le prime tre, lanciate nel 2016, sono Lex, che è la tecnologia sottostante all’assistente vocale Alexa AI, Polly per servizi text-to-voice e Rekognition, che aggiunge analisi delle immagini e riconoscimento facciale alle app.

Nel 2017 Amazon ha lanciato Transcribe per convertire la voce in testo, Amazon Translate per la traduzione di testo in altre lingue, Amazon Comprehend per la comprensione del linguaggio naturale, Amazon Rekognition Video, un servizio di computer vision per l’analisi di video in batch e in tempo reale.

6. Amazon Deep Scalable Sparse Tensor Network Engine (DSSTNE)

La libreria open source di deep learning, il cui nome si pronuncia come “destiny”, consente di addestrare e implementare reti neurali profonde utilizzando GPU. Può essere considerata la risposta di Amazon a TensorFlow di Google.

DSSTNE è stata costruita dagli ingegneri del gigante delle vendite online per alimentare il suo motore, che ogni giorno offre suggerimenti sui prodotti ai milioni di clienti dei suoi siti web.

All’epoca del lancio Amazon ha dichiarato: “Rilasciamo DSSTNE come software open source perché la promessa del deep learning possa estendersi dalla comprensione del linguaggio e dal riconoscimento degli oggetti ad altri settori, come la ricerca e i suggerimenti. Ci auguriamo che i ricercatori di tutto il mondo possano collaborare per migliorarla e, cosa ancora più importante, che stimoli l’innovazione in molte altre aree”.

7. Azure Machine Learning Workbench

Microsoft ha annunciato un rinnovamento degli strumenti di machine learning di Microsoft Azure durante la conferenza Ignite, a settembre 2017.

Tra i principali strumenti disponibili c’è Azure Machine Learning Workbench, descritto come un client multipiattaforma per la gestione di dati e sperimentazioni.

Workbench supporterà la modellazione in Python, Scala e PySpark.

8. Azure Machine Learning Model Management

In occasione di Ignite Microsoft ha annunciato anche il rilascio di Azure Machine Learning Model Management.

Lo strumento ha lo scopo di aiutare gli sviluppatori “a gestire e implementare flussi di lavoro e modelli di machine learning”, offrendo al contempo funzionalità di modellazione quali controllo versione, verifica del modello, distribuzione di modelli alla produzione, creazione di container Docker con i modelli e test.

9. Google TensorFlow

Google ha reso disponibile la sua libreria software TensorFlow attraverso licenza Apache nel 2015. La libreria software di apprendimento automatico è la nuova generazione di DistBelief, sviluppata internamente dal team Google Brain per una moltitudine di attività, come la ricerca di immagini e il miglioramento degli algoritmi di riconoscimento vocale.

TensorFlow può produrre diagrammi C ++ o Python che possono essere elaborati su CPU o GPU. Questi diagrammi di flusso rappresentano il movimento dei dati all’interno di un sistema. Rendendo open source la libreria Google ha facilitato lo sviluppo, l’addestramento e la distribuzione di complesse reti neurali profonde.

10. Google API

Sulla sua piattaforma cloud Google offre anche una serie di API per il machine learning. Tra queste c’è Prediction API, che consente agli utenti di utilizzare gli algoritmi del gigante di ricerca per analizzare i dati e prevedere risultati futuri. Google ha aggiunto ulteriori API per consentire agli utenti di creare i propri servizi basati sull’apprendimento automatico, tra le quali Speech, Translate e Vision.

A marzo 2017 Google ha lanciato l’API Cloud Video Intelligence per riconoscere automaticamente gli oggetti nei video e renderli cercabili. L’API riconosce automaticamente determinati oggetti dai video. Essenzialmente consente agli sviluppatori di taggare le immagini nei video in base a termini cercabili, come per esempio “albero” o “casa”. Attualmente l’API è disponibile in versione beta.

11. Microsoft Distributed Machine Learning Toolkit (DMTK)

Il toolkit di apprendimento automatico di Microsoft, disponibile su Github, ha lo scopo di alleggerire gli affollati cluster di apprendimento automatico, semplificando l’esecuzione di più applicazioni in contemporanea.

Generalmente i modelli più grandi offrono migliore precisione in varie applicazioni“, ha affermato Microsoft. “Tuttavia, per i ricercatori e i professionisti dell’apprendimento automatico rimane una sfida gestire modelli più complessi”.

12. Microsoft Computational Network Toolkit (CNTK)

Microsoft offre anche il Computational Network Toolkit, che consente agli utenti di creare reti neurali rappresentate da grafi diretti. Sviluppato principalmente per la tecnologia di riconoscimento vocale, da aprile 2015 è diventato un toolkit di apprendimento automatico che supporta immagini, testo e l’addestramento di reti neurali ricorrenti (RNN).

13. IBM Watson Analytics

Il servizio cloud Watson Analytics è stato presentato nel 2014 come parte dei piani di IBM di trasformare Watson da un “concorrente” nei giochi a una soluzione per le aziende.

Watson Analytics aiuta le aziende con poca o nessuna competenza di analisi predittiva a mettere a frutto i propri dati aziendali.

IBM aveva già lanciato il suo Watson Developer Cloud – nel 2013 – offrendo l’accesso alle API tramite la piattaforma Bluemix come servizio cloud, consentendo agli sviluppatori di creare le proprie applicazioni sfruttando l’intelligenza di Watson.

14. BigML

Non sono solo le grandi aziende IT interessate all’intelligenza artificiale nel cloud. BigML è una delle numerose startup del mercato che punta a rendere disponibile l’intelligenza artificiale a un pubblico più ampio.

Fondata nell’Oregon nel 2011, BigML offre una semplice interfaccia utente, che consente agli utenti di caricare set di dati per estrarne previsioni.

15. Apache Spark MLlib e Singa

Apache Spark MLlib è un framework di elaborazione dati in-memory. Spark offre una libreria sempre più ampia di algoritmi e funzionalità che incorporano classificazione, regressione, clustering, filtraggio collaborativo e altre funzioni per l’elaborazione dei dati in-memory.

Singa è un framework open source all’interno dell’incubatore Apache e fornisce uno strumento di programmazione per reti di deep learning su diverse macchine.

16. Veles

Veles è la piattaforma distribuita di deep learning di Samsung. E’ scritta in C ++ e utilizza Python per il coordinamento tra i nodi. Veles offre un’API che consente l’uso immediato di modelli addestrati e può essere utilizzata per l’analisi dei dati.

17. Alibaba Aliyun

Nell’agosto 2015 il gigante cinese dell’ecommerce Alibaba ha annunciato che la sua piattaforma cloud, Aliyun, avrebbe offerto un servizio di machine learning per aiutare i clienti aziendali a ottimizzare lo sviluppo di software di analytics.

Il servizio è basato sulla tecnologia Open Data Processing Service (ODPS) di Aliyun, che è in grado di elaborare 100 petabyte di dati in sei ore.

Ciò che un tempo richiedeva giorni ora può essere eseguito in pochi minuti“, ha dichiarato Xiao Wei, senior product expert dell’unità cloud di Alibaba in occasione dell’annuncio del servizio.

18. Caffe

Caffe è un framework C++ di apprendimento profondo creato inizialmente per applicazioni di visione artificiale. È stato sviluppato dal Berkeley Vision and Learning Center (BVLC) e da community di sviluppatori.

Il framework è già utilizzato in “progetti di ricerca accademici, prototipi di startup e anche in applicazioni industriali su larga scala di visione, voce e multimedia”.

Nel 2016 Yahoo ha rilasciato in modalità open source CaffeOnSpark, che combina funzionalità di deep learning con il motore di elaborazione dati Spark.

Caffe è stato utilizzato anche da Google e Pinterest per le loro operazioni.

19. Neon

Neon è una libreria open source di apprendimento automatico basata su Python. E’ stata sviluppata dalla startup Nervana, fondata nel 2014 e specializzata in deep learning.

Nervana ha lanciato anche un servizio cloud basato su Neon, che afferma essere dieci volte più veloce rispetto ai servizi concorrenti. Ciò significa che le aziende possono creare, addestrare e implementare molto più rapidamente le tecnologie di deep learning. La startup è stata acquisita da Intel nel 2016.

20. Wise.io

Anche Wise.io mira a democratizzare l’uso dell’intelligenza artificiale con un “machine learning as a service” pronto per l’uso aziendale. All’inizio della sua attività, nel 2012, la startup californiana sviluppava algoritmi per supportare gli astronomi a scoprire e mappare nuove stelle.

In seguito Wise ha rivolto la propria offerta anche alle aziende, e tra i suoi clienti ci sono Volkswagen e Citrix.