Modelli Keras
Che cos'è un modello Keras?
Keras è una libreria di alto livello per deep learning, basata su Theano e Tensorflow. È scritta in Python e offre una modalità ordinata e comoda per creare una serie di modelli di deep learning. Keras è diventata una delle API di alto livello più diffuse per lo sviluppo e i test di reti neurali. La creazione di strati per reti neurali e l'impostazione di architetture complesse diventano un gioco da ragazzi con l'API di alto livello Keras. Un modello Keras è costituito da una sequenza di grafi o da un grafo separato. Esistono molti moduli completamente configurabili che possono essere combinati per creare nuovi modelli. Alcuni di questi moduli configurabili che si possono combinare fra loro comprendono strati neurali, funzioni di costo, ottimizzatori, schemi di inizializzazione, dropout, perdita, funzioni di attivazione e schemi di regolarizzazione. Uno dei vantaggi principali della modularità è la possibilità di aggiungere facilmente nuove funzionalità come moduli separati. Keras risulta così molto flessibile e particolarmente adatto per fare ricerca innovativa. Un modello Keras può essere sviluppato in due modi: sequenziale e funzionale.
API sequenziale
Il modello API sequenziale è il più semplice ed è costituito da una pila lineare di strati che consente di configurare i modelli strato per strato per la maggior parte dei problemi. Il modello sequenziale è molto semplice da usare, ma ha una topologia limitata. Il limite deriva dal fatto che non è possibile configurare modelli con strati condivisi o avere ingressi e/o uscite multipli.
API funzionale
Altrimenti, l'API funzionale è ideale per creare modelli complessi che richiedono grande flessibilità. Consente infatti di definire modelli con strati che hanno connessioni con più livelli, non solo quello precedente e quello successivo. I modelli vengono definiti creando istanza di strati e collegandole direttamente fra loro a coppie. Di fatto, questo modello consente di collegare ogni strato a qualsiasi altro. Grazie a questo modello è possibile creare reti complesse come reti siamesi, reti residuali, modelli multi-input/multi-output, grafici aciclici orientati (DAG) e modelli con strati condivisi.