Las redes de neuronas profundas están demostrando sus grandes capacidades para la construcción de modelos de predicción y/o clasificación para la resolución de problemas complejos. Este proceso de construcción es cada vez más complicado debido principalmente a la gran cantidad de elementos que deben ser seleccionados y/o configurados durante su proceso de construcción con el objetivo de crear una red de neuronas que sea capaz de entrenar modelos que cumplan con nuestras necesidades y expectativas.

A la hora de construir una red de neuronas profunda podemos diferenciar tres tipos de parámetros: (1) los parámetros de entrada que se corresponde con las diferentes instancias que utilizaremos durante la fase de aprendizaje de la red de neuronas; (2) los parámetros de aprendizaje que son los diferentes componentes de la red que irán variando su valor durante la fase de entrenamiento y que permiten que la red aprenda a partir de los parámetros de entrada; (3) y los parámetros de configuración o hiper-parámetros que son los que nos permiten configurar la estructura de la red de neuronas o el modo de ejecución de la fase de entrenamiento, dividiéndose estos en dos grupos:

Esto implica que el número de hiper-parámetros a configurar puede ser muy elevado dependiendo de la complejidad de la red que necesitemos construir incrementando la complejidad, desde el punto de vista de los ingenieros de Machine Learning, a la hora de seleccionar de manera manual los valores adecuados de estos hiper-parámetros. Por lo que es importante dotarlos de técnicas que les permitan seleccionar de manera sencilla y eficiente los posibles valores de los hiper-parámetros. Este proceso de selección automática de hiper-parámetros se denomina optimización de hiper-parámetros. Este proceso de selección se denomina optimización de hiper-parámetros.

Optimización de hiper-parámetros

La optimización de hiper-parámetros se realiza normalmente mediante la utilización de un proceso de búsqueda cuyo objetivo consiste en encontrar la mejor selección de valores para un conjunto finito de hiper-parámetros con el objetivo de generar el mejor modelo posible.

Los algoritmos de búsqueda se basan en tres elementos básicos: (1) un espacio, normalmente finito, de posibles estados que se corresponden con las posibles soluciones del problema sobre los que se realizará la búsqueda; (2) un conjunto de acciones que nos permiten generar nuevos estados a partir de los estados generadores previamente; (3) y una función objetivo que permite definir la “calidad” de cada uno de los estados que son generados de manera que el algoritmo pueda utilizar esta función para maximizar o minimizar el objetivo para guiar el proceso de búsqueda a la hora de seleccionar el siguiente nodo a expandir.

Desde la perspectiva de un proceso de optimización de hiper-parámetros, el espacio de estados se corresponde con todas las posibles configuraciones de los hiper-parámetros en base a los rangos de posibles valores definidos para cada uno de ellos; las acciones se corresponden con operaciones utilizadas por el algoritmo de búsqueda para generar nuevas estados; y la función objetivo que permite guiar el proceso de búsqueda con el objetivo de maximizar o minimizar los valores obtenidos para cada estado. Es muy común utilizar el “accuracy” obtenido tras la ejecución de la fase de entrenamiento como valor objetivo para guiar el proceso de búsqueda.

Como se puede observar este proceso es normalmente muy costoso desde el punto de vista computacional, ya que supone la ejecución de múltiples fases de entrenamiento mediante la modificación conjunta de los diferentes hiper-parámetros a optimizar. Es decir, cuanto mayor sea el número de hiper-parámetros a seleccionar, mayor será el tiempo y el coste computacional del proceso de optimización debido al elevado número de combinaciones válidas que pueden seleccionarse. Para realizar el proceso de selección de hiper-parámetros se utilizan diferentes tipos de algoritmos de búsqueda, siendo los más utilizados los que se describen a continuación:

Además de estas tres existen otras técnicas de búsqueda para la optimización de hiper-parámetros, algunas de las cuales están incluidas en los diferentes frameworks de Aprendizaje Automático y Aprendizaje Profundo:

Con independencia del tipo de algoritmo de búsqueda que vayamos a utilizar, el proceso de optimización de hiper-parámetros suele estar formado por cuatro fases:

Conclusión

La utilización de procesos de optimización de hiper-parámetros es una técnica que nos permite construir modelos de razonamiento basados en Aprendizaje Automático más robustos, aunque implica un incremento sustancial a nivel computacional y temporal del proceso de aprendizaje dependiendo del número de hiper-parámetros a optimizar y la complejidad del problema a resolver. Es muy importante a la hora de realizar un proceso de optimización seleccionar con mucho cuidado el número de hiper-parámetros y sus posibles rangos de valores ya que una selección excesiva de posibles configuraciones podrían tardar muchísimo en generar mejores soluciones debido al tamaño del espacio de búsqueda, por lo que se recomienda realizar selecciones más acotadas.

En todo caso, lo más recomendable es aplicar este tipo de técnicas una vez que hayamos conseguido entrenar un modelo con calidad aceptable y, a partir de ese modelo, aplicar un problema de optimización con el objetivo de mejorar su resultado. En los próximos días publicaremos la segunda parte de este post donde os mostraremos cómo aplicar la optimización de hiper-parámetros sobre redes de neuronas profundas mediante la utilización de la librería Keras Tuner.

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete

Estamos comprometidos.

Tecnología, personas e impacto positivo.