I 10 migliori framework di apprendimento automatico

Pubblicato: 2017-03-11
Mostra il sommario
1. Flusso tensoriale
2. Caffè
3. Apprendimento automatico di Amazon
4. Apache Canta
5. Microsoft CNTK
6. Torcia
7. Accord.NET
8. Apache Mahout
9. Teano
10. Brainstorm

Quando si approfondisce il mondo dell'apprendimento automatico (ML), la scelta di un framework tra molte alternative può essere un compito intimidatorio. Potresti già avere familiarità con i nomi, ma è utile valutare le opzioni durante il processo decisionale. Esistono diversi framework, librerie, applicazioni, toolkit e set di dati nel mondo dell'apprendimento automatico che possono creare molta confusione, soprattutto se sei un principiante. Abituarsi ai popolari framework ML è necessario quando si tratta di sceglierne uno per creare la propria applicazione. Questo è il motivo per cui abbiamo compilato un elenco dei 10 migliori framework di apprendimento automatico.

1. Flusso tensoriale

Tensorflow è stato sviluppato dal Google Brain Team per la comprensione di diverse lingue e attività percettive. Questo framework open source viene utilizzato per ricerche approfondite sulle reti neurali profonde e sull'apprendimento automatico. Essendo il secondo framework di apprendimento automatico di Google Brain, è compatibile con la maggior parte delle nuove CPU e GPU. Molti dei popolari servizi Google che utilizziamo quotidianamente come Gmail, Riconoscimento vocale, Google Foto e persino Ricerca Google sono dotati di Tensorflow.

Tensorflow utilizza i grafici del flusso di dati per eseguire complicati compiti numerici. I calcoli matematici sono elaborati utilizzando un grafo orientato contenente archi e nodi. Questi nodi vengono utilizzati per implementare le operazioni e possono anche fungere da endpoint in cui vengono alimentati i dati. I bordi rappresentano anche le associazioni di input/output tra i diversi nodi.

2. Caffè

Caffe è un framework di apprendimento automatico progettato con una migliore espressione, velocità e modularità come punti focali. È stato sviluppato per la visione artificiale/classificazione di immagini sfruttando le reti neurali convoluzionali (CNN). Caffe è famoso per il suo Model Zoo, che è un insieme di modelli pre-addestrati che non richiede alcuna codifica per essere implementato.

È più adatto per la creazione di applicazioni rispetto a Tensorflow che se la cava meglio in ricerca e sviluppo. Se hai a che fare con applicazioni con testo, suono o dati di serie temporali, tieni presente che Caffe non è destinato a nient'altro che alla visione artificiale. Tuttavia, può essere eseguito dinamicamente su una miriade di hardware e fa un buon lavoro nel passaggio tra CPU e GPU utilizzando un solo flag.

3. Apprendimento automatico di Amazon

Amazon ha sviluppato il proprio servizio di machine learning per sviluppatori chiamato AML. È una raccolta di strumenti e procedure guidate che possono essere utilizzati per lo sviluppo di modelli di apprendimento sofisticati, di fascia alta e intelligenti senza effettivamente armeggiare con il codice. Utilizzando AML, le previsioni necessarie per le tue applicazioni possono essere derivate tramite API più facili da usare. La tecnologia alla base dell'AML viene utilizzata dai data scientist interni di Amazon per potenziare i propri Amazon Cloud Services ed è altamente scalabile, dinamica e flessibile. AML può connettersi ai dati archiviati in Amazon S3, RDS o Redshift ed eseguire operazioni come classificazione binaria, regressione o categorizzazione multiclasse per creare nuovi modelli.

4. Apache Canta

Apache Singa si concentra principalmente sul deep learning distribuito utilizzando il partizionamento del modello e parallelizzando il processo di formazione. Fornisce un modello di programmazione semplice e robusto che può funzionare su un cluster di nodi. Le principali applicazioni sono nel riconoscimento delle immagini e nell'elaborazione del linguaggio naturale (NLP).

Singa è stato sviluppato con un modello di programmazione intuitivo basato sull'astrazione dei livelli e supporta una serie di modelli di deep learning. Poiché si basa su un'architettura molto flessibile, può eseguire metodi di addestramento sia sincroni che asincroni e persino ibridi. Lo stack tecnologico di Singa comprende tre componenti importanti: IO, Model e Core. Il componente IO contiene classi utilizzate per leggere/scrivere dati sulla rete e sul disco. Il componente principale gestisce le operazioni sui tensori e le funzioni di gestione della memoria. Il modello ospita algoritmi e strutture di dati utilizzati per i modelli di apprendimento automatico.

