análisis de datos - cinvestav · 18/19 algoritmo perceptrón marzo 2019....

20
Análisis de Datos Clasificadores lineales Algoritmo perceptrón Dr. Wilfrido Gómez Flores

Upload: others

Post on 27-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Análisis de Datos

Clasificadores linealesAlgoritmo perceptrón

Dr. Wilfrido Gómez Flores

Page 2: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Algoritmo perceptrón

Función de costo del perceptrón:

Jp(w) =∑x∈X

(−wT x) (1)

donde X es el conjunto de muestras clasificadas erróneamente porel vector de pesos w, esto es, wT x ≤ 0.

Si no hay muestras mal clasificadas, entonces X está vacío yJp(w) = 0, donde w es un vector solución.

Gradiente de la función Jp con respecto de w:

∇Jp(w) = −∑x∈X

x (2)

1/19 Algoritmo perceptrón Marzo2019

Page 3: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Algoritmo perceptrón

Input: w← 0, η(·)Output: w

1 k ← 02 do3 k ← k + 14 w← w + η(k)

∑x∈Xk

x

5 until wT xi > 0, ∀i-2

0

-2

0

0 2

5

2

10

44

Función de costo perceptrón Jp(w) como función de los pesos w1 y w2 para unproblema con tres patrones. El vector w comienza en 0 y secuencialmente se lesuman los vectores “normalizados” que fueron mal clasificados. En este ejemplo,la secuencia es x1 + x2 + x3, x3, x1, x3, hasta que el vector solución cae dentrode la región de soluciones y el algoritmo de descenso de gradiente termina.

2/19 Algoritmo perceptrón Marzo2019

Page 4: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Algoritmo perceptrón

-1

-1

1

0

0

0

1

1 -1

Al actualizar el vector w se cambia la inclinación del hiperplano e indirectamentese mueve la frontera de decisión (línea discontinua) en el espacio original de lasmuestras hasta alcanzar la convergencia.

3/19 Algoritmo perceptrón Marzo2019

Page 5: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Algoritmo perceptrón

Teorema de convergencia: si las muestras de entrenamiento sonlinealmente separables, entonces la secuencia de vectores de pesosgenerada por el algoritmo perceptrón terminará en un vector solución.

4/19 Algoritmo perceptrón Marzo2019

Page 6: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Incremento fijo

Regla de actualización de incremento fijo:

1. El valor de η(k) es constante y el incremento fijo toma η = 1.2. Las muestras se repiten en una secuencia infinita de manera

cíclica y el vector de pesos se modificará si una muestra dela secuencia es mal clasificada.

Actualización de pesos con descenso de gradiente:

w(1) arbitrario

w(k + 1) = w(k) + xk k ≥ 1(3)

donde wT (k)xk ≤ 0 para todo k.

5/19 Algoritmo perceptrón Marzo2019

Page 7: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Incremento fijo

Input: w← 0, nOutput: w

1 k ← 02 do3 k ← (k mod n) + 14 if wT xk ≤ 0 then5 w← w + xk

6 end7 until wT xi > 0, ∀i

6/19 Algoritmo perceptrón Marzo2019

Page 8: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Criterio de relajación

La regla de actualización con criterio de relación incorpora elconcepto de margen en la función de costo perceptrón.

Función de costo perceptrón con margen b > 0:

Jb(w) =1

2

∑x∈X

(b− wT x)2

‖x‖2(4)

donde X es el conjunto de muestras mal clasificadas por w.

Gradiente de la función Jb con respecto de w:

∇Jb(w) = −∑x∈X

b− wT x

‖x‖2x (5)

7/19 Algoritmo perceptrón Marzo2019

Page 9: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Criterio de relajación

Input: w← 0, b, nOutput: w

1 k ← 02 do3 k ← (k mod n) + 14 if wT xk ≤ b then5 w← w + η b−wT xk

‖xk‖2xk

6 end7 until wT xi > b, ∀i

-2

0

-2

0

0 2

5

2

10

44

Las funciones Jp y Jb utilizan las muestras mal clasificadas para corregir el vectorde pesos; la principal diferencia entre ambas es que Jb presenta una superficiede búsqueda más suave que Jp, y la región de soluciones que genera Jb está másacota que la región de soluciones obtenida por Jp.

8/19 Algoritmo perceptrón Marzo2019

Page 10: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Criterio de relajación

0 0.2 0.4 0.6

0

0.2

0.4

0.6

(a)

0 0.2 0.4 0.6

0

0.2

0.4

0.6

(b)

Fronteras de decisión generadas por un clasificador lineal: (a) regla de incrementofijo y (b) regla con criterio de relajación. El cuadro blanco representa un patrónde prueba mal clasificado en (a) y correctamente clasificado en (b).

9/19 Algoritmo perceptrón Marzo2019

Page 11: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Algoritmo pocket

En clases no linealmente separables, el algoritmo perceptrón nuncaconvergirá a un vector solución.

El algoritmo pocket es una variante que converge a una soluciónóptima aún si la condición de separabilidad lineal no se cumple.

Se le denomina pocket (bolsillo en inglés) porque guarda un re-gistro del vector de pesos que clasificó correctamente el mayornúmero de casos

10/19 Algoritmo perceptrón Marzo2019

Page 12: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Algoritmo pocketInput: w← 0, η, n, tmax

Output: wp

1 wp ← 0 // iniciliza vector de pesos pocket2 hp ← 0 // aciertos con wp

