Keras: libreria open source per la configurazione di reti neurali
L’intelligenza artificiale svolge un ruolo essenziale nel mondo digitale odierno, sia per lo sviluppo e l’utilizzo di videogiochi (o altri programmi applicativi) sia per i servizi web, i dispositivi e le macchine. Le cosiddette Neural networks (in italiano: “reti neurali”) rappresentano una delle branche e dei settori di ricerca più importanti per la “facoltà di pensiero virtuale” e la loro implementazione è facilitata in modo rilevante dall’utilizzo di Keras. In questo articolo scoprirete cosa si nasconde dietro questa libreria open source e in che modo può semplificare la configurazione di reti neurali.
Cos’è Keras?
Keras è una libreria open source (con licenza MIT) scritta in Python, frutto principalmente del lavoro dello sviluppatore di Google François Chollet nell’ambito del progetto ONEIROS (Open-ended Neuro-Electronic Intelligent Robot Operating System). Il 28 marzo 2015 è stata rilasciata la prima versione di questo software multipiattaforma. Lo scopo della libreria è permettere la configurazione rapida di reti neurali. Keras non funge da framework ma da interfaccia di facile utilizzo (API) per l’accesso e la programmazione a diversi framework di apprendimento automatico. Tra i vari framework supportati da Keras troviamo Theano, Microsoft Cognitive Toolkit (in precedenza CNTK) e TensorFlow.
A partire dal rilascio di TensorFlow 1.4, Keras è diventata componente fissa del core dell’API TensorFlow. La libreria è stata però sviluppata anche come software autonomo, poiché all’inizio era stata pianificata come interfaccia per diversi framework e continua a perseguire questo approccio.
La versione attuale di Keras è compatibile con Python a partire dalla versione 2.7; il progetto completo resta però disponibile attraverso l’elenco ufficiale di Keras di GitHub.
Come funziona Keras?
Keras è una libreria che agisce a livello dei modelli: mette a disposizione dei componenti fondamentali sulla cui base si possono sviluppare modelli complessi di apprendimento automatico. Diversamente rispetto ai framework autonomi, il software open source non si concentra solo su operazioni di basso livello, ma utilizza a questo scopo le librerie di framework di apprendimento automatico collegati, che fungono quasi da motore back end. Secondo l’approccio modulare, i livelli desiderati della rete neurale da configurare dipendono gli uni dagli altri, senza che il reale back end del framework selezionato debba essere compreso o manovrato direttamente dall’utente di Keras.
Come già accennato, Keras si configura in particolare sui tre strumenti TensorFlow, Theano e Microsoft Cognitive Toolkit, che presentano già interfacce pronte all’uso che permettono un accesso rapido e intuitivo al rispettivo back end. Non dovete decidervi per nessun framework particolare, perché potrete comodamente passare da un back end all’altro. Potete anche scegliere un back end alternativo alle tre soluzioni proposte. Quest’ultimo deve essere indicato nel file di configurazione (keras.json) e avere le tre funzioni “placeholder”, “variable” e “function”.
Nel nostro approfondito tutorial di Keras troverete informazioni dettagliate sulla gestione del back end e sul suo utilizzo generale.
Quali vantaggi offre Keras?
Keras rappresenta una valida integrazione agli strumenti esistenti per la realizzazione di reti neurali visto che questa libreria open source ne semplifica notevolmente il processo. In questo caso, l’usabilità svolge un ruolo di rilievo: Keras funziona come interfaccia concepita esplicitamente prima per gli uomini e poi per le macchine. Le azioni compiute dall’utente per i casi d’uso più importanti sono ridotte al minimo, e se si verificano errori, esiste un feedback apposito che aiuta nella fase di risoluzione. Perciò, a confronto, diventa semplice imparare e applicare Keras per aumentare la produttività. Attraverso il collegamento tra framework di deep learning, questo strumento non è più soggetto a limiti funzionali: potete inserire tutte le caratteristiche desiderate attraverso delle interfacce precise (o disattivarle nuovamente in caso di necessità).
Una panoramica degli altri vantaggi di Keras:
- Ampio supporto di piattaforme per i modelli aggiunti: i modelli aggiunti con Keras si possono mettere a disposizione su diverse piattaforme in modo semplice. Di solito, si utilizzano ad esempio iOS (Apple CoreML), Android (Keras TensorFlow Android Runtime), Google Cloud e le impostazioni per il Raspberry Pi.
- Supporto di motori di back end multipli: con Keras non siete solo liberi di scegliere i back end che desiderate, ma potete anche combinarne diversi tra loro. Inoltre, potete trasmettere in qualsiasi momento un modello aggiunto a un altro back end.
- Incredibile supporto Multi-GPU: grazie a Keras, potrete distribuire gli sforzi relativi ai processi di deep learning aggiunti su più unità di elaborazione grafica come schede video.
- Potenziale di sviluppo per le grandi aziende: la manutenzione e lo sviluppo di Keras hanno il supporto delle aziende più importanti del settore. Tra le altre, prendono parte al progetto anche Google, Amazon AWS, Microsoft, Apple e Nvidia.
Per quali progetti è adatta Keras?
Keras è un’interfaccia universale in uso su diverse piattaforme di apprendimento automatico e oggi è utilizzata per diversi progetti nel settore dell’IA. Già alla metà del 2018, la libreria registrava più di 250.000 utenti singoli, che si sono raddoppiati dopo l’inserimento nel software TensorFlow. Poter scegliere liberamente tra i framework predefiniti, la licenza gratuita e l’indipendenza dalle piattaforme, rendono Keras una soluzione versatile e perfetta sia nel settore industriale sia in quello della ricerca per quel che riguarda le applicazioni di reti neurali professionali. Basti pensare che, per i loro progetti, ricorrono all’uso di Keras o del pacchetto TensorFlow Keras sia note aziende come Netflix, Uber e Yelp che organizzazioni come la NASA o il CERN.