You are on page 1of 29

Taller 6: Clasicadores

Tcnicas de Inteligencia Articial: Visin de Mquina

Prof. Flavio Prieto


email: faprietoo@unal.edu.co Ingeniera Mecatrnica Facultad de Ingeniera Universidad Nacional de Colombia Sede Bogot

10 de octubre de 2011

Prof. Flavio Prieto

Visin de Mquina

Introduccin.
Reconocimiento de patrones.
El reconocimiento de patrones es la ciencia de extraer informacin relacionada con objetos fsicos o abstractos, que permita establecer propiedades (patrones) entre conjuntos de dichos objetos. Los patrones se obtienen a partir de los procesos de segmentacin, extraccin de caractersticas y descripcin dnde cada objeto queda representado por una coleccin de descriptores. El sistema de reconocimiento debe asignar a cada objeto su categora o clase (conjunto de entidades que comparten alguna caracterstica que las diferencia del resto).
Prof. Flavio Prieto Visin de Mquina 2

Introduccin.
Reconocimiento de patrones.
Para poder reconocer los patrones se siguen los siguientes procesos: 1. Adquisicin de datos. 2. Extraccin de caractersticas. 3. Toma de decisiones.

Prof. Flavio Prieto

Visin de Mquina

Introduccin.

Reconocimiento de patrones.
El punto esencial del reconocimiento de patrones es la clasicacin: se quiere clasicar una seal dependiendo de sus caractersticas. Seales, caractersticas y clases pueden ser de cualquiera forma, por ejemplo se puede clasicar imgenes digitales de letras en las clases A a Z dependiendo de sus pxeles o se puede clasicar ruidos de cantos de los pjaros en clases de rdenes aviares dependiendo de las frecuencias.

Prof. Flavio Prieto

Visin de Mquina

Introduccin.

Sistema bsico de reconocimiento.


Un sistema completo de reconocimiento de patrones incluye: 1. Un mecanismo de extraccin de caractersticas cuyo propsito es extraer la informacin til, eliminando la informacin redundante e irrelevante, y 2. Una etapa de toma de decisiones en la cual se asigna a la categora apropiada los patrones de clase desconocida a priori.

Prof. Flavio Prieto

Visin de Mquina

Introduccin.

Extraccin de caractersticas.
Es el proceso de generar caractersticas que puedan ser usadas en el proceso de clasicacin de los datos. Las caractersticas elementales estn explcitamente presentes en los datos adquiridos y pueden ser pasados directamente a la etapa de clasicacin. Las caractersticas de alto orden son derivadas de las elementales y son generadas por manipulaciones o transformaciones en los datos.

Prof. Flavio Prieto

Visin de Mquina

Introduccin.
Clasicacin.
La clasicacin trata de asignar las diferentes partes del vector de caractersticas a grupos o clases, basndose en las caractersticas extradas. En esta etapa se usa lo que se conoce como aprendizaje automtico, cuyo objetivo es desarrollar tcnicas que permitan a las computadoras aprender. Utiliza habitualmente uno de los siguientes procedimientos:
Geomtrico (Clustering): En ste enfoque se emplea el clculo de distancias, geometra de formas, vectores numricos, puntos de atraccin, etc. Estadstico: Se basa en la teora de la probabilidad y la estadstica, utiliza anlisis de varianzas, covarianzas, dispersin, distribucin, etc.
Prof. Flavio Prieto Visin de Mquina 7

Introduccin.
Segn tengamos o no de un conjunto previo que permita al sistema aprender, la clasicacin puede ser supervisada o no supervisada.

Clasicacin supervisada.
Tambin es conocida como clasicacin con aprendizaje. Se basa en la disponibilidad de vectores de entrenamiento. Se trata de vectores de los que se conoce a priori la clase a la que pertenecen y que servirn para generar una signatura espectral caracterstica de cada una de las clases.

Prof. Flavio Prieto

Visin de Mquina

Introduccin.
Clasicacin supervisada.
Algunos mtodos de la clasicacin supervisada: Funciones discriminantes: si son dos clases, se busca obtener una funcin g tal que para un nuevo objeto O , si g (O ) 0 se asigna a la clase 1 y en otro caso a la 2. Si son mltiples clases se busca un conjunto de funciones gi y el nuevo objeto se ubica en la clase donde la funcin tome el mayor valor. Vecino ms cercano: un nuevo objeto se ubica en la clase donde est el objeto de la muestra original que ms se le parece. Redes neuronales articiales: se supone que imitan a las redes neuronales reales en el desarrollo de tareas de aprendizaje.
Prof. Flavio Prieto Visin de Mquina 9

Introduccin.
Clasicacin supervisada.

Prof. Flavio Prieto

Visin de Mquina

10

Introduccin.