3 t← 04 do5 t← t+ 16 w← w + η

∑x∈Xt

x // corrección de pesos

7 h =n∑

i=1

{1 wT xi > 00 otro caso

// aciertos con w

8 if h > hp then9 wp ← w // actualiza vector de pesos pocket

10 hp = h

11 end12 until (t < tmax) ∧ (hp < n)

11/19 Algoritmo perceptrón Marzo2019

Page 13: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Algoritmo pocket

0 0.2 0.4 0.6 0.8 1

0

0.2

0.4

0.6

0.8

1

(a)

0 0.2 0.4 0.6 0.8 1

0

0.2

0.4

0.6

0.8

1

(b)

Fronteras de decisión (línea discontinua) generadas por el algoritmo pocket:(a) clases linealmente separables y (b) clases no linealmente separables.

12/19 Algoritmo perceptrón Marzo2019

Page 14: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Caso multiclaseEl algoritmo perceptrón en el caso multiclase construye una fun-ción lineal discriminante wi, i = 1, . . . , c, para cada clase.

Un patrón de prueba xt ∈ Rd+1 es clasificado en ωi si

wTi xt > wT

j xt, ∀i 6= j (6)

Construcción de Kesler: para cada patrón x ∈ ωi, se construyenc− 1 vectores de tamaño (d+ 1)c× 1:

xij = [0T , . . . , xT , . . . ,−xT , . . . ,0T ]T

Se genera una versión ‘normalizada’ de x, incluyendo a las clasesωi y ωj e ignorando con bloques de ceros a las clases restantes.

13/19 Algoritmo perceptrón Marzo2019

Page 15: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Caso multiclase

También se construye el vector de pesos de tamaño (d+ 1)c× 1,al concatenar todos los vectores correspondientes a cada clase:

w = [wT1 , . . . , w

Tc ]T

Si x ∈ ωi, entonces wT xij > 0, ∀i = 1, . . . , c y i 6= j.

Diseñar un clasificador lineal en R(d+1)c, tal que cada uno de los(c−1)n patrones de entrenamiento caiga en su lado positivo cuan-do es clasificado correctamente.

Al aplicar esta estrategia, el algoritmo perceptrón y sus variantesno presentan dificultad para resolver el problema multiclase.

14/19 Algoritmo perceptrón Marzo2019

Page 16: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Caso multiclase

Input: w← 0, η, b, nOutput: w

1 k ← 02 do3 k ← (k mod n) + 1

4 if wT xkij ≤ b then

5 w← w + ηb−wT xk

ij

‖xkij‖

2 xkij

6 end7 until wT xk

ij > b para todo k = 1, . . . , n

15/19 Algoritmo perceptrón Marzo2019

Page 17: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Caso multiclase

Ejemplo: problema con tres clases y dos dimensiones:

ω1 : [1, 1]T , [2, 2]T , [2, 1]T

ω2 : [1,−1]T , [1,−2]T , [2,−2]T

ω3 : [−1, 1]T , [−1, 2]T , [−2, 1]T

La construcción de Kesler queda como:

Para [1, 1]T ∈ ω1 : [1, 1, 1,−1,−1,−1, 0, 0, 0]T y [1, 1, 1, 0, 0, 0,−1,−1,−1]T

Para [1,−2]T ∈ ω2 : [−1,−1, 2, 1, 1,−2, 0, 0, 0]T y [0, 0, 0, 1, 1,−2,−1,−1, 2]T

Para [−2, 1]T ∈ ω3 : [−1, 2,−1, 0, 0, 0, 1,−2, 1]T y [0, 0, 0,−1, 2,−1, 1,−2, 1]T

y de manera similar se obtienen los otros 12 vectores.

16/19 Algoritmo perceptrón Marzo2019

Page 18: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Caso multiclase

-2 -1 0 1 2

-2

-1

0

1

2

Los vectores de pesos para cada función lineal son: w1 = [−0.13, 0.41, 0.36]T ,w2 = [0.09, 0.17, 0.36]T , y w3 = [0.03,−0.59, 0.24]T .

17/19 Algoritmo perceptrón Marzo2019

Page 19: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Entrenamiento y clasificación

En el caso de dos clases ω1 y ω2, el entrenamiento de un clasificadorlineal mediante el algoritmo perceptrón consiste en calcular el vectorde pesos w a partir de muestras de entrenamiento:

1. Aumentar cada muestra xi para obtener xi ∈ Rd+1.2. Multiplicar por −1 todas las muestras en ω2 para obtener el

conjunto de patrones normalizados −X2.3. Juntar todos los patrones de ambas clases, ω1 y ω2, en una sola

matriz de datos X = {X1,−X2} de tamaño (d+ 1)× n.4. Obtener el vector de pesos aumentado w mediante el algoritmo

perceptrón.

18/19 Algoritmo perceptrón Marzo2019

Page 20: Análisis de Datos - CINVESTAV · 18/19 Algoritmo perceptrón Marzo 2019. Entrenamientoyclasificación Enlaetapadeclasificación,unpatróndepruebax t seaumentapara obtener ~x t

Entrenamiento y clasificación

En la etapa de clasificación, un patrón de prueba xt se aumenta paraobtener xt ∈ Rd+1, se evalúa en la función lineal w, y se aplica laregla de decisión:

Decidir

ω1 si wT xt > 0

ω2 otro caso

19/19 Algoritmo perceptrón Marzo2019