La respuesta de Sadid Hasan es bastante buena y, en general, querrás automatizar esto si puedes.
Por supuesto, la automatización del ajuste de hiperparámetros puede no ser siempre factible por varias razones:
- Se necesita mucho tiempo para entrenar una red (por ejemplo,> 1 semana). En este caso, querrá ser inteligente sobre la configuración de hiperparámetro con la que elija probar. Y en la mayoría de los casos prácticos, usar un ser humano es la forma más sencilla de hacerlo.
- Es demasiado complicado configurar el código de ajuste adicional. En algunos casos, es más fácil (en términos de horas hombre empleadas) sintonizar manualmente la red. Esto es relativo a la complejidad de su red y al número de hiperparámetros que requieren optimización.
Ahora, volviendo a la pregunta original. Idealmente, espera la convergencia (por ejemplo, el error de validación deja de disminuir). Pero a veces esto puede llevar demasiado tiempo. Lamentablemente, no hay una buena respuesta a su pregunta. Mucho de esto se basa solo en la intuición y en asegurarse de que lo que espera que suceda y lo que realmente sucede es (principalmente) consistente. Descubrí que normalmente uso las siguientes heurísticas para guiar este tipo de decisiones:
- ¿Qué beneficios tendría la IA sobre la inteligencia humana?
- ¿Podría la IA en los videojuegos llegar a ser tan avanzada y consciente de sí misma que sería ilegal 'matarlos'?
- ¿Existe un mejor clasificador de aprendizaje automático?
- ¿Quora podrá competir con Watson de IBM?
- ¿Qué arquitectura de redes neuronales funcionará mejor para un problema de anotación de imagen y por qué?
- Mira las curvas de entrenamiento: ¿Oscila por todas partes? Si es así, debería parar y volver a correr con una tasa de aprendizaje más pequeña. Tal vez la convergencia es súper lenta en comparación con lo que esperaba. Corramos con un ritmo de aprendizaje más rápido y veamos cómo va.
- Observe el error de validación: si la tasa a la que disminuye el error de entrenamiento es significativamente mayor que la tasa a la que disminuye el error de validación, el modelo probablemente esté sobreajustado. Así que terminemos el entrenamiento temprano y reduzcamos el número de nodos / capas.
- Incremente iterativamente la complejidad de la red: un error común es comenzar con una red gigante y complicada y esperar que sea una bala mágica. Me da un poco de vergüenza admitir que he cometido este error en varias ocasiones. No hace falta decir que no es una buena idea. En cambio, lo que desea hacer es comenzar de manera simple y hacer crecer la red. Si parece que la red está convergiendo bastante rápido con una sola capa, tome una instantánea mental y aumente a, por ejemplo, 3 capas. Si una red de 3 capas tiene un error de validación peor que el modelo más simple (dado el mismo error de entrenamiento), probablemente estamos sobreajustando. Entonces deberíamos dejar de entrenar e intentar algo más simple.
Por ahora esto es todo lo que tengo. Trataré de agregar más heurísticas más adelante cuando piense en ellas. Para cualquiera que lea, siéntase libre de ofrecer sugerencias / críticas a esta respuesta si algo suena mal o me falta algo obvio.
¡Buena suerte!