¿La retropropagación de red neuronal de convolución utiliza un algoritmo en línea o un algoritmo por lotes?

Suponiendo un conjunto de datos de entrenamiento de [math] N [/ math] ejemplos y que el algoritmo de aprendizaje automático (ML) muestrea ese conjunto de datos con un tamaño de muestra de [math] s [/ math] para evaluar los gradientes en cada paso de actualización. Podemos identificar las siguientes técnicas basadas en gradientes.

  • Descenso de gradiente estocástico (SDG): que se encuentra en el extremo usando solo un ejemplo para evaluar los gradientes antes de dar un pequeño paso. Entonces [math] s = 1 [/ math] para SGD.
  • El intermediario es el descenso de gradiente por lotes que utiliza un grupo (lote) de ejemplos de modo que el tamaño de la muestra es [matemática] 1 <s <N [/ matemática] para evaluar los gradientes.
  • Descenso de gradiente que se encuentra en el otro extremo usando los ejemplos completos de entrenamiento para evaluar los gradientes en cada paso. Por lo tanto, esto tiene un tamaño de muestra [matemática] s = N [/ matemática] y, por lo tanto, es computacionalmente exigente. Esto normalmente se limita a la optimización numérica en matemáticas.

Mirando esos tres enfoques, ¿cuál crees que se puede aplicar comúnmente? SGD, por supuesto, la simplicidad, escalabilidad y efectividad de SGD es muy atractiva para entrenar modelos ML especialmente si los recursos computacionales son insuficientes, como es el caso para la mayoría de los problemas.

En la práctica real, el descenso de gradiente por lotes se usa comúnmente debido a que realiza SGD pero a un costo de cierta sobrecarga computacional proveniente del procesamiento de lotes de ejemplos por paso de actualización. Los dos, SGD y descenso de gradiente normal son solo una forma de descenso de gradiente por lotes con [math] s = 1 [/ math] y [math] s = N [/ math] respectivamente. Al aumentar el tamaño de la muestra [math] s [/ math], el rendimiento aumenta hasta cierto punto cuando el rendimiento comienza a disminuir, por lo tanto, normalmente el tamaño del lote se mantiene razonablemente pequeño y [math] s = 1 [/ math] es un buen Tamaño del lote para la mayoría de los problemas.


Entonces

¿La retropropagación de redes neuronales convolucionales utiliza un algoritmo en línea o por lotes?

Bueno, puede usar cualquiera de las tres técnicas mencionadas anteriormente, de las cuales SGD es casi la técnica estándar, pero en la práctica, el descenso de gradiente de lote se usa con un tamaño de lote lo suficientemente grande por razones de precisión. El enfoque por lotes normalmente encuentra valores de parámetros de mayor calidad.

Espero que esto ayude.

Por lo general, el entrenamiento para la clasificación de imágenes se realiza mediante mini lotes, que se seleccionan de todo el conjunto de entrenamiento (“lote”). Por lo general, el tamaño de mini lote para Imagenet es ~ 32-128, dependiendo de la memoria de GPU disponible. El entrenamiento en línea (mini-lote = 1) de redes profundas es más difícil que el entrenamiento con mini-lotes, ya que los gradientes se vuelven muy ruidosos, también la normalización de lotes se vuelve muy inestable. Hacer operaciones con lotes muy grandes tampoco es trivial, principalmente debido al sobreajuste, y segundo porque lleva más tiempo en la pared converger a la precisión requerida

More Interesting

¿Es posible que un ingeniero de procesamiento de señales se involucre en el campo del aprendizaje automático?

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

¿Cuál es la distribución condicional completa?

¿Cómo se determinaría la relevancia de un artículo frente a algunas palabras clave?

¿Cuáles son algunos casos de uso para el aprendizaje automático en realidad virtual?

Supervisado versus no supervisado, inferencia versus predicción, paramétrico versus no paramétrico, ¿cómo se combinan esas características entre sí?

¿Qué lenguaje es mejor para hacer big data y machine learning (en términos de rendimiento) Java o Python?

¿Aprendizaje automático para predecir valores para t + 1?

¿Cuáles son las ideas principales detrás de los principales algoritmos de clasificación de búsqueda?

¿La normalización de lotes hará la diferencia al entrenar con tamaño de lote = 1?

¿Es suficiente tomar todos los cursos de la especialización de Machine Learning de la Universidad de Washington en el curso para obtener mi primer trabajo / pasantía en ML?

¿Los humanos son actualizadores bayesianos?

¿Qué biblioteca de PNL cubre la mayoría de los idiomas para un proyecto de análisis de sentimientos?

¿Cómo se hacen análisis de datos, estadísticas y aprendizaje automático en big data?

¿Cuál es / son los métodos para iniciar / elegir filtros en redes neuronales convolucionales?