Dimensione del batch e batch normalization

Introduzione al Deep Learning con Keras

Miguel Esteban

Data Scientist & Founder

Introduzione al Deep Learning con Keras

Introduzione al Deep Learning con Keras

Mini-batch

Vantaggi

  • Le reti si allenano più in fretta (più aggiornamenti dei pesi nello stesso tempo)
  • Richiedono meno RAM, puoi allenare su insiemi di dati enormi
  • Il rumore può aiutare a raggiungere un errore minore, evitando minimi locali

Svantaggi

  • Servono più iterazioni
  • Da tarare: bisogna trovare una buona dimensione del batch
Introduzione al Deep Learning con Keras

1 Stack Exchange
Introduzione al Deep Learning con Keras

Batch size in Keras

# Addestrare un modello già creato e compilato
model.fit(X_train, y_train, epochs=100, batch_size=128)
                                        ^^^^^^^^^^^^^^

Introduzione al Deep Learning con Keras

Introduzione al Deep Learning con Keras

Introduzione al Deep Learning con Keras

Introduzione al Deep Learning con Keras

Vantaggi della batch normalization

  • Migliora il flusso del gradiente
  • Consente tassi di apprendimento più alti
  • Riduce la dipendenza dalle inizializzazioni dei pesi
  • Agisce come forma involontaria di regolarizzazione
  • Limita l'internal covariate shift
Introduzione al Deep Learning con Keras

Batch normalization in Keras

# Importa BatchNormalization dai layer di keras
from tensorflow.keras.layers import BatchNormalization

# Istanzia un modello Sequential model = Sequential()
# Aggiungi un livello di input model.add(Dense(3, input_shape=(2,), activation = 'relu'))
# Aggiungi la batch normalization per gli output del livello sopra model.add(BatchNormalization())
# Aggiungi un livello di output model.add(Dense(1, activation='sigmoid'))
Introduzione al Deep Learning con Keras

Esercitiamoci!

Introduzione al Deep Learning con Keras

Preparing Video For Download...