Batchstorlek och batchnormalisering

Introduktion till djupinlärning med Keras

Miguel Esteban

Data Scientist & Founder

Introduktion till djupinlärning med Keras

Introduktion till djupinlärning med Keras

Mini-batchar

Fördelar

  • Nätverk tränas snabbare (fler viktuppdateringar på samma tid)
  • Kräver mindre RAM och möjliggör träning på stora datamängder
  • Brus kan hjälpa nätverket att nå lägre fel genom att undvika lokala minima

Nackdelar

  • Fler iterationer krävs
  • Behöver justeras – en lämplig batchstorlek måste hittas
Introduktion till djupinlärning med Keras

1 Stack Exchange
Introduktion till djupinlärning med Keras

Batchstorlek i Keras

# Fitting an already built and compiled model
model.fit(X_train, y_train, epochs=100, batch_size=128)
                                        ^^^^^^^^^^^^^^

Introduktion till djupinlärning med Keras

Introduktion till djupinlärning med Keras

Introduktion till djupinlärning med Keras

Introduktion till djupinlärning med Keras

Fördelar med batchnormalisering

  • Förbättrar gradientflödet
  • Tillåter högre inlärningshastigheter
  • Minskar beroendet av viktinitialisering
  • Fungerar som en oavsiktlig form av regularisering
  • Begränsar intern kovariatförskjutning
Introduktion till djupinlärning med Keras

Batchnormalisering i Keras

# Import BatchNormalization from keras layers
from tensorflow.keras.layers import BatchNormalization

# Instantiate a Sequential model model = Sequential()
# Add an input layer model.add(Dense(3, input_shape=(2,), activation = 'relu'))
# Add batch normalization for the outputs of the layer above model.add(BatchNormalization())
# Add an output layer model.add(Dense(1, activation='sigmoid'))
Introduktion till djupinlärning med Keras

Nu kör vi en övning!

Introduktion till djupinlärning med Keras

Preparing Video For Download...