¿Se siguen evaluando empíricamente las arquitecturas de redes neuronales profundas?

Sí, todavía están determinados empíricamente, pero combinan eso con algo de experiencia y perspicacia, de alguna manera se vuelve más fácil. Los investigadores a veces comienzan con lo que otros investigadores hicieron en el pasado y luego agregan algunas modificaciones bien pensadas para mejorar la arquitectura.

Las formulaciones matemáticas directas para la selección de hiperparámetros pueden ser realmente engorrosas y poco realistas en la mayoría de los casos avanzados. Tomemos, por ejemplo, un problema de reconocimiento de imagen, ¿cómo puede saber mirando los datos de capacitación qué tan profunda debe ser la red? ¿Qué tasa de aprendizaje utilizar? ¿Cuántos nodos por capa? y qué funciones de activación usar?

Eso es casi tan complicado como formular las teorías detrás del éxito de los algoritmos de aprendizaje profundo (DL). DL aún no se entiende bien a nivel teórico, los matemáticos todavía tienen que encontrar algunas explicaciones y pruebas reales de por qué DL funciona de la manera en que lo hace hoy.

Por lo tanto, es muy difícil descubrir matemáticamente los hiperparámetros, por eso se les llama hiperparámetros y existen en un hiperespacio que es tan difícil de modelar, visualizar y comprender.

Espero que esto ayude.

Existe un método para inferir hiperparámetros óptimos para una red llamada optimización bayesiana. Se basa en la idea de que se pueden encontrar hiperparámetros óptimos en un cierto múltiple en un espacio de hiperparámetros. Lo cual es tan riguroso como, por ejemplo, la física experimental.

Este método se está desarrollando para las llamadas funciones de recuadro negro. Eso significa que no se puede predecir realmente el resultado de un experimento sin llevarlo a cabo. En este sentido, sí, se evalúan empíricamente.

Para llegar a los mejores parámetros para una función determinada, los investigadores realizan varios experimentos, mapeando un pequeño subconjunto de parámetros a las funciones de costo. Esta es la parte “empírica”. Luego, bajo el supuesto de que existe un cierto patrón, los valores de la función de costo se infieren para otros conjuntos de parámetros y se está corrigiendo el modelo predictivo. Este es un intento de hacer el proceso más “teórico”.

Entonces, la respuesta se encuentra en algún punto intermedio. En la práctica, la optimización bayesiana no es omnipresente, la mayoría de las veces los parámetros se ajustan utilizando algunas ejecuciones y experiencia previa en el ajuste de arquitecturas similares, después de un tiempo se desarrolla “una sensación” de configuración óptima para ciertos problemas. Como me dijo mi antiguo mentor, todo lo que se necesita son varios miles de redes capacitadas. Pedazo de pastel

Estoy de acuerdo con la respuesta de Chomba Bupe sobre la dificultad matemática de determinar matemáticamente los hiperparámetros de la red neuronal, y no tengo nada más que aportar. Sin embargo, todavía hay otras partes de su pregunta que puedo abordar.

Cuando dice ” evaluado empíricamente” no se refiere a cómo se determinan los hiperparámetros. Usted pregunta cómo se mide su desempeño y la respuesta a esta pregunta depende de la tarea. Por ejemplo, puede usar precisión, recuperación, puntaje F, etc. en una tarea de clasificación supervisada, y esto ciertamente no es empírico. Sin embargo, para algo como word2vec, no hay una forma numérica obvia de evaluar su modelo además de ver cómo converge su objetivo, lo que claramente no le dice en qué medida las incrustaciones de palabras capturan significado. Aquí se utilizan algunas formas empíricas de evaluación, como buscar sinónimos en los vecinos más cercanos o buscar analogías de palabras en las incrustaciones, como ‘gatito’ – ‘gato’ + ‘cachorro’ = ‘perro’.

Además, cuando se pregunta si existen métodos rigurosos para descubrir la arquitectura , esa es una tarea aún más difícil que descubrir los hiperparámetros de esa manera. Yo diría que es imposible. Puedes crear infinitas arquitecturas diferentes.

