L’in­tel­li­gen­za ar­ti­fi­cia­le svolge un ruolo es­sen­zia­le nel mondo digitale odierno, sia per lo sviluppo e l’utilizzo di vi­deo­gio­chi (o altri programmi ap­pli­ca­ti­vi) sia per i servizi web, i di­spo­si­ti­vi e le macchine. Le co­sid­det­te Neural networks (in italiano: “reti neurali”) rap­pre­sen­ta­no una delle branche e dei settori di ricerca più im­por­tan­ti per la “facoltà di pensiero virtuale” e la loro im­ple­men­ta­zio­ne è fa­ci­li­ta­ta in modo rilevante dall’utilizzo di Keras. In questo articolo sco­pri­re­te cosa si nasconde dietro questa libreria open source e in che modo può sem­pli­fi­ca­re la con­fi­gu­ra­zio­ne di reti neurali.

Cos’è Keras?

Keras è una libreria open source (con licenza MIT) scritta in Python, frutto prin­ci­pal­men­te del lavoro dello svi­lup­pa­to­re di Google François Chollet nell’ambito del progetto ONEIROS (Open-ended Neuro-Electronic Intel­li­gent Robot Operating System). Il 28 marzo 2015 è stata ri­la­scia­ta la prima versione di questo software mul­ti­piat­ta­for­ma. Lo scopo della libreria è per­met­te­re la con­fi­gu­ra­zio­ne rapida di reti neurali. Keras non funge da framework ma da in­ter­fac­cia di facile utilizzo (API) per l’accesso e la pro­gram­ma­zio­ne a diversi framework di ap­pren­di­men­to au­to­ma­ti­co. Tra i vari framework sup­por­ta­ti da Keras troviamo Theano, Microsoft Cognitive Toolkit (in pre­ce­den­za CNTK) e Ten­sor­Flow.

N.B.

A partire dal rilascio di Ten­sor­Flow 1.4, Keras è diventata com­po­nen­te fissa del core dell’API Ten­sor­Flow. La libreria è stata però svi­lup­pa­ta anche come software autonomo, poiché all’inizio era stata pia­ni­fi­ca­ta come in­ter­fac­cia per diversi framework e continua a per­se­gui­re questo approccio.

La versione attuale di Keras è com­pa­ti­bi­le con Python a partire dalla versione 2.7; il progetto completo resta però di­spo­ni­bi­le at­tra­ver­so l’elenco ufficiale di Keras di GitHub.

Come funziona Keras?

Keras è una libreria che agisce a livello dei modelli: mette a di­spo­si­zio­ne dei com­po­nen­ti fon­da­men­ta­li sulla cui base si possono svi­lup­pa­re modelli complessi di ap­pren­di­men­to au­to­ma­ti­co. Di­ver­sa­men­te rispetto ai framework autonomi, il software open source non si concentra solo su ope­ra­zio­ni di basso livello, ma utilizza a questo scopo le librerie di framework di ap­pren­di­men­to au­to­ma­ti­co collegati, che fungono quasi da motore back end. Secondo l’approccio modulare, i livelli de­si­de­ra­ti della rete neurale da con­fi­gu­ra­re dipendono gli uni dagli altri, senza che il reale back end del framework se­le­zio­na­to debba essere compreso o manovrato di­ret­ta­men­te dall’utente di Keras.

Come già accennato, Keras si configura in par­ti­co­la­re sui tre strumenti Ten­sor­Flow, Theano e Microsoft Cognitive Toolkit, che pre­sen­ta­no già in­ter­fac­ce pronte all’uso che per­met­to­no un accesso rapido e intuitivo al ri­spet­ti­vo back end. Non dovete decidervi per nessun framework par­ti­co­la­re, perché potrete co­mo­da­men­te passare da un back end all’altro. Potete anche scegliere un back end al­ter­na­ti­vo alle tre soluzioni proposte. Quest’ultimo deve essere indicato nel file di con­fi­gu­ra­zio­ne (keras.json) e avere le tre funzioni “pla­ce­hol­der”, “variable” e “function”.

