Entrenar una red neuronal implica optimizar un gran conjunto de parámetros que son muy interdependientes. Debido a esto, puede tomar muchos ejemplos de entrenamiento etiquetados antes de que la red se asiente en un área del espacio de solución que está cerca de la solución óptima (o al menos, la solución óptima para esta ejecución de entrenamiento). Esto se ve exacerbado por la naturaleza estocástica del descenso de gradiente por lotes y la práctica común de comenzar con una gran tasa de aprendizaje y disminuirla lentamente (lo cual es común por una razón: es muy efectivo). En resumen, el algoritmo de optimización requiere mucha información.
Desafortunadamente, el tipo de datos neurales multidimensionales que requieren las redes es costoso de etiquetar y ocupa grandes cantidades de espacio de almacenamiento. Por lo tanto, aunque necesita alimentar muchos datos de su red, la cantidad de muestras disponibles es generalmente mucho menor que la cantidad de muestras que necesita para alcanzar un óptimo útil. Puede haber suficiente información en estas muestras de entrenamiento, pero el algoritmo de descenso de gradiente toma tiempo para extraerlo. Puede compensar el número limitado de muestras haciendo múltiples pases sobre los datos. Esto le dará tiempo al algoritmo para converger, sin requerir una cantidad poco práctica de datos.
Para resumir, el descenso de gradiente por lotes requiere más iteraciones para converger de lo que permitirá un paso sobre el conjunto de datos. ¡Espero que ayude!
- ¿Puedo tener éxito en una maestría en IA / ML si no soy un gran programador?
- ¿Alguna vez habrá un programa que use estilometría para descubrir toda mi actividad anónima en Internet?
- ¿Cómo podríamos (en teoría) resolver una red neuronal exactamente?
- ¿Qué marco debo aprender en Python para crear proyectos de IA?
- ¿Un sistema programado capaz de desarrollar inteligencia artificial de una manera similar a la evolución biológica debería ser tan complejo como el sistema en el que evolucionamos?