Post on 27-Jul-2020
Análisis de Datos
Clasificadores linealesAlgoritmo perceptrón
Dr. Wilfrido Gómez Flores
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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