Consiglio

Nel nostro ap­pro­fon­di­to tutorial di Keras troverete in­for­ma­zio­ni det­ta­glia­te sulla gestione del back end e sul suo utilizzo generale.

Quali vantaggi offre Keras?

Keras rap­pre­sen­ta una valida in­te­gra­zio­ne agli strumenti esistenti per la rea­liz­za­zio­ne di reti neurali visto che questa libreria open source ne sem­pli­fi­ca no­te­vol­men­te il processo. In questo caso, l’usabilità svolge un ruolo di rilievo: Keras funziona come in­ter­fac­cia concepita espli­ci­ta­men­te prima per gli uomini e poi per le macchine. Le azioni compiute dall’utente per i casi d’uso più im­por­tan­ti sono ridotte al minimo, e se si ve­ri­fi­ca­no errori, esiste un feedback apposito che aiuta nella fase di ri­so­lu­zio­ne. Perciò, a confronto, diventa semplice imparare e applicare Keras per aumentare la pro­dut­ti­vi­tà. At­tra­ver­so il col­le­ga­men­to tra framework di deep learning, questo strumento non è più soggetto a limiti fun­zio­na­li: potete inserire tutte le ca­rat­te­ri­sti­che de­si­de­ra­te at­tra­ver­so delle in­ter­fac­ce precise (o di­sat­ti­var­le nuo­va­men­te in caso di necessità).

Una pa­no­ra­mi­ca degli altri vantaggi di Keras:

  • Ampio supporto di piat­ta­for­me per i modelli aggiunti: i modelli aggiunti con Keras si possono mettere a di­spo­si­zio­ne su diverse piat­ta­for­me in modo semplice. Di solito, si uti­liz­za­no ad esempio iOS (Apple CoreML), Android (Keras Ten­sor­Flow Android Runtime), Google Cloud e le im­po­sta­zio­ni per il Raspberry Pi.
  • Supporto di motori di back end multipli: con Keras non siete solo liberi di scegliere i back end che de­si­de­ra­te, ma potete anche com­bi­nar­ne diversi tra loro. Inoltre, potete tra­smet­te­re in qualsiasi momento un modello aggiunto a un altro back end.
  • In­cre­di­bi­le supporto Multi-GPU: grazie a Keras, potrete di­stri­bui­re gli sforzi relativi ai processi di deep learning aggiunti su più unità di ela­bo­ra­zio­ne grafica come schede video.
  • Po­ten­zia­le di sviluppo per le grandi aziende: la ma­nu­ten­zio­ne e lo sviluppo di Keras hanno il supporto delle aziende più im­por­tan­ti del settore. Tra le altre, prendono parte al progetto anche Google, Amazon AWS, Microsoft, Apple e Nvidia.

Per quali progetti è adatta Keras?

Keras è un’in­ter­fac­cia uni­ver­sa­le in uso su diverse piat­ta­for­me di ap­pren­di­men­to au­to­ma­ti­co e oggi è uti­liz­za­ta per diversi progetti nel settore dell’IA. Già alla metà del 2018, la libreria re­gi­stra­va più di 250.000 utenti singoli, che si sono rad­dop­pia­ti dopo l’in­se­ri­men­to nel software Ten­sor­Flow. Poter scegliere li­be­ra­men­te tra i framework pre­de­fi­ni­ti, la licenza gratuita e l’in­di­pen­den­za dalle piat­ta­for­me, rendono Keras una soluzione versatile e perfetta sia nel settore in­du­stria­le sia in quello della ricerca per quel che riguarda le ap­pli­ca­zio­ni di reti neurali pro­fes­sio­na­li. Basti pensare che, per i loro progetti, ricorrono all’uso di Keras o del pacchetto Ten­sor­Flow Keras sia note aziende come Netflix, Uber e Yelp che or­ga­niz­za­zio­ni come la NASA o il CERN.

Vai al menu prin­ci­pa­le