Clasicacin no supervisada.
Tambin conocida como clasicacin sin aprendizaje. Se utilizan algoritmos de clasicacin automtica multivariante en los que los individuos ms prximos se van agrupando formando clases. Restringida: el nmero de clases en la que se estructurar la muestra est previamente denido. Libre: el nmero de clases en la que se estructurar la muestra depende exclusivamente de los datos.

Prof. Flavio Prieto

Visin de Mquina

11

Introduccin.
Algunos mtodos de la clasicacin no supervisada.
Simple Link y Complete Link: parten de grupos unitarios de objetos y van uniendo los grupos ms parecidos en cada etapa, hasta cumplir alguna condicin. ISODATA: se van formando grupos que se ajustan iterativamente usando teora de probabilidades. En alguna versiones se puede hacer la unin o divisin de algn grupo. C-means: se dene un grupo de semillas, se asocia cada objeto al grupo de la semilla ms parecida, se toman los centroides de cada grupo como nuevas semillas y se itera hasta que se estabilice.

Prof. Flavio Prieto

Visin de Mquina

12

Introduccin.
Clasicacin no supervisada.

Prof. Flavio Prieto

Visin de Mquina

13

Mtodos de la clasicacin supervisada.

Clasicador bayesiano ingenuo (Naive Bayes classier ).

Es un clasicador probabilstico basado en el teorema de Bayes y algunas hiptesis simplicadoras adicionales. Es a causa de estas simplicaciones, que se suelen resumir en la hiptesis de independencia entre las variables predictoras, que recibe el apelativo de ingenuo. P (wi /x ) = p(x /wi )P (wi ) , p (x )

Prof. Flavio Prieto

Visin de Mquina

14

Mtodos de la clasicacin supervisada.


Una funcin de densidad normal multivariable, se describe as: p(x ) = 1 (2 )d /2 ||1/2 e 2 (x )
1 T 1 (x )

= N (, ).

x : Vector columna d dimensional. : Vector d dimensional de medias. : Matriz de covarianza de dimensin d d .

E [x ] =

xp(x )dx

E [(x )(x )T ] = (x )(x )T p(x )dx

Prof. Flavio Prieto

Visin de Mquina

15

Mtodos de la clasicacin supervisada.

OpenCV: Clasicador bayesiano ingenuo.


Sitio en OpenCV: http://opencv.jp/opencv-1.0.0_org/docs/ref/opencvref_ml.htm CvNormalBayesClassier( const CvMat* Vector_de_entrenamiento, const CvMat* Vector_de_respuestas, const CvMat* _var_idx=0, const CvMat* _sample_idx=0 );

Prof. Flavio Prieto

Visin de Mquina

16

Mtodos de la clasicacin supervisada.


Denicin del clasicador:
CvNormalBayesClassier * CBayes = new CvNormalBayesClassier; oat VecIn[] = {50,50,100,99,103,52,51.5,101.5}; int VecOut[] = {0,0,1,1}; int NC = 2; Nmero de Caractersticas; int ND = 4; Nmero de Datos; CvMat* Vec_entrenamiento = cvCreateMat(ND, NC, CV_32FC1 ); cvInitMatHeader(Vec_entrenamiento, ND, NC, CV_32FC1, VecIn); CvMat* Vec_respuestas = cvCreateMat(ND, 1, CV_32SC1 ); cvInitMatHeader(Vec_respuestas, ND, 1, CV_32SC1, VecOut); Entrenamiento del clasicador: CBayes -> train(Vec_entrenamiento,Vec_respuestas);

Prof. Flavio Prieto

Visin de Mquina

17

Mtodos de la clasicacin supervisada.

oat Dato[] = {70,60}; CvMat* Dato_A_Clasicar = cvCreateMat(1, NC, CV_32FC1 ); CvMat* Resultado = cvCreateMat(1, 1, CV_32SC1 ); cvInitMatHeader(Dato_A_Clasicar, 1, NC, CV_32FC1, Dato); Clasicacin de datos nuevos: CBayes -> predict(Dato_A_Clasicar, Resultado); printf(Clase: %d, Resultado->data.i[0]);

Prof. Flavio Prieto

Visin de Mquina

18

Mtodos de la clasicacin supervisada.


K-Vecinos ms cercanos (K-nearest-neighbor algorithm).
Sea un espacio de representacin bidimensional y una serie de prototipos de una misma clase representados en l.

Dado un patrn cualquiera X , si consideramos los k prototipos ms prximos a X , stos estarn localizados en un crculo centrado en X . En la gura se resaltan los 7 vecinos ms cercanos a tres patrones.
Prof. Flavio Prieto Visin de Mquina 19

Mtodos de la clasicacin supervisada.


K-vecinos ms cercanos.
La regla de decisin es asignar x a wm si P (wm /x ) P (wi /x ). Usando el teorema de Bayes: km nm ki ni . nm V n ni V n Es decir, asignar x a wm si: km ki , para todo i .

Prof. Flavio Prieto

Visin de Mquina

20

