Академический Документы
Профессиональный Документы
Культура Документы
Nombre de la Licenciatura
Master en ciencia de datos
Matrcula
000046970
Nombre de la Tarea
Sobreajuste de funciones y control de
______complejidad
Unidad #2
Ajustando datos a un modelo
Fecha
07/09/2017
SOBRE AJUSTE Y CONTROL DE COMPLEJIDAD
Nate Silver, en La seal y el ruido, habla de las dificultades que afrontamos cuando tratamos de
hacer buenas predicciones. Siguiendo la metfora del ttulo de su libro, la principal de ellas
es confundir seal con ruido: desarrollamos un modelo predictivo y tratamos de ajustarlo a los
datos que tenemos, pero, en el afn de afinar el modelo al mximo, acabamos ajustando el
modelo a las imperfecciones de los datos que tenemos, empeorando nuestra capacidad
predictiva.
2
vez un modelo puede describir por completo un fenmeno, lo que sera un modelo determinista:
lo habitual es que las predicciones sean imperfectas.
Por ejemplo, los modelos meteorolgicos toman como variables de entrada la temperatura,
humedad, presin atmosfrica y otros datos similares para predecir la temperatura futura y la
probabilidad de lluvia. Los modelos meteorolgicos no son infalibles. Cuando el modelo trata de
predecir el tiempo con ms das de antelacin, ms puede fallar.
Datos sintticos
Bishop nos propone un interesante ejercicio para explicar el over-fitting. Para ello, crea una
relacin artificial entre una variable de entrada x y una variable objetivo t, lo que permite crear
datos sintticos. Posteriormente, trata de disear un modelo que describa esos datos sin usar
informacin de cmo han sido creados.
Para crear los datos sintticos, Bishop usa una funcin conocida, t=sin(2x), a la cual aade
un poco de ruido, sumando a la variable tuna cierta cantidad aleatoria. Usando este mtodo,
generamos un conjunto de datos formado por 10 valores de x uniformemente distribuidos
entre 0 y 1 con sus correspondientes valores de t.
El siguiente grfico muestra estos datos:
3
Los puntos rojos son las parejas de valores (x,t). La lnea azul discontinua muestra la funcin
sin(2x)usada para generar los datos. La distancia entre los puntos rojos y la lnea discontinua
es el ruido aleatorio que hemos aadido.
La forma en que hemos generado estos datos captura una propiedad muy habitual de los datos
que encontramos en problemas reales: poseen una regularidad subyacente, que es la que
queremos capturar y modelizar, pero al observar un conjunto individual de datos estos se ven
corrompidos por algn tipo de ruido aleatorio.
Este ruido puede surgir por la propia naturaleza aleatoria del proceso, pero lo ms habitual es
que se deba a que no estamos observando alguna fuente de variabilidad que afecta al
fenmeno estudiado.
Supongamos que observamos nicamente los puntos rojos y que desconocemos que provienen
de una funcin sinusoidal. Nuestro propsito es crear un modelo, ajustarlo (entrenarlo) con los
datos que tenemos (las 10 parejas de valores de x y t descritos por los puntos rojos) con el
objetivo de poder predecir para nuevos valores de x, qu valores de t vamos a observar.
Para disear nuestro modelo vamos a usar una tcnica conocida como ajuste de curvas (curve
fitting). En concreto, trataremos de ajustarnos a los datos usando una funcin polinmica como
la siguiente
4
donde M es el orden del polinomio y xj es el valor de x elevado la potencia j. Los
parmetros w0 ,w1 ,...,wM los podemos referenciar de forma agupada como un vector w.
Esta forma de calcular el error tiene buenas propiedades: cuanto ms distancia hay entre el
modelo y los datos, mayor es el error. Y el error slo es cero si nuestra curva pasa exactamente
por los puntos rojos.
Minimizar la funcin de error anterior es simple, dado que es una funcin cuadrtica de los
parmetros w, de manera que las derivadas respecto a los parmetros son funciones lineales.
Por lo tanto, podemos encontrar una solucin nica, un conjunto de parmetros que
llamaremos w*.
5
Con M=2 tenemos una parbola, etc.
Mirando los resultados, vemos que los modelos con M=0 y M=1 se ajustan muy mal a los datos
que queremos reproducir: son demasiado rgidos. El modelo con M=3 reproduce bastante bien
los datos (aunque la curva no pasa exactamente por los puntos rojos). Curiosamente, tiene una
forma muy similar a la funcin sin(2x). Parece que un modelo con este nivel de complejidad
captura la esencia de los datos que queremos describir.
Si seguimos aadiendo complejidad al modelo y usamos M=9 (10 parmetros), se produce la
paradoja: el modelo se ajusta perfectamente a los datos (la curva pasa por los puntos rojos) y
por lo tanto no tiene error. Sin embargo, a simple vista se observa que la curva no sigue el
patrn de la funcin subyacente sinusoidal, es una curva errtica que va siguiendo los puntos
rojos.
6
Nos encontramos con un caso de over-fitting o sobreajuste. Hemos ajustado el modelo al
ruido de los datos, en lugar de ajustarlo a la natualeza del fenmeno que queremos modelizar.
En el ejemplo que hemos mostrado vemos que un modelo ms simple y por lo tanto menos
flexible es capaz de reproducir mejor la esencia de lo que queremos representar. Usar
modelos demasiado complejos puede hacer que demos demasiada importancia al ruido en
lugar de a la seal.
La primera es que debe existir un equilibrio entre la cantidad de datos que tenemos y la
complejidad del modelo. En nuestro ejemplo, cuando usamos un modelo con 10 parmetros
para describir un problema para el que tenemos 10 datos, el resultado es previsible: vamos a
construir un modelo a medida de los datos que tenemos, estamos resolviendo un sistema de
ecuaciones con tantas incgnitas como ecuaciones. Dicho de otra manera: si este modelo con
10 parmetros lo hubisemos ajustado con un total de 100 datos en lugar de 10, seguramente
funcionara mejor que un modelo ms bsico.
La segunda idea bsica: otra forma de detectar que nuestro modelo padece over-fitting es
observar el valor de los parmetros. Cuando se produce over-fitting, los parmetros de nuestro
modelo crecen de forma desmesurada, haciendo oscilar nuestra curva abruptamente. De
hecho, una manera de evitar el over-fitting sin necesidad determinar manualmente la
complejidad del modelo es aadir a la funcin de error que queremos minimizar la suma de los
cuadrados de los parmetros. De esta forma penalizamos los modelos ms complejos,
promoviendo que los parmetros sean ms suaves.
7
La prueba definitiva: la generalizacin
Finalmente, la mejor manera de evaluar si un modelo funciona es probarlo con nuevos datos!
A fin de cuentas, si creamos un modelo es para poder predecir resultados.
Para probar un modelo lo que se suele hacer es obtener un conjunto de datos diferente al
que se ha empleado para entrenar el modelo (a veces se dividen los datos disponibles en dos
grupos, unos para ser usados en la fase de entrenamiento del modelo y otros para la fase de
test). Si el modelo funciona, deberamos obtener buenas estimaciones de la variable objetivo a
partir de los nuevos datos.
Veamos qu sucede en el ejemplo anterior si obtenemos 10 nuevos datos y comparamos los
valores de t con las predicciones del modelo que hemos creado. Si hacemos esta comparacin
para cada posible complejidad del modelo (nmero parmetros del modelo), obtenemos el
resultado siguiente.
8
Al validar el modelo frente a nuevos datos de test, vemos que el error es algo mayor en general
pero que evoluciona de igual manera: mayor nmero de parmetros, menor error. Sin embargo,
observamos dos cosas importantes: (1) a partir de M=3, la mejora del error es muy pequea, lo
que indica que el modelo es suficientemente bueno. Y (2) cuando llegamos a M=9, el error se
dispara: tenemos un modelo sobre-ajustado a los datos de entrenamiento y al emplearlo en un
conjunto nuevo de datos, falla estrepitosamente.
Cuando este problema sucede decimos el modelo no est generalizando bien. Como no ha
capturado la informacin esencial del problema estudiado, no es capaz de dar buenas
predicciones cuando le damos nuevos datos generales.
Conclusiones
Bibliografa