80 likes | 360 Views
Ajuste de funciones. Dado un conjunto de datos. que hay motivos para suponer que pueden ser representados por una función y = f(x, a 1 , …, a M ). en base al principio de máxima verosimilitud, se puede demostrar que el mejor ajuste está dado por la siguiente ecuación. Ajuste lineal.
E N D
Ajuste de funciones Dado un conjunto de datos que hay motivos para suponer que pueden ser representados por una función y = f(x, a1, …, aM) en base al principio de máxima verosimilitud, se puede demostrar que el mejor ajuste está dado por la siguiente ecuación
Ajuste lineal OJO!!! NO es el ajuste de una recta Si la función f es lineal en los aj minimizando con respecto a ak inmediatamente lleva al sistema de ecuaciones lineales que tiene solución analítica, final feliz y la vida es bella
Ajuste no lineal Si la función f no es una combinación lineal de los aj el sistema no tiene necesariamente solución analítica No queda más remedio que usar métodos numéricos Cómo se busca un mínimo de una función en M dimensiones? Si estamos cerca del mínimo c2 debería ser casi parabólica , con D el hessiano de c2 que se puede resolver iterativamente buscando por Newton Raphson el cero del gradiente
Ajuste no lineal Por el otro lado, si estamos lejos del mínimo, se puede usar el método del máximo gradiente que siempre tiene el problema de elegir un valor para a Levenberg y Marquardt se dieron cuenta que: i) las últimas dos ecuaciones tienen una forma similar, ii) la inversa de los elementos de la diagonal del hessiano Djj tienen las mismas unidades que a(para cada aj)
Método de Levenberg - Marquardt l << 1 Newton-Raphson l >> 1 Máximo gradiente Definamos 1) Elegir un valor inicial para a, evaluar c2, iniciar l<<1 (~10-3) ~ 2) Calcular Da en base a D y evaluar c2 en a+Da 3) Si c2 aumentó, incrementar l (típico x10) y volver a 2 4) Si c2 disminuyó, decrementar l (típico x10), actualizar a = a + Da, y volver a 2 En algún lugar poner condición de convergencia para parar (típico en 2)
Simplex Si realmente no sabemos donde estamos, podemos hacer algo? Un Simplex es una figura geométrica que en M dimensiones tiene M+1 vértices (en 2D es un triángulo, en 3D un tetrahedro) 1) Empezar con un Simplex inicial (a inicial) 2) Evaluar c2 en cada vértice y elegir el vértice donde es mayor 3) Reflejar este vértice en la cara opuesta y volver a 2 A esto se le agregan tests para escalear el tamaño del Simplex y poder pasar por angostamientos o atravezar “ojos de aguja”
Simplex Función de Rosenbrock
Simplex Función de Himmelblau f(x,y) = (x2 + y - 11)2 + (x + y2 - 7)2