es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Batchnormalize, Dropout y número de capas

Estoy aprendiendo batchnormalisation y dropout. Visto esto en https://www.kaggle.com/ryanholbrook/dropout-and-batch-normalization.

El modelo

model = keras.Sequential([
    layers.Dense(1024, activation='relu', input_shape=[11]),
    layers.Dropout(0.3),
    layers.BatchNormalization(),
    layers.Dense(1024, activation='relu'),
    layers.Dropout(0.3),
    layers.BatchNormalization(),
    layers.Dense(1024, activation='relu'),
    layers.Dropout(0.3),
    layers.BatchNormalization(),
    layers.Dense(1),
])

Mi pregunta es, ¿ponemos dropout antes de batchnormalization (BN) o después? ¿Los resultados son los mismos?

Mi entendimiento es que dropout “desactivará” la neurona en la capa siguiente (disculpe mi terminología). Entonces, si lo pongo antes de BN, ¿BN normalizará incorrectamente ya que no es la salida completa de la capa anterior?

¿Deberíamos poner dropout después de BN? ¿Importa?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según el artículo publicado en Kaggle, se recomienda generalmente colocar la Normalización por Lotes antes de la Desactivación en el modelo. Esto se debe a que la desactivación elimina de manera aleatoria neuronas durante el entrenamiento, lo que puede hacer que las estadísticas de la normalización por lotes fluctúen. Al colocar la normalización por lotes antes de la desactivación, estamos normalizando las entradas y esto facilita que la desactivación aprenda patrones significativos sin que la normalización interfiera.

    Dicho esto, es importante tener en cuenta que el orden de estas dos capas no siempre es relevante y, en última instancia, la efectividad de un modelo puede depender de múltiples factores, como la arquitectura específica y el conjunto de datos utilizado.

Comments are closed.