¿Alguna vez has observado que la normalización por lotes en realidad ralentiza el entrenamiento?

Probé una red con 2 capas conv y 2 capas completamente conectadas. 2 capas de normas por lotes … el entrenamiento tardó bastante en converger …

Lo que tienes es una red pequeña, 4 capas en total para ser precisos es una red poco profunda. Los efectos de normalización por lotes (BN) son más beneficiosos para las redes neuronales profundas (DNN). Lo que tiene allí es que BN introduce una carga computacional adicional más algunos parámetros adicionales. Así que hay dos factores en juego aquí.

  1. BN introduce una carga adicional que puede ralentizar el tiempo de ejecución.
  2. BN normalmente reduce la cantidad de épocas necesarias para entrenar la red, por lo tanto, puede terminar la capacitación muy temprano, justo después de una pequeña cantidad de épocas. Tampoco está haciendo uso de otros beneficios para acelerar aún más el proceso de aprendizaje.

Entonces es simple saber a dónde va mal.

No está reduciendo el conteo de época ni aprovechando los otros beneficios de BN lo suficiente como para compensar el tiempo adicional que proviene de la carga adicional de BN. Por lo tanto, le aconsejo que aproveche todos los beneficios de BN.

  1. Eliminar otros métodos de regularización.
  2. Aumentar la tasa de aprendizaje para acelerar aún más el aprendizaje.
  3. Reducir el recuento de época, ya que la red alcanza el mínimo justo después de algunas épocas.

De esa manera notará una aceleración debido al uso de BN. Pero tenga en cuenta que los beneficios son más evidentes en los DNN a gran escala, como las redes neuronales residuales (ResNet) con más de 200 capas que las redes más pequeñas y poco profundas.

Espero que esto ayude.

More Interesting

¿Por qué la función de activación de softmax se llama "softmax"?

¿Cuál es el mejor paquete R para predecir la causalidad entre dos flujos de datos de series temporales?

¿Es una idea loca aprender el aprendizaje automático y el aprendizaje profundo sin ningún conocimiento avanzado de matemáticas?

¿Puedo usar el algoritmo de aprendizaje automático en mi proyecto de investigación aunque no soy un experto en él?

¿Cómo le enseñas a un robot que ha cometido un error?

¿Cuál es la mejor estructura de base de datos para almacenar y consultar conjuntos de datos grandes?

¿Cómo se pueden usar las redes neuronales recurrentes para predecir el género a partir de los nombres de pila?

¿Qué son los núcleos en aprendizaje automático y SVM y por qué los necesitamos?

¿Vale la pena obtener un doctorado en aprendizaje automático y procesamiento del lenguaje natural?

¿Cómo se eligieron las palabras sesgo y varianza (Machine Learning)?

¿Por qué mi árbol de clasificación que realicé en MATLAB muestra solo un nodo?

¿Qué es la plataforma World Modeler y cómo se compara con plataformas similares?

¿Con qué biblioteca de aprendizaje automático debo experimentar entre SparkML, Microsoft Azure ML y AWS ML?

¿Cuál es la definición de un 'prior bayesiano'?

Si alguien sin experiencia en programación quisiera aprender algoritmos y aprendizaje automático, ¿cuáles serían las mejores fases de estudio e investigación? ¿Sería mejor comenzar con el aprendizaje de la codificación? ¿Con qué idioma es mejor comenzar?