Tamanho do batch e batch normalization

Introdução ao Deep Learning com Keras

Miguel Esteban

Data Scientist & Founder

Introdução ao Deep Learning com Keras

Introdução ao Deep Learning com Keras

Mini-batches

Vantagens

  • Redes treinam mais rápido (mais atualizações de pesos no mesmo tempo)
  • Requer menos RAM; dá para treinar em conjuntos de dados enormes
  • Ruído pode ajudar a alcançar erro menor, escapando de mínimos locais

Desvantagens

  • É preciso rodar mais iterações
  • Precisa de ajuste: encontrar um bom tamanho de batch
Introdução ao Deep Learning com Keras

1 Stack Exchange
Introdução ao Deep Learning com Keras

Tamanho do batch no Keras

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

Introdução ao Deep Learning com Keras

Introdução ao Deep Learning com Keras

Introdução ao Deep Learning com Keras

Introdução ao Deep Learning com Keras

Vantagens do batch normalization

  • Melhora o fluxo do gradiente
  • Permite taxas de aprendizado maiores
  • Reduz a dependência da inicialização de pesos
  • Age como regularização não intencional
  • Limita o deslocamento interno de covariáveis
Introdução ao Deep Learning com Keras

Batch normalization no 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'))
Introdução ao Deep Learning com Keras

Vamos praticar!

Introdução ao Deep Learning com Keras

Preparing Video For Download...