Framework popolari di deep learning: una panoramica
Il deep learning è un campo più ampio dell’apprendimento automatico, che utilizza reti neurali artificiali (ANN) per derivare funzionalità di alto livello dagli input. L’architettura di deep learning o reti neurali profonde (DNN) è costituita da più livelli, in particolare i livelli nascosti tra i livelli di input e output.
Alcune architetture di apprendimento profondo comuni sono reti neurali convoluzionali (CNN), reti neurali ricorrenti (RNN), memoria a lungo termine (LSTM), reti di credenze profonde (DBN), che sono state applicate alla visione artificiale, al riconoscimento audio e vocale e al linguaggio naturale casi d’uso di elaborazione (PNL). Anche i dati tabulari strutturati e non strutturati hanno mostrato buone prestazioni utilizzando modelli di deep learning.
In questo articolo, parlerò dei framework di deep learning disponibili per diverse interfacce del linguaggio di programmazione.
Un framework di deep learning consente a ricercatori e sviluppatori di raggiungere lo stato dell’arte in modo compatto e robusto. Aiuta nella formazione e nel test del modello utilizzando le API. Questi forniscono prestazioni di alto livello e una migliore gestione delle dipendenze.
- Tensorflow
Sviluppato da Google Brain, Tensorflow è di gran lunga uno dei framework di deep learning più utilizzati. Tensorflow ha fornito un’ampia gamma di API (linguaggio di programmazione dell’applicazione) dalla preelaborazione alla modellazione dei dati. È scritto in Python, C ++ e CUDA. Funziona su quasi tutte le piattaforme: Linux, Windows, macOS, iOS e Android. Per Android e iOS, Tensorflow fornisce la versione TensorflowLite. Per la distribuzione, Tensorflow dispone di un potente supporto per il clustering. Tensorflow può essere utilizzato anche con CPU, GPU e TPU. Tensorflow ha un’eccellente documentazione sul suo sito Web ufficiale contenente tutti i moduli. L’ultima versione Tensorflow 2.0 ha subito importanti progressi.
L’API Tensorflow è ampiamente utilizzata in Python, che è completamente in versioni stabili. Le API di altre lingue sono in fase di sviluppo e non in versioni stabili; lo usano senza compatibilità con le API con le versioni precedenti – C ++, Javascript, Java, Go. Alcuni linguaggi lo usano anche come pacchetti di terze parti: Haskell, C #, R, Julia, Scala, Ruby, MATLAB.
Applicazioni: Google Teachable Machine (piattaforma di formazione ML senza codice), RankBrain (SEO), Deep Speech (traduzione vocale), Nsynth (per fare musica), Uber, Delivery Hero, Ruangguru, Hepsiburada, 9GAG, Channel.io.
- PyTorch
Sviluppato da AI Research Lab di Facebook, PyTorchè un altro framework di deep learning ampiamente utilizzato principalmente per la sua interfaccia Python. PyTorch si basa sulla libreria Torch. PyTorch ha somiglianze con Tensorflow e quindi in grande concorrenza con esso. PyTorch è stato sviluppato principalmente per scopi di ricerca e distribuzione della produzione. Compatibile con Linux, Windows, macOS, Android e iOS. Utilizzando TorchServe, PyTorch aumenta la velocità e la facilità di accesso per distribuire i modelli. TorchScript fornisce flessibilità nella transizione delle funzionalità della modalità grafico. La formazione distribuita consente a PyTorch di fornire l’ottimizzazione nei modelli. Comunità di sviluppo attivo per la visione artificiale e la PNL alle tecniche di apprendimento per rinforzo. Alcune pietre miliari di PyTorch- HuggingFaces Transformers, PyTorch Lightening, Tesla Autopilot, Uber Pyro, Catalyst.
API – Utilizzato principalmente in Python ma ha anche un’interfaccia per C ++.
Applicazioni: NVIDIA, Apple, Robin Hood, Lyft, Ford Motor Company
- Caffe
Sviluppato dall’Università della California, Berkeley, Caffe supporta varie architetture per la segmentazione e la classificazione delle immagini. Caffe è scritto in C ++. Compatibile con Linux, Windows, macOS. Funziona su CPU ma prestazioni migliori con l’accelerazione GPU. Caffe è preferito per la sua velocità e la distribuzione nel settore. Può elaborare fino a 60 milioni di immagini con GPU NVIDIA. Ha una documentazione adeguata e una comunità attiva di sviluppatori per supportare prototipi per startup e lavori di ricerca.
API – Python e Matlab
Applicazioni: CaffeOnSpark (un’impresa di Yahoo con integrazione su Apache Spark), Caffe2 (di Facebook), Snap Inc., Cadence Design Systems, Qualcomm
- MXNet
Sviluppato da Apache Software Foundation, MXNet è un framework di apprendimento profondo open source creato per un’elevata scalabilità e supporto da vari linguaggi di programmazione. MXNet è scritto in più linguaggi: C ++, Python, Java, Scala, Julia, R, Javascript, Perl, Go e Wolfram Language. È noto per il suo veloce addestramento al modello. Compatibile con Windows, macOS, Linux. Può funzionare su dispositivi intelligenti poiché è leggero ed efficiente in termini di memoria. Per sua natura ibrida attraverso la formazione distribuita, MXNet consente operazioni simboliche e imperative combinate, rendendolo efficiente, flessibile e portatile. La sua comunità attiva è di gran lunga la più efficiente avendo idee sincronizzate su AI e deep learning.
API – API Gluon Python, supporto di Scala, Julia, R, Java, Perl, Clojure
Applicazioni – AWS (come framework DL), Warner Bros. Entertainment Group of Companies, Elbit Systems of America, Kwai
- Chainer
Sviluppo di Preferred Networks in collaborazione con Intel, Nvidia, IBM e Microsoft. Chainer è un framework di deep learning multipiattaforma completamente integrato in Python basato sulle librerie Numpy e CuPy. Chainer è emerso grazie ai suoi grafici computazionali dinamici che sono prontamente disponibili tramite le API. Questa funzionalità è nota come approccio di definizione per esecuzione. Chainer ha 4 librerie di estensione: ChainerRL (per l’apprendimento per rinforzo), ChainerCV (per visione artificiale), ChainerMN (per utilizzo multiplo di GPU), ChainerUI (per gestione e visualizzazione).
API – Python
Applicazioni – PaintsChainer (colorazione automatica), JPMorgan Chase, Novu LLC, Facebook ADP, Mad Street Den.
- DeepLearning4j
DL4j o deep learning per Java è l’unico framework di deep learning ad essere costruito su Java per JVM (Java Virtual Machine) e scritto in Java, CUDA, C ++, C. È sviluppato da Eclipse. Copre una vasta gamma di algoritmi di deep learning. I sistemi operativi supportati sono Linux, Windows, macOS, iOS e Android. Ha il supporto dai sistemi distribuiti Apache Spark e Hadoop.
API – Supporto per tutti i linguaggi basati su JVM Java, Scala, Clojure, Kotlin.
Applicazioni: sicurezza informatica, rilevamento delle frodi, rilevamento delle anomalie e utilizzate anche in RapidMiner e Weka, US Bank, Livongo, Thermo Fisher Scientific, NovoDynamics Inc.
- Flusso
L’unica libreria di machine learning scritta in Julia. Flux supporta architetture di deep learning CNN, RNN, LSTM. Flux supporta la costruzione di pipeline per integrare i modelli Flux. Ha estensioni come DiffEqFlux.jl per le equazioni differenziali neurali attraverso la programmazione differenziale e Zygote.jl per la differenziazione automatica.
API – Julia
GUARDA ANCHE
ANGOLO DEGLI SVILUPPATORI
Come rompere la certificazione TensorFlow di Google
Applicazioni: utilizzate nei dati crittografati omomorfici (una tecnica di crittografia che non richiede la decrittografia dei dati)
- Matlab – Casella degli strumenti di apprendimento profondo
Sviluppato da MathWorks, il toolbox di deep learning di MATLAB è scritto in C, C ++, Java e MATLAB. Può essere eseguito su sistemi operativi come Linux, Windows e macOS. Questo framework supporta tutti i tipi di architetture di deep learning CNN, RNN, LSTM, anche GAN e modelli pre-addestrati come ResNets. Il toolbox fornisce formazione parallela con GPU. L’app Deep Designer tiene traccia dei parametri utilizzati.
- Microsoft Cognitive Toolkit
Microsoft Cognitive Toolkit (CNTK) sviluppato da Microsoft Research e scritto in C ++. Supportato dal sistema operativo: Windows e Linux. CNTK rappresenta le reti neurali come un grafo diretto in cui i nodi foglia sono per parametri di input e altri nodi sono per operazioni con matrice. CNTK fornisce architetture di deep learning per reti feed-forward DNN, CNN, RNN, LSTM. Ha differenziazione automatica e parallelismo supporta più GPU e server.
API: Python, C #, C ++
Applicazione – Sequence2Sequence, LightRNN, Reinforcement Learning con DQN, HOPE Technik Pte LTD, Rockwell Collins, SparkCognition
- Keras
La libreria di rete neurale multipiattaforma è scritta in Python, sviluppata da Francis Chollet. Keras è un’API di alto livello costruita su Tensorflow. Keras è il framework di deep learning più utilizzato in Kaggle. Keras funziona al meglio su GPU e TPU. I modelli Keras possono essere facilmente distribuiti sul Web, iOS e Android. Keras è noto per la velocità di calcolo, la facilità d’uso e la facilità di accesso. Keras ha una comunità attiva e quindi in costante sviluppo.
API – Python
Applicazioni – Utilizzato da organizzazioni scientifiche come NASA, CERN, NIH e LHC, Lockheed Martin, Ford Motor Company
- Theano
È stato sviluppato dal Montreal Institute of Learning Algorithms, scritto in Python e CUDA. Theano è utilizzato nell’ottimizzazione di array multidimensionali. Theano fornisce calcoli più veloci. Theano è costruito sopra Numpy. È progettato per eseguire calcoli numerici ad alta dimensionale di reti neurali. Funziona su sistemi operativi come Linux, Windows e macOS. Funziona meglio su sistemi basati su GPU.
API – Python
Applicazioni: WellsFargo, SparkCognition, Data Economy, Northrop Grumman, HOPE Technik Pte LTD