Aún así, hay medidas que puede tomar para asegurarse de que está eligiendo los hiperparámetros y arquitecturas óptimos de aquellos que decide probar. Recuerde que a menudo tiene conjuntos de entrenamiento, validación y prueba. Lo que me gusta hacer es tener cuatro conjuntos: entrenamiento, melodía, desarrollo y prueba. La idea es probar diferentes arquitecturas, todas entrenadas con el conjunto de entrenamiento. Luego, sintoniza cada uno evaluándolos contra el conjunto de melodías. Las decisiones de ajuste indirectamente pueden hacer que su modelo se sobreajuste, por lo tanto, tiene otro conjunto para una “prueba a ciegas”. Esto garantiza que no se esté ajustando demasiado a todo su conjunto de datos. Después de elegir los mejores hiperparámetros para cada arquitectura, realiza la prueba a ciegas al evaluar cada uno de ellos con respecto al conjunto de desarrollo y luego toma una decisión de desarrollo de qué arquitectura decidirá mantener. Luego, puede refinar iterativamente esta arquitectura y finalmente evaluarla contra el conjunto de prueba una vez para asegurarse de que los otros conjuntos no se filtren demasiado en sus decisiones de ajuste. Esto es lo que usaría para informar formalmente sus resultados, porque es otra prueba a ciegas. Si sigue estrictamente este método, no está logrando rigurosidad matemática, pero ciertamente está eliminando posibles sesgos en la evaluación de su modelo.

De hecho, hay algunos desarrollos recientes en esta área. En general, puede utilizar el aprendizaje por refuerzo para este problema. El siguiente trabajo utiliza el aprendizaje por refuerzo para descubrir la arquitectura óptima para una red neuronal convolucional [1611.02167] Diseño de arquitecturas de redes neuronales mediante el aprendizaje por refuerzo. Otro usa RNN con aprendizaje de refuerzo en conjunto para encontrar nuevas arquitecturas [1611.01578] Búsqueda de arquitectura neuronal con aprendizaje de refuerzo. Probablemente hay mucho más trabajo aquí que los dos citados, este es un problema abierto como la mayoría de las investigaciones de aprendizaje profundo.

Sí, las arquitecturas todavía se evalúan empíricamente.

No, no hay una buena manera de encontrar hiperparámetros. Notaré que los hiperparámetros son técnicamente diferentes de una “arquitectura”, que generalmente tiene sus propios hiperparámetros (es decir, la “cardinalidad” de ResNeXt y el “tamaño denso” de DenseNet). Entonces los hiperparámetros no necesariamente componen una arquitectura.

En cuanto a una forma matemáticamente rigurosa, la respuesta es no, y lo más parecido que tenemos es la optimización bayesiana, que funciona peor que DRL y otros métodos “no rigurosos”.

Todavía se basa principalmente en prueba y error, pero hay algunas pautas generales que puede seguir al hacer estas pruebas. Un recurso que puede consultar es el siguiente artículo:

[1206.5533] Recomendaciones prácticas para el entrenamiento basado en gradientes de arquitecturas profundas

Pero el artículo anterior es un poco viejo. También es posible que desee consultar la sección del libro de aprendizaje profundo:

http://www.deeplearningbook.org/

Realmente no que yo sepa. Por lo general, existen reglas generales, como comenzar con poco y hacer que su red sea cada vez más profunda y más amplia. Haga una cuadrícula o una búsqueda aleatoria en los hiperparámetros. Finalmente, establezca un número de semilla para que otros puedan reproducir el rendimiento.

Pero no me fijen en eso, ¡este es un campo que se mueve muy rápido y solo estoy aprendiendo!

More Interesting

¿Cómo se pueden entender intuitivamente las dimensiones de las entradas LSTM?

¿Podría el aprendizaje automático erradicar el cáncer?

¿Cuál es la relación entre IA, aprendizaje automático y ciencias de la computación? ¿Hay especializaciones en IA o aprendizaje automático, o son especializaciones en informática?

¿Cuáles son algunos ejemplos de uso de modelos no lineales para regresión?

¿Por qué la función sigmoidea rara vez se usa en capas ocultas recientemente?

¿Cuáles son las principales empresas que trabajan en Deep Reinforcement Learning aparte de DeepMind y OpenAI?

¿Cuáles son las aplicaciones del procesamiento del lenguaje natural en una revista en línea?

¿Por qué utilizamos la política codiciosa de epsilon para la evaluación en el aprendizaje por refuerzo?

Dada una red de aprendizaje profundo, ¿se puede entrenar para enseñar (por ejemplo, resolviendo la secuencia óptima de ejemplos o lo que sea) otra red? Si es así, ¿se puede resolver este problema (enseñanza) utilizando técnicas de aprendizaje profundo?

¿Existe algún proyecto de código abierto que implemente algoritmos de aprendizaje profundo que aproveche la enorme potencia informática paralela de la GPU?

¿Existen garantías teóricas o justificaciones para los métodos de ensacado en el aprendizaje automático?

¿Qué papel juegan las redes neuronales y el aprendizaje automático en la atención médica?

¿Qué son las redes de iteración de valor?

¿Cuáles son algunas arquitecturas de redes neuronales?

¿Puedo usar el aprendizaje profundo o ANN para un problema de agrupación como KNN?