Mtodos de la clasicacin supervisada.

OpenCV: K-vecinos ms cercanos.


CvKNearest( const CvMat* VC, Vector de caractersticas. CvArr* Clases, Vector conteniendo las clases. const CvMat* _sample_idx=0, bool _is_regression=false, int max_k=32 Nmero de clases. ); Entrenamiento del clasicador: CvKNearest kVCerc (VC, Clases, 0, false, K );

Prof. Flavio Prieto

Visin de Mquina

21

Mtodos de la clasicacin supervisada.


OpenCV: K-vecinos ms cercanos.
oat CvKNearest::nd_nearest( const CvMat* Dato_A_Clasicar, int k, CvMat* results=0, const oat** neighbors=0, CvMat* VCercanos=0, Vector para almacenar los vecinos cercanos. CvMat* dist=0 ) const Estimacin de la salida y obtencin de la etiqueta de los vecinos: oat Rta; CvMat* VCercanos = cvCreateMat(1, K, CV_32FC1); Rta = kVCerc.nd_nearest(Dato_A_Clasicar,K,0,0,VCercanos,0);
Prof. Flavio Prieto Visin de Mquina 22

Mtodos de la clasicacin supervisada.


K-medias (K-means clustering).
El anlisis cluster de K-medias es una herramienta diseada para asignar casos a un nmero jo de grupos (clusters o conglomerados) cuyas caractersticas no se conocen an pero que se basan en un conjunto de variables especicadas. Es muy til cuando queremos clasicar un gran nmero (miles) de casos. Un buen anlisis cluster es: Eciente. Utiliza tan pocos conglomerados como sea posible. Efectivo Captura todos conglomerados estadstica importantes.

Prof. Flavio Prieto

Visin de Mquina

23

Mtodos de la clasicacin supervisada.

K-medias.
Suponga que tenemos n caractersticas en vectores x1 , x2 , ..., xn , donde cada x , est representado en un espacio m dimensional y sabemos que estn agrupados en k clases (k < n). Denimos mj como la media del j -simo clase. Si los cmulos estn bien separados, podemos usar una mnima distancia de clasicacin para separarlos. Esto es, podemos decir que xi esta en el j -simo clase si ||xi mj || es el mnimo con respecto a los k cmulos.

Prof. Flavio Prieto

Visin de Mquina

24

Mtodos de la clasicacin supervisada.


K-medias.
Esto sugiere el siguiente algoritmo para encontrar la k medias: Haga una estimacin inicial para la k medias m1 , m2 , ..., mk . Mientras no cambie alguna media:
Use la media estimada para clasicar los datos en clases. b(i , j ) = 1 si el i -simo dato, es el ms cercano a la j -sima media. Para cada uno de las clases calcule la nueva media mi , utilizando la nueva clasicacin:
n

b(i , j )xi mj =
i =1 n

. b (i , j )

i =1

Prof. Flavio Prieto

Visin de Mquina

25

Mtodos de la clasicacin supervisada.


K-medias.
El algoritmo tiene algunas debilidades. La manera de inicializar no se especica. Una forma comn es comenzar seleccionado aletoriamento k medias de los datos. Los resultados dependern del valor inicial de las medias y frecuentemente pasa que particiones subptimas son encontradas. La solucin estndar es calculada atizando diferentes puntos de arranque. Puede pasar que un conjunto de ejemplos cercano a una media est vaco, por lo que no puede ser modicada. Los resultados depende de la mtrica utilizada para medir ||x mi ||. Una solucin popular es normalizar cada variable por la desviacin estndar, aunque no siempre es deseable. La solucin depende del nmero de clases seleccionado.
Prof. Flavio Prieto Visin de Mquina 26

Mtodos de la clasicacin supervisada.


K-medias.
El algoritmo puede calcular medias en cualquier dimensin.

Prof. Flavio Prieto

Visin de Mquina

27

Mtodos de la clasicacin supervisada.


OpenCV: K-medias.
int cvKMeans2( const CvArr* VC, Vector de caractersticas. int NC, Nmero de clases. CvArr* Etiquetas, Vector para el resultado. CvTermCriteria termcrit, Criterio de Terminacin. int attempts=1, Nmero de veces que se ejecuta el algoritmo con inicializaciones diferentes. CvRNG* rng=0, int ags=0, CvArr* centers=0, double* compactness=0 ); printf(Clase: %d, Etiquetas->data.i[i]);
Prof. Flavio Prieto Visin de Mquina 28

TAREA.

Implementar, como una funcin de OpenCV, uno de los siguientes algoritmos de clasicacin no supervisados:
Distancias encadenadas. Max-min. ISODATA.

Estudiar, evaluar y discutir el desempeo de los clasicadores vistos en el taller, cuando son aplicadas a un conjunto de vectores caractersticas como el del proyecto que est desarrollando para el curso.

Prof. Flavio Prieto

Visin de Mquina

29

You might also like