Por Eduardo Cesar Garrido Merchán
Profesor de Métodos Cuantitativos, Universidad Pontificia Comillas.
Pincha aquí para ver el vídeo sobre este post
Hasta ahora hemos visto la diferencia entre el concepto de parámetro y el de hiperparámetro y el motivo por el cuál es tan importante la búsqueda de los mejores valores de los hiperparámetros para un modelo de aprendizaje automático que esté resolviendo una tarea de regresión o clasificación. En esta entrada, os detallaré los conceptos básicos de una metodología que es capaz de obtener los mejores resultados para este problema, la optimización Bayesiana.
La optimización Bayesiana es una clase de métodos que se han utilizado satisfactoriamente para realizar la búsqueda de hiperparámetros de modelos de aprendizaje automático. La clave de su éxito radica en que utiliza un modelo probabilístico surrogado, típicamente un proceso Gaussiano, que modela la incertidumbre acerca de la evaluación del error de generalización que se comete para cualquier valor de los hiperparámetros dentro del rango de búsqueda del problema. Es decir, que para cualquier posible valor con el que puedo configurar el modelo, la optimización Bayesiana va a tener una distribución de probabilidad, normal en el caso de un proceso Gaussiano, que te indica el error medio predicho por el modelo y su incertidumbre. Teniendo esta información, la optimización bayesiana utiliza una función de adquisición o utilidad que calcula como de útil es evaluar cada posible configuración del modelo de aprendizaje automático en función a la distribución posterior predictiva del proceso Gaussiano. Lo mas interesante de todo esto es que esta función de adquisición es un balance entre exploración de regiones del espacio de hiperparámetros desconocidas que no se han explorado con anterioridad y que podrían ocultar buenos valores de error y explotación de regiones del espacio de hiperparámetros que ya se han evaluado satisfactoriamente anteriormente.
Pongamos un ejemplo, si he obtenido un buen error con una red neuronal de 30 neuronas, entonces, es probable que obtenga un aún mejor resultado con 29 o 31 neuronas. Esto es a lo que me refiero en el anterior párrafo con explotación. Sin embargo, si he evaluado una red con 185 neuronas y tengo un error alto, entonces es muy probable que una red con 184 o 186 neuronas tenga también un error alto. No nos interesaría evaluar esa zona. Además, es muy posible que una red con 100 neuronas nos proporcione un modelo con un error bajo, por lo cuál me interesaría evaluar ese valor o su vecindario si, por ejemplo, no he evaluado ninguna red entre 50 y 150 neuronas. Esto último es exploración del espacio de hiperaparámetros. Pues en el problema de búsqueda de hiperparámetros seguimos este criterio, teniendo en cuenta que hay muchísimos hiperparámetros. Si se presta la suficiente atención, se descubre que, en aprendizaje automático, una variación leve en el valor de los hiperparámetros implica una variación leve del error. Por eso, la optimización Bayesiana funciona mejor que la búsqueda aleatoria y en rejilla, que, como se ha visto en el video anterior, solo exploran pero no explotan el espacio.