La barriera del deep learning
Nel 2015 il deep learning sta producendo risultati di rilievo nel riconoscimento di immagini, nella traduzione automatica e nell’elaborazione del linguaggio naturale. I framework disponibili per costruire e addestrare reti neurali — Theano, Caffe, le prime versioni di TensorFlow — sono potenti ma impongono una curva di apprendimento ripida. Definire un modello richiede di gestire esplicitamente tensori, grafi computazionali, derivate simboliche e ottimizzazioni di basso livello. Per un ricercatore o un ingegnere che vuole sperimentare rapidamente con architetture diverse, la distanza tra l’idea e il codice funzionante è troppo grande.
Francois Chollet, ingegnere e ricercatore, pubblica Keras con un obiettivo chiaro: rendere il deep learning accessibile senza sacrificare la flessibilità.
Un’API pensata per gli esseri umani
Keras si presenta come un’API Python ad alto livello per la costruzione di reti neurali. Il principio guida è la riduzione del carico cognitivo: ogni operazione comune deve richiedere il minor numero possibile di passaggi, e gli errori dell’utente devono produrre messaggi chiari e azionabili.
Un modello Sequential si costruisce impilando layer uno sull’altro: Dense per i layer completamente connessi, Conv2D per le convoluzioni, LSTM per le sequenze temporali, Dropout per la regolarizzazione. Ogni layer dichiara esplicitamente la propria dimensione di output e la funzione di attivazione. L’API funzionale permette di costruire architetture più complesse — modelli con input multipli, output multipli, connessioni residue — collegando esplicitamente i layer come nodi di un grafo.
Compile, fit, evaluate
Il ciclo di lavoro in Keras segue tre passaggi distinti. Compile configura il modello per l’addestramento: si specificano la funzione di perdita (cross-entropy, mean squared error), l’ottimizzatore (SGD, Adam, RMSprop) e le metriche da monitorare (accuracy, precision). Fit avvia l’addestramento sui dati: Keras gestisce automaticamente la suddivisione in batch, le epoche, lo shuffling dei dati e la validazione. Evaluate misura le prestazioni del modello su un dataset di test separato.
Questo flusso lineare permette di passare dalla definizione dell’architettura ai risultati sperimentali in poche righe di codice, senza dover gestire manualmente i loop di addestramento.
Backend intercambiabile
Una scelta architetturale distintiva di Keras è il backend intercambiabile. Keras non esegue direttamente i calcoli numerici: delega le operazioni su tensori a un motore di calcolo sottostante. Al momento del rilascio, il backend principale e Theano, il framework di calcolo simbolico sviluppato dal MILA di Montreal. TensorFlow viene supportato come backend alternativo poco dopo il suo rilascio. Questa separazione permette di cambiare motore di calcolo senza modificare il codice del modello, proteggendo l’investimento nella definizione delle architetture.
Link: keras.io
