Clase No. 11:
Método de mínimos cuadrados(Continuación)
MAT–251 Dr. Alonso Ramírez ManzanaresCIMAT A.C.e-mail: [email protected]: http://www.cimat.mx/salram/met_num/
Dr. Joaquín Peña AcevedoCIMAT A.C.e-mail: [email protected]
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 1 / 25
Gradientes de formas lineales y cuadráticas
Sean c,x ∈ Rn, y A ∈ Rn×n.Queremos calcular ∇(c>x) y ∇(x>Ax).
∇(c>x) = c
∇(x>Ax) = (A+A>)x
De lo anterior se sigue que el gradiente del error
E(x) = ‖Ax − b‖22es
∇E(x) = 2A>Ax − 2A>b
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 2 / 25
Gradientes de formas lineales y cuadráticas
Sean c,x ∈ Rn, y A ∈ Rn×n.Queremos calcular ∇(c>x) y ∇(x>Ax).
∇(c>x) = c
∇(x>Ax) = (A+A>)x
De lo anterior se sigue que el gradiente del error
E(x) = ‖Ax − b‖22es
∇E(x) = 2A>Ax − 2A>b
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 2 / 25
Gradientes de formas lineales y cuadráticas
Sean c,x ∈ Rn, y A ∈ Rn×n.Queremos calcular ∇(c>x) y ∇(x>Ax).
∇(c>x) = c
∇(x>Ax) = (A+A>)x
De lo anterior se sigue que el gradiente del error
E(x) = ‖Ax − b‖22es
∇E(x) = 2A>Ax − 2A>b
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 2 / 25
Caso particular: Ajuste de una recta (I)
Tenemos m puntos {(xi,yi)} y queremos hallar una recta que mejor losaproxime:
1.5
2
2.5
3
3.5
4
4.5
5
0 0.2 0.4 0.6 0.8 1
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 3 / 25
Caso particular: Ajuste de una recta (II)
Esto es, queremos determinar la pendiente a y la ordenada al origen b talesque
yi = axi + b+ εi, i = 1,2, ...,m
Si definimos
A =
x1 1x2 1...
...xm 1
, x =
�
ab
�
, y =
y1y2...ym
, ε =
ε1ε2...εm
Entonces ε = y − Ax y podemos reescribir E(a,b) como
E(a,b) =m∑
i=1
ε2i = ‖ε‖22 = ‖Ax − y‖22
E(a,b) = (Ax − y)>(Ax − y) = (x>A> − y>)(Ax − y)
= x>A>Ax − 2y>Ax+y>y
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 4 / 25
Caso particular: Ajuste de una recta (III)
Entonces
∇E = 0 =⇒ A>Ax = A>y
Para nuestro ejemplo, tenemos que m = 50, por lo que A ∈ R50×2.Además, det(A>A) = 214.05, por lo que el sistema tiene solución única:
x =
�
3.09511.4438
�
En realidad, los datos fueron generados tomando puntos sobre la recta cona = 3.0 y b = 1.5 y agregándoles ruido.
En la siguiente gráfica se muestra en azul la recta obtenida por mínimoscuadrados
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 5 / 25
Caso particular: Ajuste de una recta (IV)
1.5
2
2.5
3
3.5
4
4.5
5
0 0.2 0.4 0.6 0.8 1
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 6 / 25
Planteamiento general del caso lineal (I)
Tenemos n parámetros q1,q2, ...,qn. Para i = 1,2, ...,m, se quiere relacionaruna combinación de valores (qi1,qi2, ...,qin) con una observación yimediante un modelo lineal:
yi = c1qi1 + · · ·+ cnqin + εi
donde εi es un error que tiene el modelo. Entonces
εi = yi −n∑
j=1
cjqij
Queremos calcular los coeficientes cj minimizando los errores εi. Unamanera es resolver el problema
mincj
1≤j≤n
E(c1, ...,cn) =m∑
i=1
ε2i =
m∑
i=1
yi −n∑
j=1
cjqij
!2
Si definimos
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 7 / 25
Planteamiento general del caso lineal (II)
A =
q11 q12 · · · q1nq21 q22 · · · q2n
......
. . ....
qm1 qm2 · · · qmn
, c =
c1c2...cn
, y =
y1y2...ym
ε =
ε1ε2...εm
Entonces
y = Ac+ ε
mincj
1≤j≤n
E(c) =m∑
i=1
ε2i = ε>ε = (y − Ac)>(y − Ac)
Calculamos el gradiente de E(c) y encontramos el vector c para el cual∇E(c) = 0.Se puede ver que la solución se obtiene resolviendo el sistema lineal
A>Ac = A>y.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 8 / 25
Observación (I)
Una sola observación atípica puede cambiar la solución del problema:
1.5
2
2.5
3
3.5
4
4.5
5
0 0.2 0.4 0.6 0.8 1
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 9 / 25
Observación (II)
-20
-15
-10
-5
0
5
0 0.2 0.4 0.6 0.8 1
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 10 / 25
Observación (III)
Para evitar esto, se puede agregar un peso wi > 0 a cada termino de lasuma de cuadrados:
E(a,b) =m∑
i=1
wi(axi + b− yi)2
de modo que a los términos que introducen errores grandes se les da unmenor peso.
Esto nos lleva a un problema de mínimos cuadrados pesados.En el ejemplo, cuando todos los pesos son wi = 1, se tiene
a∗ = 0.99654, b∗ = 2.14316
Si hacemos w48 = 0.001, se obtiene
a∗ = 3.0876, b∗ = 1.4463
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 11 / 25
Observación (IV)
-20
-15
-10
-5
0
5
0 0.2 0.4 0.6 0.8 1
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 12 / 25
Ejemplo de mínimos cuadrados pesados (I)
Para los datos que se muestran en la gráfica se ajusta una recta usando elmétodo ordinario. Después definimos los pesos wi de acuerdo a lasdistancia de los datos a la recta (en falso color se indica el valor del peso)
−2 −1 0 1 2
−2
02
46
810
Y
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●
●
●
●●
●
●
●●
●
●
●●●●●●
●
●●
●
●● ●
●
●
●
● ●
●
●
●
●●
● ●
●
●●
●
●●
●
●●
●
Iteracion 1
0.0
0.2
0.4
0.6
0.8
1.0Pesos
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 13 / 25
Ejemplo de mínimos cuadrados pesados (II)
Dado los pesos, resolvemos el problema usando el método de mínimoscuadrados pesados.Despues volvemos a recalcular los pesos.
−2 −1 0 1 2
−2
02
46
810
Y
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●
●
●
●●
●
●
●●
●
●
●●●●●●
●
●●
●
●● ●
●
●
●
● ●
●
●
●
●●
● ●
●
●●
●
●●
●
●●
●
Iteracion 5
0.0
0.2
0.4
0.6
0.8
1.0Pesos
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 14 / 25
Ejemplo de mínimos cuadrados pesados (III)
Continuamos de este modo hasta que la solución ya no cambia.
−2 −1 0 1 2
−2
02
46
810
Y
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●
●
●
●●
●
●
●●
●
●
●●●●●●
●
●●
●
●● ●
●
●
●
● ●
●
●
●
●●
● ●
●
●●
●
●●
●
●●
●
Iteracion 15
0.0
0.2
0.4
0.6
0.8
1.0Pesos
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 15 / 25
Lo que NO estamos haciendo
No es que es estemos planteando resolver el sistema sobredeterminado
Ac = y
y para resolverlo multiplicamos por A> ambos miembros de la ecuación.Lo que pasa es que el sistema puede ser inconsistente, por lo que puedeque no exista c que cumpla la igualdad.
Para el ejemplo inicial, tenemos que con
a∗ = 3.0951, b∗ = 1.4438.
se tiene un error
E(a,b) = 0.82919
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 16 / 25
Lo que SÍ estamos haciendo
Notemos que el vectorA>y
tiene las proyecciones de y sobre las columnas de la matrizA = [a1 a2 · · · an]:
A>y =
a>1
a>2...a>n
y =
a>1y
a>2y
...a>ny
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 17 / 25
Ajuste de datos 1D (I)
Tenemos un conjunto de datos {(xk,yk)}mk=1.
Queremos encontrar una función f (x) cuya gráfica pase cerca de lospuntos dados.
●
●
●
●
●
●
● ●●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
−3 −2 −1 0 1 2
−0.
50.
00.
51.
0
x
y
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
−3 −2 −1 0 1 2
−0.
50.
00.
51.
0
x
y
Tenemos un conjunto de datos {(xk,yk)}mk=1.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 18 / 25
Ajuste de datos 1D (II)
Queremos encontrar una función f (x) cuya gráfica pase cerca de lospuntos dados.
−3 −2 −1 0 1 2
−0.
50.
00.
51.
0
x
y
●
●
●
●
●
●
● ●●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
−3 −2 −1 0 1 2
−0.
50.
00.
51.
0
x
y
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
Primero hay que decir a que nos referimos con "cerca". Lo podemos definiren el sentido de mínimos cuadrados:
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 19 / 25
Ajuste de datos 1D (III)
minf
1
2
m∑
k=1
[ f (xk)− yk ]2 (1)
Observaciones:
Si xk 6= xj para k 6= j, hay una infinidad de funciones cuya gráfica pasapor los por los puntos.
Si existen k 6= j, tales que xk = xj y yk 6= yj, entonces no existe unafunción cuya gráfica pase por los puntos dados.
Para simplificar el problema, podemos restringir el espacio de solución acierto tipo de funciones:
f (x) =n∑
j=1
αjϕj(x). (2)
Sustituyendo en (1), tenemos
E =1
2
m∑
k=1
[f (xk)− yk]2 =1
2
m∑
k=1
n∑
j=1
αjϕj(xk)− yk
2
.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 20 / 25
Ajuste de datos 1D (IV)
Derivando respecto a αi, se tiene
∂E
∂αi=
m∑
k=1
n∑
j=1
αjϕj(xk)− yk
ϕi(xk).
Para cada i, queremos los valores aj que hacen ∂E∂αi
= 0. Esto es
n∑
j=1
m∑
k=1
ϕj(xk)ϕi(xk)
αj =m∑
k=1
ϕi(xk)yk.
Para obtener directamente la expresión de la solución hay que notar quepara cada i, se tiene que el error está dado por
εi = f (xi)− yi =n∑
j=1
αjϕj(xi)− yi
Si
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 21 / 25
Ajuste de datos 1D (V)
Φ =
ϕ1(x1) ϕ2(x1) · · · ϕn(x1)ϕ1(x2) ϕ2(x2) · · · ϕn(x2)
......
. . ....
ϕ1(xm) ϕ2(xm) · · · ϕn(xm)
, y =
y1y2...yn
, α =
α1α2...αn
,
el vector de errores se expresa como
ε =
ε1...εm
= Φα − y
Queremos minimizar
E = ‖ε‖22 = ε>ε = (Φα − y)>(Φα − y)
Calculamos el gradiente de E y lo igualamos a cero. Con esto obtenemosque el sistema lineal que hay que resolver para obtener la solución demínimos cuadrados:
Φ>Φα = Φ>y.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 22 / 25
Ajuste de datos 1D (VI)
Sólo falta es seleccionar las funciones ϕj(x).Por ejemplo, seleccionamos las funciones:
ϕj(x) = exp(−γ(x− cj)2)
−3 −2 −1 0 1 2 3
0.0
0.2
0.4
0.6
0.8
1.0
c(a0, a1)
c(0,
1.1
)
γ = 1
γ = 5
−3 −2 −1 0 1 2 3
0.0
0.2
0.4
0.6
0.8
1.0
c(a0 − 0.1, a1 + 0.1)
c(0,
1)
φ1 φ2 φ3 φ4 φ5
Ejemplos:
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 23 / 25
Ajuste de datos 1D (VII)
Para m = 80 puntos en los que xi ∈ [−3,2.5] y usando n = 6 funcionesGaussianas ϕj(x) distribuidas con uniformemente es ese intervalo, seobtiene el siguiente resultado cuando no hay ruido en los datos:
-0.5
0.0
0.5
1.0
-3 -2 -1 0 1 2 3
Si agregamos ruido a los datos, resolvemos el problema de mínimoscuadrados para encontrar α, y evaluamos la función f (x) resultante en elintervalo [−3,2.5] y obtenemos la curva roja.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 24 / 25
Ajuste de datos 1D (VIII)
-1.0
-0.5
0.0
0.5
1.0
1.5
-3 -2 -1 0 1 2 3
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 14.09.2015 25 / 25