5. Microsoft CNTK

CNTK (Cognitive Toolkit) è il framework di apprendimento automatico open source di Microsoft. Sebbene sia più popolare nell'arena del riconoscimento vocale, CNTK può essere utilizzato anche per l'allenamento di testo e immagini. Con il supporto per un'ampia varietà di algoritmi di apprendimento automatico come CNN, LSTM, RNN, Sequence-to-Sequence e Feed Forward, è uno dei framework di apprendimento automatico più dinamici in circolazione. CNTK supporta più tipi di hardware, incluse varie CPU e GPU.

La compatibilità è uno dei punti salienti di CNTK. È anche elogiato come l'architettura di apprendimento automatico più espressiva e facile da usare. Su CNTK, puoi lavorare con linguaggi come C++ e python e utilizzare i modelli di training integrati o crearne di tuoi.

6. Torcia

Torch potrebbe senza dubbio essere il framework di apprendimento automatico più semplice da configurare e avviare velocemente e facilmente, soprattutto se stai usando Ubuntu. Sviluppato nel 2002 alla NYU, Torch è ampiamente utilizzato nelle grandi aziende tecnologiche come Twitter e Facebook. Torch è codificato in un linguaggio chiamato Lua, che è raro ma facile da leggere e capire. Alcuni dei vantaggi di Torch possono essere attribuiti a questo amichevole linguaggio di programmazione con utili messaggi di errore, un enorme repository di codice di esempio, guide e un'utile community.

7. Accord.NET

Accord.NET è un framework di apprendimento automatico open source basato su .NET ed è ideale per l'informatica scientifica. È costituito da diverse librerie che possono essere utilizzate per applicazioni come riconoscimento di modelli, reti neurali artificiali, elaborazione di dati statistici, algebra lineare, elaborazione di immagini, ecc. Il framework comprende librerie disponibili come programmi di installazione, pacchetti NuGet e codice sorgente. Accord.NET ha una libreria di matrici che facilita il riutilizzo del codice e le modifiche algoritmiche graduali.

8. Apache Mahout

Essendo un progetto gratuito e open source della Apache Software Foundation, Apache Mahout è stato creato con l'obiettivo di sviluppare framework ML distribuiti o scalabili gratuiti per applicazioni come il clustering, la classificazione e il filtraggio collaborativo. In Mahout sono disponibili anche raccolte Java per diverse operazioni di calcolo e librerie Java.

Apache Mahout viene distribuito su Hadoop utilizzando il paradigma MapReduce. Un'ottima applicazione è trasformare istantaneamente i dati in informazioni dettagliate. Una volta che i Big Data archiviati su Hadoop sono collegati, Mahout può aiutare gli strumenti di scienza dei dati a trovare modelli significativi dai set di dati.

9. Teano

Theano è stato sviluppato nel 2007 presso l'Università di Montreal, famosa in tutto il mondo per gli algoritmi di apprendimento automatico. Sebbene considerato un framework di apprendimento automatico di fascia bassa, è flessibile e velocissimo. I messaggi di errore generati dal framework sono famigerati per essere inutili e criptici. A parte questi, Theano è una piattaforma più adatta per compiti di ricerca e può essere estremamente utile in questo.

Viene utilizzato principalmente come piattaforma di base per sistemi di astrazione di fascia alta che invieranno wrapper API a Theano. Esempi di alcune librerie popolari sono Lasagne, Blocks e Keras. Uno svantaggio dell'utilizzo di Theano è che dovrai armeggiare con qualche soluzione alternativa per avere il supporto multi-GPU.

10. Brainstorm

Brainstorm è uno dei framework di machine learning più facili da padroneggiare considerando la sua semplicità e flessibilità. Rende il lavoro con le reti neurali più veloce e divertente allo stesso tempo. Essendo scritto interamente in Python, Brainstorm è stato creato per funzionare senza problemi su più sistemi back-end.

Brainstorm fornisce due "hander" o API di dati utilizzando Python: uno per le CPU della libreria Numpy e l'altro per sfruttare le GPU utilizzando CUDA. La maggior parte del lavoro pesante viene svolto dallo scripting Python, il che significa che una ricca interfaccia utente front-end è quasi assente.