No siempre, a veces el costo se atascará, nunca cruzando una cierta precisión. Como cuando se trabaja con MNIST, un conjunto de datos relativamente simple, es fácil obtener una precisión del 99%, pero es mucho más difícil pasar del 99% al 99.5%, por ejemplo.
Aumentar los datos de entrenamiento en tal escenario es una exageración. El mejor enfoque es mirar los métodos de regularización y la arquitectura en sí, hay varios métodos que puede usar para mejorar el rendimiento sin recurrir a aumentar los datos de capacitación, use:
- [matemática] L_1 [/ matemática] o [matemática] L_2 [/ matemática] regularización: este tipo de regularización penaliza grandes pesos, que son la causa de muchos comportamientos erróneos en las redes neuronales. Forzan a la red a aprender un modelo algo más escaso y simple. [math] L_1 [/ math] es especialmente bueno para inducir la dispersión en la red. Esto puede ayudar a reducir aún más el costo de la capacitación.
- Abandono: este algoritmo literalmente elimina un conjunto aleatorio de neuronas de la red, lo que obliga a la red entrenada en general a comportarse como una técnica de promedio de modelo, es decir, la red general está compuesta por varias subredes cuyas respuestas se promedian juntas. Todos sabemos que los métodos de conjunto siempre son mejores, por lo tanto, este algoritmo de deserción induce este proceso de promediación, por lo que puede verse libremente como un método de conjunto, al menos intuitivamente pero no literalmente. Otra forma de verlo es que al abandonar algunas neuronas aleatorias, el sistema tiende a aprender a lidiar con la degradación de una manera elegante, también se sabe que los cerebros biológicos se degradan con gracia. El abandono hace que las redes neuronales también se degraden con gracia, es decir, eliminar un pequeño conjunto de neuronas de la red no afectará tanto el rendimiento, mientras que eliminar una gran parte de las neuronas causará un rendimiento más degradado. Sí, en la práctica, todas las neuronas estarán disponibles, pero la entrada puede no estar tan limpia, por lo que esto hace que la red neuronal también se degrade un poco más con gracia con la degradación de la entrada. Esto hace que la deserción elimine el sobreajuste.
- Normalización por lotes: la idea básica aquí es normalizar la entrada de cada capa de modo que la distribución de cada entrada a cualquier capa sea bastante constante. Por lo tanto, esto mejora la convergencia de aprendizaje y el rendimiento de la red, lo que significa que también puede eliminar la necesidad de abandono, [matemática] L_1 [/ matemática] y [matemática] L_2 [/ matemática] regularización. Con la norma Batch (BN) hay parámetros adicionales entrenables para las capas BN, pero mejora el rendimiento general de la red, por lo que vale la pena.
Por lo tanto, no siempre recurra a aumentar los datos de entrenamiento sin agotar las muchas técnicas para mejorar el aprendizaje en redes neuronales profundas (DNN). Culpar a los datos debería ser el último recurso.
- ¿En qué se diferencia el aprendizaje automático de la minería de datos?
- ¿Cómo funciona el aprendizaje profundo en tiempo real?
- ¿Qué métodos (sin supervisión) deberían usarse para la categorización jerárquica automática de documentos?
- ¿Dónde puedo encontrar modelos de TensorFlow previamente entrenados como el zoológico modelo Caffe?
- ¿Cuál es la diferencia entre la clasificación de vectores de soporte y la regresión? ¿Un regresor de vectores de soporte se comporta como una red neuronal por casualidad?
Pero si sus datos son claramente pequeños, como unos pocos miles, considere capacitar una red menos profunda en lugar de una más profunda. Y si la red superficial tampoco es buena, intente con máquinas de vectores de soporte (SVM) con trucos de kernel. Deje todas las opciones sobre la mesa.
Si todo lo demás falla, reúna más datos de capacitación de mayor calidad.
Espero que esto ayude.