Está en la página 1de 106

INSTITUTO POLITÉCNICO NACIONAL

CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN

Clasificador Híbrido de Patrones


basado en la Lernmatrix de Steinbuch y
el Linear Associator de Anderson-Kohonen

T E S I S

que para obtener el grado de

MAESTRO EN CIENCIAS DE LA COMPUTACIÓN

presenta

RAÚL SANTIAGO MONTERO

Director de tesis: Dr. Cornelio Yáñez Márquez


Codirector de tesis: Dr. Juan Luis Díaz de León Santiago

México, D. F. Junio de 2003


Agradecimientos

Al pueblo de México
Al Instituto Politécnico Nacional
Al Centro de Investigación en Computación
Dedicatoria
A Lucia, Fernanda y Rodrigo.
A mi madre.
En memoria de mi padre.
v

Índice
Resumen .................................................................................................................................
Abstract...................................................................................................................................
Glosario ..................................................................................................................................
Índice de tablas y figuras .........................................................................................................
1 Introducción................................................................................................................1
1.1. Objetivo.................................................................................................................1
1.2. Motivación ............................................................................................................2
1.3. Planteamiento del problema ...................................................................................3
1.4. Contribuciones.......................................................................................................4
1.5. Organización de la tesis .........................................................................................4
2 Antecedentes ...............................................................................................................6
2.1 Memorias asociativas..............................................................................................6
2.1.1. Conceptos básicos de memorias asociativas................................................6
2.1.2. Lernmatrix de Steinbuch ............................................................................9
2.1.3. Linear Associator de Anderson-Kohonen ................................................. 10
2.1.4. Memoria asociativa Hopfield.................................................................... 12
2.2 Reconocimiento de patrones ................................................................................. 16
2.2.1. Conceptos básicos del reconocimiento de patrones ................................... 16
2.2.2. Clasificación de patrones..........................................................................17
2.2.3. Clasificadores de mínima distancia........................................................... 19
2.2.4. Enfoque neuronal .....................................................................................23
2.2.5. Enfoque probabilístico-estadístico ............................................................27
2.2.6. Enfoque sintáctico-estructural .................................................................. 29
2.2.7. Génesis del enfoque asociativo para clasificación de patrones .................. 35
3 Estado del arte .......................................................................................................... 37
4 Herramientas matemáticas ...................................................................................... 39
4.1. Sumatorias........................................................................................................... 39
4.2. Operador máximo ................................................................................................ 40
4.3. Operaciones matriciales ....................................................................................... 40
4.4. Vectores n-dimensionales ....................................................................................41
vi

4.5. Producto interno y producto externo de vectores .................................................. 42


4.5.1. Producto interno....................................................................................... 42
4.5.2. Producto externo ...................................................................................... 43
4.5.3. Producto de una matriz y un vector........................................................... 43
4.6. Traslación de ejes ................................................................................................43
5 Desarrollo.................................................................................................................. 47
5.1. El CHA................................................................................................................ 48
5.1.1. Algoritmo del CHA.................................................................................. 48
5.2. El CHAT ............................................................................................................. 54
5.2.1. Interpretación teórica del CHAT............................................................... 55
5.2.1. Algoritmo del CHAT................................................................................ 55
6 Disquisiciones experimentales.................................................................................. 61
6.1. Bases de datos...................................................................................................... 61
6.1.1. Iris plants database ................................................................................... 62
6.1.2. Wine recognition data .............................................................................. 62
6.1.3. Contaceptive method choice..................................................................... 63
6.1.4. Credit Approval........................................................................................64
6.2. Metodología.........................................................................................................64
6.3. Estudio comparativo entre el CHAT y otros algoritmos de clasificación...............65
6.3.1. Iris plants database ...................................................................................65
6.3.2. Contraceptive method choice.................................................................... 69
6.3.3. Credit Approval........................................................................................ 74
6.3.4. Wine recognition data .............................................................................. 77
7 Conclusiones y trabajo futuro.................................................................................. 81
7.1. Conclusiones ....................................................................................................... 81
7.2. Trabajo futuro...................................................................................................... 82
Apéndice A: Simbología.................................................................................................... 84
Apéndice B: CHAT 1.0., manual de uso ........................................................................... 86
Apéndice C: KNN 1.0., manual de uso ............................................................................. 91
Bibliografía........................................................................................................................ 95
Resumen

En este trabajo de tesis se muestra la creación de un nuevo algoritmo para la


clasificación de patrones en el dominio real, eficiente y de baja complejidad
computacional, denominado Clasificador Híbrido Asociativo con Traslación (CHAT).
Con el CHAT se establece un nuevo enfoque en la clasificación de patrones, el enfoque
asociativo.

El CHAT está basado en la combinación ingeniosa de dos modelos de memorias


asociativas, la Lernmatrix y el Linear Associator. El CHAT combina los principios de
álgebra de matrices que utiliza el Linear Associator y el criterio de clasificación de la
Lernmatrix; superando ampliamente las limitaciones que presentan dichas memorias
asociativas en el que este nuevo clasificador se basa.

En el presente trabajo de tesis se prueba el CHAT con diferentes bases de datos


publicas. Los resultados experimentales muestran un alto rendimiento en la clasificación
de los patrones contenidos en estas bases de datos.

El CHAT puede rivalizar con los clasificadores más utilizados en las tareas de
discriminación de patrones; además, cuenta con características deseables en un
clasificador, como son: eficacia, bajo costo computacional y baja dependencia de
factores heurísticos. Lo anterior hace del CHAT una herramienta útil para el área de
Reconocimiento de Patrones, con posibilidades reales de convertirse en un factor
importante para el desarrollo de esta área en el ámbito de la investigación nacional.
viii

Abstract

The creation of a new algorithm for the classification of patterns in the real domain is
presented in this thesis, efficient an with low computational complexity and it is called
Associative Hybrid Classifier with translation (CHAT). With the CHAT algorithm, a new
approach for the classification of patterns it’s creates, the associative approach.

The CHAT algorithm is the combination of operations from two models of associative
memories; the Lernmatrix and the Linear Associator. The CHAT algorithm combine matrix
algebra of the Linear Associator in the learning phase and the criterion of the Lernmatrix in
the recovering phase, overcoming some of the restriction in both models.

In this thesis, the CHAT is tested with different public databases. Experimental results that
the algorithm has high performance in the process of classification of patterns within this
public databases.

The CHAT algorithm can be compared with the most classifiers used on patterns
discrimination. Also, the CHAT algorithm has some ideal characteristics as a classifier:
efficient, with low computational complexity and with low dependence of the heuristics
factors. Thus, the CHAT algorithm is a new classifier as well as useful tool in the area of
Pattern Recognition, with real possibilities to become an important factor to develop in this
area in the national and international research.
Glosario.

Clase: son los grupos o conjuntos de patrones que representan un mismo tipo de concepto
(Marqués de Sá, 2001; Schürmann, 1996).
Patrones abstractos: son representaciones de conceptos.
Patrones concretos: son representaciones de objetos con una manifestación física.
Patrones: son representaciones abstractas de un objeto en el mundo físico . Los cuales
exhiben cierta regularidad en una colección de observaciones conectadas en el
tiempo, en el espacio o en ambas, y que pueden servir como modelo (Schürmann,
1996).
Rasgos o características: primitivas o atributos obtenidas de los objetos a través de una
serie de observaciones, las cuales son susceptibles de ser trasladadas a una medida o
cualidad (Schürmann, 1996).
Reconocimiento de patrones: Es la rama científica se encarga de emular la habilidad
humana de reconocer objetos, mediante técnicas y métodos que sean implementados
en máquinas desarrolladas y construidas para este fin (Duda, Hart & Stork 2001;
Marqués de Sá, 2001).
Similaridad : concepto que está presente y forma parte esencial del RP. Se reconoce que
dos objetos se parecen o son similares, por que tienen atributos que les son comunes
y cuyas medidas o cualidades relativas se ajustan a un grado de variación. Por lo
regular este concepto se aplica, no entre un conjunto de objetos, sino entre un objeto
y su prototipo.
Vector de rasgos o vector de características: Es la organización de rasgos en un vector
columna; que podrán contener valores cualitativos, cuantitativos o ambos (Duda,
Hart & Stork 2001; Kuncheva, 2002; Schürmann, 1996).
Índice de tablas y figuras
Fig. 2.1 Tipos de características ...................................................................................... 16
Fig. 2.2 Mapeo en una representación abstracta de generación / clasificación de patrones.17
Fig. 2.3 Modelo canónico de un clasificador. ..................................................................18
Fig. 2.4 Representación del perceptron ...........................................................................24
Fig. 2.5 Asignación de símbolos .....................................................................................35
Fig. 2.6 Autómata resultante ...........................................................................................35
Fig. 4.1 Gráfica de la ecuación y=3x-2...........................................................................44
Fig. 4.2 Gráfica de (x-2)²+(y+2)²=25 ..............................................................................44
Fig. 4.3 Gráfica de x²+y²=25...........................................................................................45
Fig. 4.4 Gráfica de los puntos X y Z................................................................................ 45
Fig. 4.5 Representación de X' y Z'...................................................................................46
Tabla 6.1 Descripción de rasgos (Iris plants) ..................................................................... 62
Tabla 6.2 Descripción de rasgos (Wine recognition data)................................................... 63
Tabla 6.3 Descripción de rasgos (Cmc)..............................................................................64
Fig. 6.1 Rendimiento del 1-NN, base de datos Iris plants ................................................ 66
Fig. 6.2 Rendimiento del 3-NN base de datos Iris plants. ................................................ 67
Fig. 6.3 Rendimiento del clasificador C-means, base de datos Iris plants......................... 67
Fig. 6.4 Rendimiento del clasificador C-means difuso, base de datos Iris plants .............. 68
Fig. 6.5 Rendimiento obtenido por el C-means difuso usando funciones de disimilaridad68
Fig. 6.6 Rendimiento del CHAT con la base de datos Iris plants ..................................... 69
Tabla 6.4 Comparación del rendimiento de los clasificadores (Iris plants) ......................... 69
Fig. 6.7 Rendimiento del 1-NN con la base de datos Cmc ............................................... 70
Fig. 6.8 Rendimiento del 3-NN con la base de datos Cmc. .............................................. 71
Fig. 6.9 Rendimiento del C-means con la base de datos Cmc ..........................................71
Fig. 6.10 Rendimiento del C-means difuso con la base de datos Cmc................................ 72
Fig. 6.11 Rendimiento del C-means difuso usando funciones de disimilaridad.................. 72
Fig. 6.12 Rendimiento del CHAT con la base de datos Cmc ............................................. 73
Tabla 6.5 Comparación del rendimiento de los clasificadores (Cmc) ................................. 73
Fig. 6.13 Rendimiento del 1-NN con la base de datos Credit............................................. 74
Fig. 6.14 Rendimiento del 3-NN con la base de datos Credit............................................. 75
Fig. 6.15 Rendimiento del C-means con la base de datos Credit........................................ 75
Fig. 6.16 Rendimiento del C-means difuso con la base de datos Credit ............................. 76
Fig. 6.17 Rendimiento del C-means difuso usando funciones de disimilaridad.................. 76
Fig. 6.18 Rendimiento del CHAT con la base de datos Credit ...........................................77
Tabla 6.6 Comparación del rendimiento de los clasificadores (Credit) ...............................77
Fig. 6.19 Rendimiento del 1-NN con la base de datos Wine .............................................. 78
Fig. 6.20 Rendimiento del 3-NN con la base de datos Wine .............................................. 79
Fig. 6.21 Rendimiento del C-means difuso usando funciones de disimilaridad.................. 79
Fig. 6.22 Rendimiento del CHAT con la base de datos Wine ............................................80
Tabla 6.7 Comparación del rendimiento de los clasificadores (Wine) ................................ 80
Capítulo 1

Introducción

En este trabajo de tesis se muestra que las memorias asociativas son útiles en las
tareas de clasificación de patrones; además, a partir del resultado principal de la tesis,
que consiste en la creación de un nuevo algoritmo para clasificar patrones, el CHAT
(Clasificador Híbrido Asociativo con Traslación), se establece el nacimiento del
nuevo enfoque asociativo para clasificacón de patrones, el cual promete convertirse en
un campo fructífero en esta área. La base inicial de este trabajo de tesis se sustenta en
dos modelos pioneros de memorias asociativas: la Lernmatrix y el Linear Associator.

El CHAT puede rivalizar con los clasificadores más utilizados en las tareas de
discriminación de patrones; además, cuenta con características deseables en un clasi-
ficador, como son: eficacia, bajo costo computacional y no dependencia determinante
de factores heurísticos. Lo anterior hace del CHAT una herramienta útil para el área
de Reconocimiento de Patrones, con posibilidades reales de convertirse en un factor
importante para el desarrollo de esta área en el ámbito de la investigación nacional e
internacional.

En la sección 1.1 de este capítulo introductorio se plasma el objetivo de la tesis,


y en las secciones 1.2 y 1.3, se incluyen la motivación que dio lugar a este trabajo de
tesis y el planteamiento del problema, respectivamente. Después, en la sección 1.4 se
enuncian las contribuciones originales; para finalizar, en la sección 1.5, se describe la
organización del trabajo escrito.

1.1. Objetivo
Crear un nuevo algoritmo para la clasificación de patrones en el dominio real,
eficiente y de baja complejidad computacional, basado en la combinación de modelos
conocidos de memorias asociativas. Agregar, con este algoritmo, un nuevo enfoque
en la clasificación de patrones: el asociativo. Mostrar la utilidad práctica del enfoque
asociativo, a través de la aplicación del nuevo algoritmo en procesos de clasificación en
diferentes bases de datos públicas y hacer un estudio experimental comparativo entre
el nuevo algoritmo y otros algoritmos ya establecidos en la clasificación de patrones,
basados en otros enfoques.

1
1. Introducción 2

1.2. Motivación
El reconocer objetos es una tarea cotidiana y automática que realiza la especie
humana. Esta habilidad que ha desarrollado el ser humano le ha servido, en su evolu-
ción, para identificar su entorno en tareas que van desde identificar alimentos hasta
reconocer virus; esta habilidad es fundamental en la vida y desarrollo del hombre.

Existe una infinidad de problemas que involucran el reconocimiento de objetos.


Desafortunadamente, las capacidades del humano están limitadas cuando su habilidad
de reconocer objetos se emplea en tareas repetitivas o que requieren de un alto grado
de especialización para tratar dicho problema.

Desde los inicios de la computación se ha buscado simular, por medio de máquinas,


la habilidad de reconocer objetos (Marqués de Sá, 2001; Duda, Hart & Strork, 2001).
A lo largo del tiempo, dentro de la novel ciencia de la computación, se ha desarrollado
un área que aborda esta tarea, el Reconocimiento de Patrones (RP).

Durante varias décadas, han aparecido diversos enfoques o metodologías, que son
susceptibles de implementarse en máquinas, para simular la habilidad humana de re-
conocer objetos. Se han creado diferentes algoritmos, denominados clasificadores, que
resuelven el problema de forma parcial; algunos con mayor éxito que otros. Estos clasi-
ficadores están basados en una variedad de enfoques, desde los sustentados por sólidas
teorías matemáticas hasta los basados fuertemente en técnicas heurísticas (Marqués
de Sá, 2001; Duda, Hart & Strork, 2001; Shalkoff, 1992).

Una metodología en el RP, conocida desde hace varias décadas, es la denomina-


da como memorias asociativas; tiene como propósito fundamental recuperar correc-
tamente patrones completos a partir de patrones de entrada, los cuales pueden estar
alterados con ruido (Amari, 1972; Anderson & Rosenfeld, 1990; Díaz-de-León & Yánez,
1999; Hopfield, 1982; Kohonen, 1972; Ritter, Díaz-de-León & Susser, 1999).

Este enfoque tiene sus bases en el concepto de memoria para almacenar y recuperar
información, y está sustentado por teorías matemáticas establecidas, como el álgebra
lineal, la morfologia matemática o las álgebras min-max.

Hasta ahora, las memorias asociativas se han utilizado en reconocimiento de pa-


trones, y algunos autores reconocidos (Duda, Hart & Stork, 2001) afirman lo siguiente
respecto de la clasificación de patrones: “In acts of associative memory, the system
takes in a pattern and emits another pattern which is representative of a general group
of patterns. It thus reduces the information somewhat, but rarely to the extent that
pattern classification does.”

Lo anterior ha motivado que este trabajo de tesis tenga como propósito funda-
mental crear, diseñar y aplicar algoritmos, basados en modelos conocidos de memorias
asociativas, que realicen tareas de clasificación de patrones, y muestren que es posible
obtener clasificadores eficientes, con la combinación ingeniosa de métodos matemáticos,
específicamente geométricos, con los modelos matemáticos subyacentes en las memo-
rias asociativas.
1. Introducción 3

1.3. Planteamiento del problema


Uno de los problemas más apremiantes a resolver en la tarea de clasificación de
patrones, dentro del área de reconocimiento de patrones, es lograr la creación y diseño
de una metodología que tenga un bajo costo computacional, un grado mínimo de
heurística, y que sea factible de implementarse en computadoras. Cada uno de los
enfoques hasta ahora existentes, tienen en un grado mayor o menor la ausencia de
alguna o algunas de las características mencionadas, hecho que limita su eficacia o
eficiencia.

Actualmente los investigadores a nivel mundial tratan, mediante diferentes méto-


dos, de optimizar los clasificadores ya conocidos, combinar los difentes enfoques o
los diferentes clasificadores, intentando reducir las limitaciones de cada algoritmo o
combinación particular.

En este trabajo de tesis se atacará el problema de clasificar patrones en el dominio


real, a través de la creación y diseño de un algoritmo que combine, de manera eficaz y
eficiente, algunos métodos matemáticos, específicamente geométricos, con los modelos
matemáticos que sustentan el diseño y operación de algunos modelos de memorias
asociativas.

Todas las memorias asociativas constan de dos fases: la fase de aprendizaje y la


fase de recuperación. Existen diversos modelos de memorias asociativas y cada una
implementa estas fases de manera diferente (Hassoun, 1993; Yáñez-Márquez, 2002).

En el año de 1961, un alemán llamado Karl Steinbuch ideó y desarrolló una memo-
ria asociativa denominada Lernmatrix (Steinbuch, 1961; Steinbuch & Frank, 1961);
esta memoria ha estado olvidada por la comunidad científica y no se han realizado in-
vestigaciones suficientes sobre ella hasta la fecha. La Lernmatrix volvió a formar parte
del interés científico cuando se incluyó dentro del estado del arte de la tesis donde se
desarrollaron las memorias alfa-beta (Yánez-Márquez, 2002), y se publicó un informe
técnico (Yánez-Márquez & Díaz de León, 2001a), con lo que se revive el interés sobre
esta antigua memoria. Por otro lado, el Linear Associator (Anderson & Rosenfeld,
1990; Kohonen, 1989) de manera simultánea e independiente fue desarrollado por el
neurofisiólogo James A. Anderson y por el ingeniero finlandés Teuvo Kohonen.

El trabajo relevante de esta tesis es combinar de cierta manera estos dos modelos
de memorias asociativas, para crear un algoritmo de memoria asociativa que supera
ampliamente a la Lernmatrix y al Linear Associator, en la tarea de clasificación de
patrones en el dominio real.

Dentro de este trabajo, se someterá el nuevo clasificador a distintas bases de


datos públicas que sirven como parámetro para probar clasificadores (UCI Machine
Learning Data Bases Repository, del ICS, de la universidad de California, Irvine:
http://ftp.ics.uci.edu/pub/machine-learning-databases).
1. Introducción 4

1.4. Contribuciones
Una nueva memoria asociativa.

Un nuevo algoritmo para la clasificación de patrones.

Un nuevo enfoque en el reconocimiento de patrones en tareas de clasificación.

1.5. Organización de la tesis


Las secciones 1.1., 1.2., 1.3 y 1.4 que ya se han presentado, describen el objetivo,
la motivación, el planteamiento del problema y las contribuciones. De estas cuatro
secciones, resalta la sección 1.4., donde se enlistan las aportaciones originales que
ofrece el presente trabajo de tesis.

A continuación se explica la organización del resto del documento de tesis.

El capítulo 2 da un panorama de las bases en que se fundamenta la presente tesis


y consta de dos secciones.

La primera sección está dedicada al área de memorias asociativas, describiendo los


modelos de memorias asociativas en las que se basa el presente trabajo de tesis; en
la segunda sección se da un panorama del reconocimiento de patrones, se mencionan
conceptos y definiciones fundamentales para la comprensión del reconocimiento de
patrones, así como de los enfoques más importantes que atacan la tarea de clasificación
de patrones.

Dentro del capítulo 3, se hace una recopilación de los trabajos más recientes rela-
cionados con el tema de esta tesis, tanto en el área de memorias asociativas como en
el de reconocimiento de patrones.

El capítulo 4 incluye las herramientas matemáticas que se utilizan dentro del tra-
bajo de tesis. Las matrices, vectores y operaciones entre ellos son descritos en este
capítulo, y también se menciona el concepto de traslación de ejes y los operadores
sigma y máximo, junto con ejemplos que los ilustran.

El capítulo 5 es la parte medular del trabajo de tesis. Es allí donde se lleva a


cabo el desarrollo del nuevo Clasificador Híbrido Asociativo con Traslación
(CHAT), el cual marca el inicio de un nuevo enfoque en la clasificación de patrones,
el enfoque asociativo. Este capítulo describe el desarrollo del CHAT en dos etapas; la
primera presenta cómo la combinación ingeniosa de fases de dos memorias asociativas
da como resultado un clasificador, el Clasificador Híbrido Asociativo (CHA), el
cual manifiesta limitaciones; en la segunda etapa se muestra cómo estas limitaciones
son superadas al incluir en el CHA una traslación de ejes. Esto da por resultado un
clasificador eficaz y eficiente, cualidades buscadas por la comunidad científica para un
algoritmo de clasificación de patrones.
1. Introducción 5

En el capítulo 6 se exhibe una serie de experimentos que muestran el rendimiento


del nuevo algoritmo de clasificación, el CHAT. Este rendimiento se compara con los
obtenidos por otros algoritmos de clasificación, basados en diferentes enfoques. La
comparación se realiza con clasificadores muy estudiados y probados, tales son: el KNN
y el C-means. Estos clasificadores, junto con variantes de los mismos, son probados
con diferentes bases de datos públicas, diseñadas para probar clasificadores.

El capítulo 7 consta de dos secciones; la primera sección contiene las conclusiones


y la segunda, el trabajo futuro, en donde se enumeran diferentes aspectos no cubiertos
por el actual trabajo de tesis.

El documento de tesis finaliza con tres Apéndices: la Simbología empleada en todo


el trabajo constituye el Apéndice A; un Manual, donde se describe el uso del programa
que implementa el nuevo Clasificador Híbrido Asociativo con Traslación, constituye el
Apéndice B; y otro Manual, donde se explica el uso del programa donde se implementó
el clasificador KNN para los fines de comparación con el CHAT, forma el Apéndice C.

Para concluir, se presentan las referencias bibliográficas.


Capítulo 2

Antecedentes

Este capítulo consta de dos secciones. En la sección 2.1 se describen los conceptos
básicos sobre memorias asociativas y los dos modelos en que se basa el clasificador
presentado en este trabajo de tesis; en la sección 2.2, por otro lado, se describe el
área denominada reconocimiento de patrones, y se explica brevemente cada uno de
los diferentes enfoques, para finalmente mencionar el nuevo enfoque asociativo de re-
conocimiento de patrones, que se inicia precisamente con esta tesis.

2.1. Memorias asociativas


En la primera parte de esta sección se presentan los conceptos básicos relacionados
con el diseño y funcionamiento de las memorias asociativas. Las dos partes restantes
se enfocan a los dos modelos en que se basa esta tesis, la Lernmatrix y el Linear
Associator.

2.1.1. Conceptos básicos de memorias asociativas


Por su naturaleza, el problema que representa el funcionamiento de las memorias
asociativas se divide en dos fases claramente distinguibles:

1. Fase de aprendizaje (generación de la memoria asociativa)

2. Fase de recuperación (operación de la memoria asociativa)

Para estar en condiciones de realizar el planteamiento del problema, es preciso pre-


viamente proporcionar los conceptos básicos, las notaciones y la nomenclatura rela-
cionados con el diseño y funcionamiento de las memorias asociativas.

Los conceptos básicos son conocidos desde hace más de tres décadas, y se presentan
como originalmente fueron establecidos en las referencias (Kohonen, 1972, 1977, 1987,
1989; Anderson, 1972; Anderson & Bower, 1977; Anderson & Rosenfeld, 1990; Hassoun,
1993, 1995, 1997).

6
2. Antecedentes 7

El propósito fundamental de una memoria asociativa es recuperar patrones com-


pletos a partir de patrones de entrada que pueden estar alterados con ruido aditivo,
sustractivo o combinado. De acuerdo con esta afirmación, una memoria asociativa M
puede formularse como un sistema de entrada y salida, idea que se esquematiza a
continuación:

x −→ M −→ y
El patrón de entrada está representado por un vector columna denotado por x y
el patrón de salida, por el vector columna denotado por y.
Cada uno de los patrones de entrada forma una asociación con el correspondi-
ente patrón de salida. La notación para una asociación es similar a la de una pareja
ordenada; por ejemplo, los patrones x y y del esquema forman la asociación (x, y).

Para facilitar la manipulación algebraica de los patrones de entrada y de salida, los


denotaremos con las mismas letras negrillas, x y y, agregándoles números naturales
como superíndices para efectos de discriminación simbólica. Por ejemplo, a un patrón
de entrada x1 le corresponderá un patrón de salida y1 , y ambos formarán la asociación
(x1 , y1 ); del mismo modo, para un número entero positivo k específico, la asociación
correspondiente será (xk , yk ).

La memoria asociativa M se representa mediante una matriz cuya componente


ij-ésima es mij (Palm, Schwenker, Sommer & Strey, 1997); la matriz M se genera a
partir de un conjunto finito de asociaciones conocidas de antemano: este es el conjunto
fundamental de asociaciones, o simplemente conjunto f undamental. Se denota por
p la cardinalidad del conjunto fundamental (p es un número entero positivo).
Si µ es un índice, el conjunto fundamental se representa de la siguiente manera:

{(xµ , yµ ) | µ = 1, 2, ..., p}
A los patrones que conforman las asociaciones del conjunto fundamental, se les
llama patrones fundamentales.

La naturaleza del conjunto fundamental proporciona un importante criterio para


clasificar las memorias asociativas. Si se cumple que xµ = yµ ∀µ ∈ {1, 2, ..., p}, se
dice que la memoria es autoasociativa; de otro modo, la memoria es heteroasociativa
(Kohonen,1972). Para una memoria heteroasociativa se puede afirmar lo siguiente:
∃µ ∈ {1, 2, ..., p} para el que se cumple que xµ 6= yµ .

Es posible que los patrones fundamentales sean alterados con diferentes tipos de
ruido. Para diferenciar un patrón alterado del correspondiente patrón fundamental,
ek es una versión alterada del
usaremos la tilde en la parte superior; así, el patrón x
k
patrón fundamental x , y el tipo de alteración que representa xek se evidenciará en el
contexto específico donde se use.

Si al presentarle a la memoria M un patrón alterado x eω como entrada (ω ∈


{1, 2, ..., p}), M responde con el correspondiente patrón fundamental de salida yω ,
2. Antecedentes 8

se dice que la recuperación es perfecta. Una memoria perfecta es aquella que realiza
recuperaciones perfectas para todos los patrones fundamentales.

Naturalmente, también los patrones de salida pueden ser alterados; por ejemplo,
si y3 es un patrón fundamental, entonces y
e3 representa una versión alterada de y3 .
Abundemos en la caracterización de los patrones de entrada, de salida y de la
matriz M.

Primeramente se requiere la especificación de dos conjuntos a los que llamaremos


arbitrariamente A y B. La importancia de estos dos conjuntos radica en que las com-
ponenetes de los vectores columna que representan a los patrones, tanto de entrada
como de salida, serán elementos del conjunto A, y las entradas de la matriz M serán
elementos del conjunto B.

No hay requisitos previos ni limitaciones respecto de la elección de estos dos con-


juntos, por lo que no necesariamente deben ser diferentes o poseer características es-
peciales. Esto significa que el número de posibilidades para escoger A y B es infinito;
a continuación se ejemplifican algunas de ellas:

• A = B = R, donde R es el símbolo que representa al conjunto de los números


reales.
• A = R y B = {0, 1}.
• A = B = {0, 1}.
• A = B = {−1, 1}.
• A = R y B = {−1, 1}.
• A = Z y B = {−1, 1}, donde Z es el conjunto de los números enteros.
• A⊂ZyB⊂Z
Ya que se tienen especificados los conjuntos A y B, es necesario establecer las
dimensiones de los patrones, tanto de entrada como de salida.
Sean m, n números enteros positivos. Se denota por n la dimensión de los patrones
de entrada, y por m la dimensión de los patrones de salida; claramente, nada impide
que los valores de m y de n sean iguales. Aún más, uno de los requisitos que debe
cumplir una memoria autoasociativa es que la dimensión de los patrones de entrada
sea igual a la dimensión de los patrones de salida; por otro lado, si en una memoria
sucede que m 6= n, es evidente que la memoria debe ser heteroasociativa.

Cada vector columna que representa un patrón de entrada tiene n componentes


cuyos valores pertenecen al conjunto A, y cada vector columna que representa un
patrón de salida posee m componentes cuyos valores pertenecen al conjunto A. Es
decir:

xµ ∈ An y yµ ∈ Am ∀µ ∈ {1, 2, ..., p}
La j-ésima componente de un vector columna se indica con la misma letra del vec-
tor, pero sin negrilla, colocando a j como subíndice (j ∈ {1, 2, ..., n} o j ∈ {1, 2, ..., m}
según corresponda). La j-ésima componente de un vector columna xµ se representa
por
2. Antecedentes 9

xµj
Ejemplos:

• La i-ésima componente del vector columna xµ se representa por xµi


• La tercera componente del vector columna x5 se representa por x53
• La j-ésima componente del vector columna yµ se representa por yjµ
• La l-ésima componente del vector columna yω se representa por ylω

Al usar el superíndice t para indicar el transpuesto de un vector, se obtienen las


siguientes expresiones para los vectores columna que representan a los patrones fun-
damentales de entrada y de salida, respectivamente:
 µ 
x1
 xµ 
t  2 
xµ = (xµ1 , xµ2 , ..., xµn ) =  .  ∈ An
 .. 
xµn
 
y1µ
 y2µ 
µ t  
yµ = (y1µ , y2µ , ..., ym ) = ..  ∈ Am
 . 
µ
ym
Con lo anterior, es ya posible presentar el planteamiento del problema general de
las memorias asociativas:

1. Fase de aprendizaje. Encontrar los operadores adecuados y una manera de gener-


ar una matriz
©¡ ¢ ¡ 2 M ¢ que almacene
ª las p asociaciones del conjunto fundamental
x , y , x , y , ..., (x , y ) , donde x ∈ A y yµ ∈ Am ∀µ ∈ {1, 2, ..., p}.
1 1 2 p p µ n

Si ∃µ ∈ {1, 2, ..., p} tal que xµ 6= yµ , la memoria será heteroasociativa; si m = n


y xµ = yµ ∀µ ∈ {1, 2, ..., p}, la memoria será autoasociativa.

2. Fase de recuperación. Hallar los operadores adecuados y las condiciones suficientes


para obtener el patrón fundamental de salida yµ , cuando se opera la memoria M
con el patrón fundamental de entrada xµ ; lo anterior para todos los elementos del
conjunto fundamental y para ambos modos: autoasociativo y heteroasociativo.
Exhibir y caracterizar, además, el ruido que puede soportar la memoria en el
patrón de entrada xeω , para entregar una salida perfecta yω .

2.1.2. Lernmatrix de Steinbuch


Karl Steinbuch fue uno de los primeros investigadores en desarrollar un método
para codificar información en arreglos cuadriculados conocidos como crossbar (Simp-
son, 1990). La importancia de la Lernmatrix (Steinbuch, 1961; Steinbuch & Frank,
1961) se evidencia en una afirmación que hace Kohonen en su artículo de 1972 (Ko-
honen, 1972), donde apunta que las matrices de correlación, base fundamental de su
innovador trabajo, vinieron a sustituir a la Lernmatrix de Steinbuch.
2. Antecedentes 10

La Lernmatrix es una memoria heteroasociativa que puede funcionar como un


clasificador de patrones binarios si se escogen adecuadamente los patrones de salida;
es un sistema de entrada y salida que al operar acepta como entrada un patrón binario
xµ ∈ An , A = {0, 1} y produce como salida la clase yµ ∈ Ap que le corresponde
(de entre p clases diferentes), codificada ésta con un método simple, a saber: para
representar la clase k ∈ {1, 2, ..., p}, se asignan a las componentes del vector de salida
yµ los siguientes valores: ykµ = 1, y yjµ = 0 para j = 1, 2..., k − 1, k + 1, ...p.

El siguiente esquema (crossbar ) ilustra la fase de aprendizaje para la Lernmatrix de


Steinbuch, al incorporar la pareja de patrones de entrenamiento (xµ , yµ ) ∈ An × Ap .

xµ1 xµ2 ··· xµj ··· xµn


y1µ m11 m12 ··· m1j ··· m1n
y2µ m21 m22 ··· m2j ··· m2n
.. .. .. .. ..
. . . . . (2.1)
yiµ mi1 mi2 ··· mij ··· min
.. .. .. .. ..
. . . . .
ypµ mp1 mp2 ··· mpj ··· mpn

Cada uno de los componentes mij de M, la Lernmatrix de Steinbuch, tiene valor


cero al inicio, y se actualiza de acuerdo con la regla mij + ∆mij , donde:
 µ µ
 +ε si xi = 1 = yj
∆mij = −ε si xµi = 0 y yjµ = 1 (2.2)

0 en otro caso
siendo ε una constante positiva escogida previamente.

La fase de recuperación consiste en encontrar la clase a la que pertenece un vector


de entrada xω ∈ An dado. Encontrar la clase significa obtener las coordenadas del
vector yω ∈ Ap que le corresponde al patrón xω ; en virtud del método de construcción
de los vectores yµ la clase debería obtenerse sin ambigüedad.
La i-ésima coordenada yWiω del vector de clase yω ∈ Ap se obtiene como lo indica la
siguiente expresión, donde es el operador máximo:
( Pn W hP i
1 si m .xω = p n
m .xω
yiω = j=1 ij j h=1 j=1 hj j (2.3)
0 en otro caso

2.1.3. Linear Associator de Anderson-Kohonen


Respecto a la creación de este modelo de memoria asociativa, es pertinente men-
cionar un hecho curioso, que se ha presentado en personajes dedicados a otras ramas
2. Antecedentes 11

de la ciencia: James A. Anderson y Teuvo Kohonen obtuvieron resultados asombrosa-


mente similares a pesar de que trabajaron independientemente y sin tener noticia uno
del otro, hasta tiempo después de que aparecieron los artículos; además, estos autores
tienen formaciones profesionales totalmente diferentes: Anderson es neurofisiólogo y
Kohonen es físico e ingeniero eléctrico (Anderson & Rosenfeld, 1990; Kohonen, 1989).

Para presentar el Linear Associator, consideremos de nuevo el conjunto fundamen-


tal {(xµ , yµ ) | µ = 1, 2, ..., p} con:
   
xµ1 y1µ
 xµ2   y2µ 
   
A = {0, 1}, xµ =  ..  ∈ An y yµ =  ..  ∈ Am
 .   . 
xµn µ
ym

La fase de aprendizaje consiste de dos etapas:


1. Para cada una de las p asociaciones (xµ , yµ ) se encuentra la matriz yµ · (xµ )t de
dimensiones m × n
 µ 
y1
 yµ 
 2 
yµ · (xµ )t =  .  · (xµ1 , xµ2 , ..., xµn ) (2.4)
 .. 
µ
ym
 µ µ 
y1 x1 y1µ xµ2 · · · y1µ xµj · · · y1µ xµn
 y2µ xµ1 y2µ xµ2 · · · y2µ xµj · · · y2µ xµn 
 
 .. .. .. .. 
 . . . . 
yµ · (xµ )t =   y µ xµ y µ xµ · · · y µ xµ · · · y µ xµn 
 (2.5)
 i 1 i 2 i j i 
 . .. .. .. 
 .. . . . 
µ µ µ µ µ µ µ µ
ym x1 ym x2 · · · ym xj · · · ym xn

2. Se suman la p matrices para obtener la memoria


p
X
M= yµ · (xµ )t = [mij ]m×n (2.6)
µ=1

de manera que la ij-ésima componente de la memoria M se expresa así:


p
X
mij = yiµ xµj (2.7)
µ=1

La fase de recuperación consiste en presentarle a la memoria un patrón de entrada


xω , donde ω ∈ {1, 2, ..., p} y realizar la operación
 
Xp
M · xω =  yµ · (xµ )t  ·xω (2.8)
µ=1
2. Antecedentes 12

El Linear Associator tiene una fuerte restricción: los vectores de entrada xµ deben
ser ortonormales. Esta condición de ortonormalidad se puede resumir en la siguiente
expresión: 
 1 si µ = ω
(xµ )t ·xω = δ µω = (2.9)

0 si µ 6= ω
donde δ µω es la conocida delta de Kronecker (Moore, 1968).

Si se cumple la condición que se manifiesta en la expresión 2.9, entonces la recu-


peración es perfecta para todo el conjunto fundamental; es decir:

M · xω = y ω (2.10)

Sin embargo, si los vectores de entrada no son ortonormales, suceden dos cosas:
£ ¤
1. el factor (xω )t ·xω no es 1
P £ ¤
2. el término µ6=ω yµ · (xµ )t ·xω no es 0

Este último término, llamado cross-talk, representa el ruido producido por la in-
teracción entre los patrones de entrada, y tiene como consecuencia inmediata que la
recuperación no es perfecta, excepto si el número de patrones almacenados es pequeño
comparado con la dimensión n de los vectores de entrada. Algunos investigadores afir-
man que ese número pequeño de patrones debe estar entre 0,1n y 0,2n (Anderson &
Rosenfeld, 1990; Hassoun, 1995; Ritter, Sussner & Díaz-de-León, 1998).

2.2. Reconocimiento de patrones


2.2.1. Conceptos básicos del reconocimiento de patrones
En RP cada rasgo o característica de un objeto se le asigna una variable, x1 , x2 , ..., xn .
Estas variables son organizadas como un vector columna, que podrán contener valores
cualitativos, cuantitativos o ambos (Duda, Hart & Stork 2001; Kuncheva, 2002; Schür-
mann, 1996), llamado vector de rasgos o vector de características; para los fines de esta
tesis, las variables sólo contendrán valores reales.

Fig. 2.1. : Tipos de característisticas


2. Antecedentes 13

El vector de rasgos será la representación formal de un patrón, tal que:


 
x1
x2 
 
x = . 
 .. 
xn
es un patrón y podrá ser representado como un punto en espacio Rn . El espacio
real Rn es llamado espacio de características.

Nota 2.1 Generalmente, las estructuras de datos que son utilizadas en los sistemas
de reconocimiento de patrones son de dos tipos: vectores y datos relacionados (cadenas
o palabras) (Pal, 1999). En este trabajo de tesis solo trataremos con vectores.

Definición 2.2 Sea Ω un conjunto de clases ω, tal que a Ω se le denomina espacio


de interpretación:

Ω = {ω 1 , ω 2 , ..., ω i }
Como se muestra en el diagrama de la figura 2.2, el RP se puede caracterizar
como un proceso de mapeo de información, reducción de información o etiquetado
de información (Shalkoff, 1992). Este mapeo entre el espacio de interpretación y el
espacio de características se hace mediante una relación G para cada clase; lo ideal es
que esta función sea biyectiva, pero existen casos, como lo muestran las clases ω 1 y
ω 2 , que algunos patrones puedan pertenecer a distintas clases a la vez. Esto dificulta
el proceso de asignar un patrón a una clase específica.

Figura 2.2. : Representación abstracta de generación / clasificación de patrones.


2. Antecedentes 14

2.2.2. Clasificación de patrones


Esta tarea del RP es una de las más antiguas y más estudiadas. Los trabajos
en la clasificación de patrones tienen más de cinco décadas y dentro de ellos, se han
desarrollado varias metodologías y decenas de algoritmos para clasificar. Algunos de
ellos desde la década de los 50’s y que aún hoy son tema de estudio. Tal es el caso del
clasificador KNN (Dasarathy, 1991).

La tarea de clasificación básicamente consiste en hacer particiones del espacio de


características para formar regiones, donde a cada región se le asignará una categoría o
clase. Los diferentes patrones deberán ser asignados en alguna de las posibles regiones
creadas en el espacio de características.

En problemas reales, la descripción completa de las clases no es conocida. En lugar


de ésta, se tiene un conjunto finito y generalmente reducido de patrones que proveen
información parcial sobre un problema específico.
El objetivo principal en la tarea de clasificación es: diseñar y construir extractores
de características o clasificadores que puedan llevar a cabo la segmentación del espacio
de características de forma eficiente (Pal, 1999).
Un clasificador es cualquier función:

D : Rn −→ Ω
En el modelo canónico de un clasificador (Duda, Hart & Stork 2001), mostrado en
la figura 2.3, se considera un conjundo de c funciones discriminantes.

G = {g1 (x), g2 (x), ..., gc (x)}


donde:

gi : Rn −→ R i = 1, 2, ...c
Típicamente el patrón x es asignado en la clase ω i ,si el valor de gi (x) es máximo;
a esto se le conoce como “maximum membership rule”.

D(x) = ωi ∈ Ω ⇐⇒ gi (x) = máx {gi (x)}


i=1,...c

Figura 2.3.: Modelo canónico de un clasificador.


2. Antecedentes 15

Las funciones discriminantes segmentan el espacio de caracteristicas Rn en regiones


de decisión o regiones de clasificación (Kuncheva, 2002).

Las regiones para cada clase ω i son el conjunto de puntos para los cuales la i-esima
función discriminante tiene el más alto valor. Todos los puntos en la región i-esima
serán asignados en la clase ω i . Estas regiones serán determinadas por el clasificador D
mediante el conjunto de funciones discriminantes G. Las fronteras de las regiones son
llamadas fronteras de clasificación, y contienen los puntos que no pueden pertenecer a
una clase en particular (Kuncheva, 2002).

Enfoques de entrenamiento
Existen básicamente dos enfoques:

Supervisado. En este enfoque se debe contar con un conjunto de patrones, en


los cuales se tiene determinada previamente la clase a la cual están asociados
cada uno de ellos y se denomina generalmente conjunto de entrenamiento. En
el caso de las memorias asociativas este conjunto recibe el nombre de conjunto
fundamental.
No supervisado. Se trata de encontrar agrupamientos de patrones que formen las
diferentes clases existentes en un determinado problema mediante la similaridad
entre éstos.

2.2.3. Clasificadores de mínima distancia


Los clasificadores diseñados dentro de este enfoque emplean aprendizaje supervisa-
do; generalmente son empleados si el conjunto de patrones de entrenamiento forman
agrupamientos por cada clase existente en un problema dado. Esto da lugar a poder
emplear una función de distancia para su clasificación. Cada clase involucrada en el
problema es representada por un patrón llamado centro del agrupamiento, determina-
do por la media aritmética del conjunto de patrones de entrenamiento de cada clase.
Este centro del agrupamiento permite al clasificador determinar una clase determinada
a la cual pertenece un nuevo vector si la distancia es mínima con respecto de los otros
centros de agrupamiento involucrados, representativos de las otras clases.

Existen diversos clasificadores que emplean este método, entre los cuales los más
conocidos son el clasificador euclidiano, el KNN y el c-Means (Friedman, M, 1999). Se
darán algunos conceptos y definiones que son necesarios para el mejor entendimiento de
este tipo de metodología; también se presenta uno de los clasificadores básicos dentro
de este enfoque, el clasificador euclideano.

Métricas

Si tenemos un conjunto de patrones clasificados, es decir, que de antemano sabe-


mos a qué clase pertenecen cada uno de ellos, y también supongamos que tenemos
2. Antecedentes 16

otro conjunto de patrones, los cuales no han sido clasificados. Una forma "simple"de
clasificar estos últimos patrones, es decir no clasificados, es encontrar una función que
nos diga con qué clase tienen una mayor similaridad cada uno de ellos. Aunque casi
todos los enfoques de reconocimiento de patrones se basan en esta idea, la función está
representada por una métrica.

Intuitivamente, y dado que los patrones con los que se trabaja tienen todos los
rasgos numéricos, un patrón puede verse como un vector en un espacio en Rn , para un
n en particular. Ahora, una métrica es una forma de medir la distancia entre dos de
estos vectores, así, diremos que un patrón tiene una mayor similaridad a otro cuando
la distancia entre ellos sea menor. Usualmente, la forma más sencilla de encontrar
esta distancia es con base en el famoso teorema de Pitágoras extendido a un espacio
n-dimensional, que se conoce como distancia euclideana. Sin embargo, no es la única
forma de medir la distancia entre dos puntos, por lo que en esta sección nos ocuparemos
de las formas de medir.

Definición de métrica

Aunque intuitivamente ya se tiene idea de que una métrica es una forma de medir
una distancia, la definición formal es la siguiente:

Definición 2.3 Sean x, y y z tres puntos en Rn . Una métrica o norma denominada


d(x, y), es una función d : Rn × Rn → R+ , que cumple con las siguientes propiedades:

1. d(x, y) ≥ 0 y d(x, y) = 0 si y sólo si x = y.

2. d(x, y) = d(y, x)

3. d(x, y) ≤ d(x, z) + d(z, y) (Desigualdad del triángulo).

En general, existe un número infinito de funciones que cumplen con la definición


anterior, y por tanto, la distancia entre dos puntos calculada por una métrica puede
ser completamente distinta a la calculada por otra. Pensando en función de que una
métrica nos servirá para definir la forma en cómo un patrón tienen una mayor similar-
idad a otro, podemos esperar un funcionamiento radicalmente distinto de un sistema
de clasificación con base en la métrica seleccionada.

Las métricas de Minkowski


Unas de las métricas más utilizadas, son las llamadas métricas de Minkowski.
Minkowski fue un brillante físico y matemático Ruso de fines del siglo XIX y principios
del XX que fue maestro de Albert Einstein. Sus trabajos en el campo de la física
se enfocaron principalmente a la relatividad, en el continuo espacio-tiempo y a la
electrodinámica y muchos de sus resultados le son atribuidos al propio Einstein. Sus
trabajos en matemáticas incluyen las formas cuadráticas, las fracciones continuas y en
la forma en como una figura de una forma puede caber en otra figura de otra forma,
que a la postre sería la base de la Morfología Matemática.
2. Antecedentes 17

La forma general de las métricas de Minkowski es la siguiente:


" n #1
X r
r

dr (x, y) = |xi − yi | (2.11)


i=1

Donde r es un número entero positivo. Dependiendo de r, es la forma en como se


comporta la métrica. Existen 3 valores que son los más comunes y que definen tres
distancias conocidas:
1. Distancia city-block. r = 1.

" n #1 n
X 1 X
d1 (x, y) = |xi − yi |1 = |xi − yi | (2.12)
i=1 i=1

2. Distancia euclideana. r = 2.
" n #1
X 2

d2 (x, y) = |xi − yi |2 (2.13)


i=1

3. Distancia infinito. r −→ ∞.
" n #1
X r

d∞ (x, y) = lı́m |xi − yi |r = máx |xi − yi | (2.14)


r→∞ i
i=1

   
2 1
 −2   10 
Ejemplo 2.4 Sean x =  
 9  y y =  −3
 , calcular la distancia entre ellos

4 −1
de acuerdo a las métricas city-block, euclideana e infinito.

P
4
d1 (x, y) = |xi − yi | = |2 − 1| + |−2 − 10| + |9 − (−3)| + |4 − (−1)|
i=1
= 1 + 12 + 12 + 5 = 30

· ¸ 12 h i1
P
4
2 2 2 2 2 2
d2 (x, y) = |xi − yi | = |2 − 1| + |−2 − 10| + |9 − (−3)| + |4 − (−1)|
i=1
1
= [1 + 144 + 144 + 25] 2 = 17. 72

d∞ (x, y) = máx |xi − yi | = máx [|2 − 1| , |−2 − 10| , |9 − (−3)| , |4 − (−1)|]


i
= máx [1, 12, 12, 5] = 12
2. Antecedentes 18

El Clasificador Euclideano
El clasificador euclideano es un clasificador que toma precisamente la distancia
euclideana para determinar cuándo un patrón es más similar a otro. La distancia
euclideana es un caso especial de las métricas de Minkowski para el caso en que r = 2.
Esta norma es, intuitivamente, la que se utiliza para medir una distancia, ya que
equivale a medir el tamaño del segmento de recta que une a dos puntos, y es la que
normalmente se utiliza en geometría analítica y en análisis vectorial. Un patrón puede
ser visto como un vector en Rn , por lo que el análisis que haremos sobre él será
puramente vectorial, y es conveniente expresar esta distancia en forma alterna.
   
x1 y1
 x2   y2 
Definición 2.5 Sean x, y dos puntos en Rn , es decir, x =   
 ...  y y =  ... .

xn yn
La distancia euclideana entre x y y, denotada d2 (x, y) se calcula de la siguiente forma:

" n #1
X 2
2
d2 (x, y) = (xi − yi ) (2.15)
i=1
o en forma vectorial:
£ ¤1
d2 (x, y) = (x − y)T (x − y) 2 (2.16)
donde (x − y)T es el vector transpuesto del vector (x − y).
   
2 1
 −2   10 
Ejemplo 2.6 Sean x =    
 9  y y =  −3 . Entonces la distancia euclideana
4 −1
entre x y y de acuerdo a la ecuación 2.15 es:

" 4 # 12
X £ ¤1
d2 (x, y) = (yi − xi )2 = (1 − 2)2 + (10 − (−2))2 + (−3 − 9)2 + (−1 − 4)2 2
i=1
1
= [314] 2 = 17. 72

y de acuerdo a la ecuación 2.16 es:

   12
−1
£ ¤ 1 ¡ ¢  12 
d2 (x, y) = (y − x)T (y − x) 2 = 
 −1 12 12 −5  
 12 
−5
1 1
= [1 + 144 + 144 + 25] 2 = [314] 2 = 17. 72
2. Antecedentes 19

Algoritmo 2.7 Algoritmo del clasificador euclideano.

1. Se escoge una muestra de patrones clasificada de antemano en n clases {C1 , C2 , .., Cn }


y la métrica d2 será la distancia euclideana.
Pbase en la muestra y para cada clase Ci , calculamos el patrón representante
2. Con
µi = k1 xj , donde k es el número de elementos en la muestra que pertenecen a Ci .
xj ∈Ci
3. Se generan funciones discriminantes dij (x) para cada par de clases Ci , Cj , de
(µ −µ )T (µ +µ )
forma que dij (x) = (µi − µj )T x − i j 2 i j .
4. En el momento de clasificar, el patrón x será clasificado en la clase i, si se cumple
lo siguiente:

∀j, j 6= i, dij (x) ≥ 0


µ ¶ µ ¶ µ ¶
1. 2 4. 3 2. 3
Ejemplo 2.8 Sean los vectores x1 = , x2 = , x3 = , con x1 , x3
3. 0 0. 7 3. 1
miembros de la clase C1 µy x2¶miembro de la clase C2 . Determinar la clase a la que
2. 7
pertenece el patrón x4 = .
1. 5

Como ya se tiene la muestra clasificada en 2 clases, comenzaremos por calcular los


vectores medios de cada µ una de las
¶ clases. µ ¶
1 1. 75 4. 3
µ1 = 2 (x1 + x3 ) = . y µ2 = x2 = . Ahora, como solamente
3. 05 0. 7
tenemos dos clases, una función discriminante es suficiente, que sería: d12 (x) = (µ1 −
T ¡ ¢
µ2 )T x − (µ1 −µ2 ) 2 (µ1 +µ2 ) = −2. 55 2. 98 x + 2. 1263
Finalmente, probaremos el clasificador con todos los vectores:−2. 55 ∗ 6. 05 + 2.
98 ∗ 3. 75 = −4. 252 5/2 = −2. 126µ3 ¶
¡ ¢ 1. 2
d12 (x1 ) = −2. 55 2. 98 + 2. 1263 = −2. 55 ∗ 1. 2 + 2. 98 ∗ 3. 0 + 2.
3. 0
1263 = 8. 006 3 > 0 → x1 ∈ C1
µ ¶
¡ ¢ 4. 3
d12 (x2 ) = −2. 55 2. 98 + 2. 1263 = −2. 55 ∗ 4. 3 + 2. 98 ∗ 0. 7 + 2.
0. 7
1263 = −6. 752 7 < 0 → x2 ∈ C2 µ ¶
¡ ¢ 2. 3
d12 (x3 ) = −2. 55 2. 98 + 2. 1263 = −2. 55 ∗ 2. 3 + 2. 98 ∗ 3. 1 + 2.
3. 1
1263 = 5. 499 3 > 0 → x3 ∈ C1
µ ¶
¡ ¢ 2. 7
d12 (x4 ) = −2. 55 2. 98 + 2. 1263 = −2. 55 ∗ 2. 7 + 2. 98 ∗ 1. 5 + 2.
1. 5
1263 = −0. 288 7 < 0 → x4 ∈ C2

2.2.4. Enfoque neuronal


En 1943 McCulloch & Pitts (McCulloch & Pitts, 1943) propusieron una teoría
general del procesamiento de la información basado en redes de interrupción binaria,
las cuales son llamadas eufemísticamente neuronas, aunque ellas estén lejos de sus
2. Antecedentes 20

contrapartes biológicas. Cada una de estas neuronas sólo puede tomar como valores de
salida 1 o 0, donde 0 representa un estado inactivo de la neurona y 1 un estado activo.
McCulloch & Pitts mostraron que tales redes podían, en principio, implementarse en
sistemas de procesos de cómputo. Frank Rosemblatt presentó posteriormente en el año
de 1958 un modelo neural llamado perceptron junto con su regla de aprendizaje, el cual
está basado en el gradiente descendiente. El gradiente modifica una matriz, nombrada
matriz de acoplamiento o pesos, dependiendo del comportamiento de las neuronas.

Sin embargo, la simplicidad de este diseño fue también su punto débil; existen
tareas en RP que un perceptron no es capaz de resolver, como lo mostraron Minsky
& Paper (Minsky & Papert, 1969). Esto provocó que el interés en las redes neuronales
decayera. No fue hasta la aparición del trabajo de Hopfield (Hopfield,.1982; Hopfield,
1984) que el interés renaciera en este tipo de algoritmos.

Las redes neuronales pueden aplicarse a tareas de clasificación o regresión; utilizan


tanto el enfoque de entrenamiento supervisado como el no supervisado. La arquitectura
de la red incluye tres tipos de capas, la de entrada, la oculta y la de salida. Este tipo
de redes pueden llegar a ser muy complejas, se caracterizan por tener un conjunto
de pesos los cuales se van modificando, y funciones de activación con las cuales se
determina cómo la información será transmitida a las capas siguientes (Marqués de
Sá, 2001).

En el enfoque generalmente existen dos etapas claras: la de entrenamiento, donde


mediante un conjunto de patrones la red va ajustando el conjunto de pesos que tiene
asociados, hasta obtener en la capa de salida una clasificación correcta de los patrones
de entrenamiento; y la segunda etapa, donde se somete un conjunto de patrones mayor
al conjunto de entrenamiento para probar su rendimiento. Una clara desventaja, am-
pliamente referida, es el grado de heurística implicada en el diseño de los clasificadores
bajo este enfoque.

Existen muchos tipos de redes neuronales que funcionan como clasificadores, desde
el simple perceptron hasta las más avanzadas.

Perceptron
Minsky and Papper (Minsky, M. & Papert, S. (1969) describen al perceptron como
un algoritmo estocástico de gradiente descendente, que intenta la separación lineal de
un conjunto de datos de entrenamiento n-dimensional.

El perceptron tiene una sola salida y n entradas. El valor que toma la salida
esta determinada por un conjunto de valores, llamados pesos, y los valores de las
entradas. Este valor que toma la salida determina la clase a la cual pertenece un
patrón representado por un vector, cuyos componentes son los valores de las entradas
del perceptron. Es un algoritmo que emplea aprendizaje supervisado.

Un perceptron puede ser representado por un solo nodo que aplica una función
escalón a la suma de los productos de pesos y entradas (Kishan, Chilukuri & Sanjay,
1997).
2. Antecedentes 21

x0

w0
x1
w1
f(x0,...,xn )
w2
x2
. wn
.
.
xn

Figura 2.4. : Representación del perceptron

De la figura 2.4., w0 , w1 , ..., wn son los valores que representan a los pesos del
perceptron y x0 , x1 , ..., xn son los valores del patrón de entrada.

Para espacios n-dimensiónales debe existir al menos un hiperplano que pueda sepa-
rar un conjunto n-dimensionales en regiones. Un hiperplano n dimensional está definido
por la ecuación:

w0 + w1 x1 + ... + wn xx = 0
El cual podrá dividir un espacio n-dimensional en dos regiones. Donde para una
de las regiones que forma el hiperplano:

w0 + w1 x1 + ... + wn xx > 0
Para la otra región:

w0 + w1 x1 + ... + wn xx < 0
El vector de pesos w será ajustado a través de un algoritmo desarrollado por
Rosenblatt (Rosenblatt, 1958) y se demuestra que si los patrones usados para entrenar
el perceptron se pueden agrupar en clases linealmente separables, entonces, el algoritmo
converge. La posición de la superficie de decisión es un hiperplano entre las dos clases
(Haykin,. 1999).

Algoritmo de entrenamiento para el perceptron.


Un proceso iterativo, llamado algoritmo de entrenamiento para el perceptron, es
usado para obtener de manera automática los pesos que separan las clases.
Sea w un vector de pesos de la forma:

w = (w1 , w2 , ..., wn )
y x un patrón de entrada de la forma:

x = (x1 , x2 , ..., xn )
Entonces el producto punto w · x está definido. Si el producto w · x > 0, entonces
la salida será 1 y —1 si w · x < 0.
2. Antecedentes 22

En el algoritmo no se específica inicialmente un valor para los pesos w. Los valores


de w se escogen aleatoriamente al comienzo del proceso. Los patrones de entrenamien-
to son evaluados repetidamente y la respuesta obtenida es sensada, si la salida es la
deseada, w no sufre cambios, por el contrario, si no se obtiene una respuesta satisfac-
toria entonces w deberá ser modificado, esto a manera de que se reduzca el margen
de error en la respuesta del algoritmo.

En cada iteración, si x provoca una salida con valor —1, pero w · x > 0, entonces
los pesos deberán ser cambiados, lo mismo para salida 1 y w · x < 0.
Los pesos se modificarán en cada iteración con salida no deseada, de acuerdo con
la siguiente regla:

w0 = w + ∆w
Siendo w0 el nuevo valor para los pesos.
Para el caso en que w · x >0. Entonces (w + ∆w) · x deberá ser menor que w · x,
esto puede lograrse si ∆w es -ηx, siendo η una constante positiva, entonces:

(w + ∆w) · x = (w − ηx) · x = w · x − ηx·x < w · x


Para el caso en que w · x <0. Entonces (w + ∆w) · x deberá ser menor que w · x,
esto puede lograrse si ∆w es -ηx, siendo η una constante positiva, entonces:

(w + ∆w) · x = (w + ηx) · x = w · x + ηx·x > w · x


Este proceso de modificación de los pesos se repetirá cada vez que se obtenga una
salida no deseada. El proceso se detendrá cuando se encuentre un w , tal que w separe
linealmente a los patrones de entrenamiento.

Ejemplo 2.9 Este ejemplo muestra el funcionamiento del algoritmo de entrenamiento


del perceptron. Se aplica el algoritmo con 7 patrones de entrenamiento uno-dimensional.
Cuatro de ellos en una de las clases y los otros 3 en la clase restante. Los patrones
de entrenamiento están agrupados en clases linealmente separables, por lo que la con-
vergencia está garantizada. Los pesos inicialmente se escogerán de forma aleatoria y
el algoritmo intentará encontrar los valores de los pesos para determinar el hiperplano
que separa las clases.

Sea el conjunto de patrones uno-dimensional: {0. 0, 0. 17, 0. 33, 0. 5}, donde los
elementos pertenecen a la clase cuya salida es: -1, y sea el conjunto {0. 67, 0. 83, 1. 0},
donde los elementos pertenecen a la clase cuya salida es: 1.
Al aplicar el algoritmo se evalúan cada uno de los componente de ambas clases;
generalmente éstos se aplican sin seguir un orden determinado.
Evaluamos los patrones en el algoritmo para determinar los pesos. Los valores de
los pesos serán asignados de forma aleatoria, para este ejemplo w0 = −1 y w1 = −0.
36. Así, para la primera iteración tenemos:

w0 + w1 x1 = (−1) + (−0. 36)(0. 17) = −1. 061 < 0 =⇒ La salida será -1.
2. Antecedentes 23

Por lo tanto, los pesos no sufrirán cambio alguno. Este mismo resultado se obtiene
para todo el conjunto de esta clase.

w0 + w1 x1 = (−1) + (−0. 36)(0. 83) = −1. 2 < 0 =⇒ La salida será -1.

En este caso los pesos deberán ajustarse, y de acuerdo con el algoritmo se debe
sugerir un η, en este caso η = 0,1. Así, los nuevos pesos serán:

w00 = w0 + ηx0 = (−1) + (0. 1)(1) = −0. 9

w10 = w1 + ηx1 = (−0. 36) + (0. 1)(0. 83) = −0. 28


Nuevamente es evaluado un patrón, ahora con los nuevos pesos. En el caso de los
patrones de la clase con salida -1 todos darán un resultado satisfactorio, por lo que sólo
evaluaremos los patrones de la clase con salida 1. Entonces para el siguiente patrón
tenemos:

w00 + w10 x1 = (−. 9) + (−0. 28)(0. 67) = −1. 087 6


Una vez más los pesos deber ser modificados, dado que esperábamos un resultado
positivo. Los nuevos pesos serán:

w00 = w0 + ηx0 = (−0. 9) + (0. 1)(1) = −0. 8

w10 = w1 + ηx1 = (−0. 28) + (0. 1)(0. 67) = −0. 213


Volvemos a evaluar alguno de los patrones de la clase. Así:

w00 + w10 x1 = (−. 8) + (−0. 212)(1. 0) = −1. 012


Como podemos observar, al ajustar los pesos, la salida tiende a obtener el valor
esperado. Este proceso se repetirá hasta que en la salida se tenga un resultado satis-
factorio. Para este ejemplo, los valores de los pesos que den una salida esperada para
todos los patrones, quedan: w0 = −0. 2 y w1 = 0. 3.

Como se muestra en el ejemplo, los valores de los pesos se van ajustando hasta que
el valor de la salida converge en un valor esperado.

2.2.5. Enfoque probabilístico-estadístico


El enfoque probabilístico-estadístico es clásico en el área del reconocimiento de
patrones. Este enfoque se basa en métodos y fórmulas de la teoría de probabilidad y
estadística. Los modelos probabilísticos se usan para distribuir los vectores de rasgos
en clases mediante un conjunto de patrones, de los cuales se conoce su distribución en
las clases previamente. Los algoritmos creados en este enfoque usan, por lo tanto, un
entrenamiento supervisado, que le indicará al algoritmo cómo aplicar la clasificación
(Marqués de Sá, 2001).
2. Antecedentes 24

Existen diferentes tipos de clasificadores dentro de este enfoque; desde los paramétri-
cos, como el clasificador Bayesiano, hasta los clasificadores no paramétricos o también
llamados modelos de técnica libre, como el KNN o las ventanas Parzen (Kuncheva,
2000). Todos estos clasificadores y sus variantes están basados en modelos probabilís-
ticos. Dentro de los clasificadores estadísticos se cuenta con los árboles de decisión y
tablas (Marqués de Sá, 2000).

El clasificador Bayesiano no forma parte del presente trabajo de tesis, pero su


importancia en el enfoque hace indispensable su mención. Este clasificador se desarrolla
bajo el marco teórico de la probabilidad. Se usan probabilidades a priori, para estimar
la probabilidad a posteriori de que un determinado patrón pertenezca a cierta clase.

Algortimo del clasificador Bayesiano.


1. Obtener una muestra representativa S de los objetos a clasificar.

2. Determinar cada una de las clases Ck que formarán parte del sistema.
3. Determinar, con base en la muestra y en la cardinalidad de cada clase, las prob-
abilidades P (Ck ).
4. Determinar los rasgos útiles que se van a utilizar para clasificar, y elaborar cada
distribución de probabilidad p(X | Ck ) la cual va a ser dependiente del número
y naturaleza de cada rasgo de la variable aleatoria vectorial X.
5. Para clasificar un patrón desconocido de entrada X, aplicar la siguiente regla:

X ∈ Ci , si di > dj ∀i 6= j, con dk = ln(P (Ck )) + ln(p(X | Ck )) (2.17)

Clasificador KNN (K-Nearest Neighbours Method)


El algoritmo NN ha recibido una atención considerable desde su creación hasta
nuestro días. La sencillez conceptual, con la cual se concibió el algoritmo, ha hecho del
NN un método muy popular entre los investigadores. Una revisión integral está hecha
por Dasarathy (Dasarathy, 1991), donde se incluyen muchos de las más importantes
contribuciones hechas en el estudio de NN (Webb, 1999). Este es, tal vez, concep-
tualmente hablando, el más sencillo algoritmo de clasificación presentado junto con su
regla de decisión (Schürmann, 1996; Webb, 1999).

El método requiere un conjunto de patrones etiquetados, también conocidos como


conjunto de prototipos. Este conjunto de patrones es usado para clasificar un conjunto
de patrones de prueba, con lo cual se podrá medir el rendimiento del clasificador.

El método del NN calcula la distancia de un patrón de prueba respecto a cada


miembro del conjunto de prototipos, ordena las distancias de menor a mayor y retiene
2. Antecedentes 25

la clase del k patrón más cercano, siendo k una constante entera arbitraria. Este proceso
es en términos computacionales caro, para conjuntos de datos relativamente grandes
(Webb, 1999).

Un hecho importante de mencionar es la métrica que se emplee en el algoritmo.


Obviamente el resultado de las distancias dependerá de la métrica empleada. Normal-
mente se emplea la métrica euclidiana, pero se puede emplear cualquier otra (Webb,
1999).

Ejemplo 2.10 Este ejemplo mostrará en funcionamento del KNN, con k = 1 y usando
la métrica euclidiana.
µ ¶ µ ¶ µ ¶
1. 2 4. 3 2. 3
Sean los vectores x1 = , x2 = , x3 = , con x1 y x3
3. 0 0. 7 3. 1
que pertenecen a la clase
µ C1 ¶y x2 que pertenece a la clase C2 , el conjuto de patrones
3. 7
prototipo y sea x4 = el patrón que se desea clasificar
0. 5
De a cuerdo con el algoritmo del KNN:

Primero se calculará la distancia ente el patrón x4 y cada uno de los patrones


prototipo. De acuerdo con 2.16.

· µ ¶¸ 12
£ ¤ 12 ¡ ¢ 2. 5
T
d(x1 ,x4 ) = (x4 − x1 ) (x4 − x1 ) = 2. 5 −2. 5 · = (12. 5)1/2 = 3. 53
−2. 5

· µ ¶¸ 1
£ ¤ 12 ¡ ¢ −0. 6 2
T
d(x2 ,x4 ) = (x4 − x2 ) (x4 − x2 ) = −0. 6 −0. 2 · = (0. 76)1/2 = 0. 8717
−0. 2

· µ ¶¸ 12
£ ¤ 12 ¡ ¢ 1. 4
T
d(x3 ,x4 ) = (x4 − x3 ) (x4 − x3 ) = 1. 4 −2. 6 · = (8. 72)1/2 = 2. 95
−2. 6

Se ordenan las distancias de menor a mayor:

d(x2 ,x4 ) 0. 8717


d(x3 ,x4 ) 2. 95
d(x1 ,x4 ) 3. 53

Por lo tanto el patrón x4 pertenece a la clase 2.

La alta eficacia que presenta en problemas reales el KNN, hacen de este algoritmo
uno de los más usados.
2. Antecedentes 26

2.2.6. Enfoque sintáctico-estructural


Este enfoque está basado en la teoría de los lenguajes y en la teoría de autómatas,
que establecen si una determinada estructura pertenece a cierto lenguaje al cumplir
con un conjunto de reglas establecidas llamado gramática. Así, en lugar de analizar
los rasgos cuantitativos de los patrones, se hace énfasis en la interrelación de estas
características con las cuales se podrá discernir si pertenece al lenguaje. La estructura
que se puede determinar por medio de estas interrelaciones de los rasgos hace posible
que los patrones puedan ser tratados como palabras, donde sea factible establecer
reglas gramaticales que nos permitan establecer un determinado lenguaje.

La clasificación en este enfoque opera con información simbólica, con una analogía
entre la estructura de algún patrón y la sintaxis de un lenguaje, que estará determinado
por una gramática que hace atractivo este enfoque.

Al introducir la teoría de los lenguajes formales se diseñan clasificadores sintác-


ticos llamados “parsers” que pueden clasificar un patrón determinado, el cual será
presentado como una cadena de símbolos y se decidirá si pertenece al lenguaje o no.

Teoría de Autómatas y Lenguajes Formales


La teoría de autómatas y lenguajes formales es una de las teorías más importantes
que existen dentro de las ciencias de la computación, puesto que explica el porqué
funcionan las computadoras como las conocemos. El principal objetivo de esta teoría
es modelar lenguajes y estudiar los sistemas que generan y reconocen a los mismos;
es precisamente esta última característica la que más adelante nos va a servir en el
reconocimiento de patrones. Los principales avances en esta disciplina fueron hechos
por Noam Chomsky en las décadas de los 40 y 50 del siglo XX. Comenzaremos este
estudio breve sobre esta teoría con algunas definiciones básicas.

Definición 2.11 Un alfabeto Σ es un conjunto finito de símbolos, por ejemplo el


conjunto de las letras minúsculas {a, b, c, .., z}.

Definición 2.12 Una cadena o palabra w es una secuencia finita de símbolos del
alfabeto Σ. La longitud de w se denota |w| .

Definición 2.13 La concatenación de dos cadenas w1 y w2 , es la cadena w1 w2 de


longitud |w1 | + |w2 |

Definición 2.14 Denotamos ε al símbolo nulo y λ a la cadena de longitud 0.

Definición 2.15 Sea un V ⊆ Σ. Denotamos como V ∗ a la cerradura de V y es el


conjunto de todas las posibles cadenas que se pueden hacer con los símbolos de V ,
incluyendo a λ.

Ejemplo 2.16 Sea Σ = {a, d, e, p, r} un alfabeto. w = padre es una cadena sobre Σ,


puesto que p, a, d, r, e ∈ Σ; |w| = 5.
2. Antecedentes 27

Ejemplo 2.17 Sean w1 = pad, y w2 = re, dos cadenas sobre el mismo alfabeto del
ejemplo anterior. La cadena w = w1 w2 = padre, es la concatenación de w1 y w2 .

Ejemplo 2.18 Sea V = {a} ⊆ Σ, donde Σ es el alfabeto de los ejemplos anteriores.


La cerradura de V es V ∗ = {λ, a, aa, aaa, ...}.

La materia prima para trabajar en esta teoría son los símbolos y secuencias de
símbolos. Sin embargo, hay que notar que la teoría no incluye una semántica o sig-
nificado de los símbolos y las cadenas. Esto es importante puesto que se nos permite
modelar y procesar ideas sin preocuparnos por el significado que puedan tener las
mismas. El ejemplo más palpable sobre esta ventaja son las computadoras: una com-
putadora procesa símbolos que pertenecen al alfabeto {0, 1}, y aunque aparentemente
puede hacer muchas funciones, el significado de las mismas se lo da el usuario, no la
máquina.

La siguiente definición es una de las más importantes en esta teoría, puesto que todo
el desarrollo subsecuente se enfocará a generar y reconocer estos objetos matemáticos:
los lenguajes formales.

Definición 2.19 Un lenguaje formal £ es un conjunto finito, o infinito contable, de


palabras sobre un alfabeto. Evidentemente £ ⊆ Σ∗ .

Ejemplo 2.20 Sea Σ = {a, b}, £ es el lenguaje definido de la siguiente forma: £ =


{w|w comienza con una a} = {a, aa, ab, aaa, aab, aba, abb, ...}.

Al igual que podemos concatenar cadenas, también se pueden concatenar lenguajes.


Esta propiedad es muy importante, puesto que nos da una idea de cómo se pueden
construir lenguajes complejos a partir de otros más sencillos. La definición formal es
la siguiente:

Definición 2.21 Sean £1 y £2 dos lenguajes. la concatenación de £1 y £2 , denotada


£1 £2 = {w|w = w1 w2 , w1 ∈ £1 y w2 ∈ £2 }

Ejemplo 2.22 Sea £1 = {a} y £2 = {a, b}∗ , entonces el lenguaje del ejemplo 2.20
se puede representar como la concatenación de £1 y £2 de la siguiente forma: £ =
£1 £2 = {a} {a, b}∗ = {a, aa, ab, aaa, aab, aba, abb, ...}.

Gramáticas

Definición 2.23 Una gramática G es una tupla (Σ, N, S, P ), donde:

1. Σ es un alfabeto. Los elementos de Σ se llaman comúnmente símbolos terminales.

2. N es un conjunto de símbolos llamados no-terminales y N ∩ Σ = ∅.


2. Antecedentes 28

3. S ∈ N, es llamado el símbolo inicial.


4. P es un conjunto de reglas de producción o reglas de reescritura"del tipo α → β,
donde α y β son cadenas compuestas de símbolos terminales y no terminales,
con la restricción de que α debe de contener al menos un no-terminal.

Ejemplo 2.24 Sea G = (Σ, N, S, P ), con Σ = {a, b}, N = {S, B}, y P = {S → aB, B → aB|bB|ε}.
La parte más interesante en la gramática es el conjunto de producciones y nos dice lo
siguiente: que el símbolo S sólo puede ser sustituido por la cadena aB, donde a es un
símbolo terminal y B uno no-terminal. Ahora, B puede ser sustituido por 3 distintas
cadenas aB, bB o ε, de aquí que | represente a una .o"en las producciones. Supongamos
que queremos ver si la cadena abba puede ser producida a partir de G, entonces se hace
la siguiente derivación:

S ⇒G aB =⇒G abB =⇒G abbB =⇒G abbaB =⇒G abbaε = abba.


Primero, el símbolo =⇒G representa la relación derivación usando la gramática G
y significa que se ha ocupado una regla de producción para transformar una cadena en
otra. Ahora, cuando queremos producir una cadena a partir de G, siempre se comienza
con el símbolo inicial, en este caso S, y se ocupa alguna regla se sustitución para el
mismo. Aquí, sólo tenemos una opción que es S → aB, entonces S sólo puede derivar
la cadena aB y se escribe: S ⇒G aB. Luego, tenemos una cadena formada por un
terminal a y un no terminal B, entonces tenemos que sustituir de alguna forma el
no-terminal con otra regla, en este caso elegimos B → bB, así, la cadena aB puede
derivar la cadena abB y se escribe aB =⇒G abB. El proceso continúa hasta que se llega
a una cadena formada exclusivamente de símbolos terminales y es cuando terminamos
la derivación (nótese también que se hizo uso del símbolo nulo, que por su naturaleza
puede o no puede ser escrito).

Finalmente, como abba pudo ser producida por la gramática G, entonces esta ca-
dena pertenece al lenguaje aceptado por G y se expresa abba ∈ £(G).

Dado que las producciones pueden tener una gran cantidad de variantes, Chomsky
clasificó las gramáticas según la forma de sus producciones. la llamada jerarquía de
Chomsky es la siguiente:

1. Tipo 0. Gramáticas sin restricciones. Tienen producciones de la forma α → β


donde α y β son cadenas arbitrarias sobre el conjunto Σ ∪ N.
2. Tipo 1. Gramáticas sensibles al contexto. Tienen producciones de la forma αAβ →
αBβ, con α, β ∈ Σ y A, B ∈ N, o de la forma S → ε. Algunos lenguajes naturales
como el alemán suelen tener estructuras de este tipo.
3. Tipo 2. Gramáticas libres de contexto. Tienen producciones de la forma A → α,
donde A ∈ N y α ∈ Σ∗ .
4. Tipo 3. Gramáticas regulares. Tienen producciones de la forma A → αB o
A → α, con α ∈ Σ y B ∈ N y se les llama regular por la derecha. También
pueden ser regulares por la izquierda y las producciones son de la forma:A → Bα
o A → α, con α ∈ Σ y B ∈ N.
2. Antecedentes 29

La jerarquía de Chomsky es importante puesto que para cada tipo de gramática,


existe un autómata que las reconoce y más aún, existe un método para hacerlo. Los
detalles sobre autómatas y su relación con las gramáticas se presentarán en la siguientes
secciones.

Autómatas

Un autómata es un modelo matemático que nos permite reconocer palabras que


pertenecen a un lenguaje formal. En general, la idea detrás de cualquier tipo de autó-
mata está en tener un conjunto de estados que nos indican cuándo comienza el re-
conocimiento, cuándo se está en un estado intermedio y cuándo se termina el re-
conocimiento. Existen varios tipos de autómatas, los cuales se enlistan a continuación.

1. Máquinas de Turing. Son máquinas que reconocen los lenguajes generados por
las gramáticas sin restricción. Las computadoras son un caso especial de este
tipo de autómata. Utilizan un concepto llamado cinta infinita que es el análogo
a la memoria de una computadora.

2. Autómatas linealmente restringidos. Son los autómatas que reconoces lenguajes


generados por las gramáticas sensibles al contexto.

3. Autómatas de Pila. Utilizan una estructura de datos tipo FIFO (First In-First
Out : Primero en Entrar, Primero en Salir) para simular una memoria restringida.
Reconocen los lenguajes generados por gramáticas libres de contexto.

4. Autómatas Finitos. Son los más sencillos y reconocen los lenguajes generados
por las gramáticas regulares.

Definición 2.25 Un Autómata Finito AF es una tupla (Σ, Q, qo , F, T ) donde:

1. Σ es un alfabeto de entrada.

2. Q, es un conjunto finito de estados.

3. q0 ∈ Q es el estado inicial.

4. F ⊆ Q es un conjunto de estados finales y

5. T es una función T : Q × Σ → Q..

La forma de reconocer es la siguiente:

1. Se tiene una cadena w, se lee el primer símbolo y se toma q0 como estado actual.

2. Con el estado actual y el símbolo leído, se utiliza la función T para saber cuál
es el estado siguiente.
2. Antecedentes 30

3. Se lee el siguiente símbolo y se repite el paso 2 hasta que no haya más símboloes
por leer.

4. Si al terminar de leer la cadena, nos encontramos en un estado final, entonces


la cadena pertenece al lenguaje que acepta el autómata, denominado £(AF ). Si
no, no pertenece.

Equivalencia entre un AF y una Gramática


En esta última parte de esta sección mostraremos cómo se puede crear un autómata
a partir de una gramática.

Algoritmo 2.26 Algoritmo para convertir una gramática regular en un AF .

1. Sea G = (Σ, N, S, P ) y AF = (Σ, Q, qo , F, T ) , donde los alfabetos de G y AF


son los mismos e inicialmente, Q = N, q0 = S, T = ∅ y F = ∅

2. Para cada transición t en P hacer los pasos siguientes:

3. Si t es de la forma A → aB, con A, B ∈ N y a ∈ Σ, añadir a T una relación de


la forma ((A, a), B).

4. Si t es de la forma A → a, con A ∈ N y a ∈ Σ, añadir a F y a Q un estado X


y añadir a T una relación de la forma ((A, a), X).

5. Si t es de la forma A → ε, con A ∈ N, añadir A a F

6. Si t es de la forma A → aw, con A ∈ N , a ∈ Σ y w ∈ Σ∗ ∪ N ∗ , añadir a Q un


estado X , añadir a T una relación de la forma ((A, a), X) y repetir los datos 3
a 6 para una producción del tipo X → w.

Ejemplo 2.27 Diseñar un clasificador basado en el enfoque sintáctico-estructural para


identificar cuadrados de una longitud l en una imagen. Una fase de preprocesamiento
de la imagen permite obtener líneas del tamaño deseado en alguna dirección, puntos
donde se cortan dos líneas y la apertura entre las líneas que forman.

Queremos identificar cuadrados de un tamaño dado, pero no sabemos si los cuadra-


dos están o no rotados y además, lo único que podemos identificar son líneas de tamaño
fijo, vértices y ángulos en cada vértice.

De acuerdo al paso 1 de la fase de entrenamiento, tenemos que identificar los rasgos


que nos son útiles para describir nuestros patrones. Como lo único que puedo medir
son algunas características geométricas de la imagen, es lo que se va a aprovechar.
Supongamos que podemos recorrer una figura por su perímetro, entonces para identi-
ficar un cuadrado, necesitamos comenzar en un vértice, luego encontrar una línea del
tamaño deseado en alguna dirección, enseguida en ese punto identificar un vértice que
forme 90◦ con la otra línea ( se supone que los ángulos se miden siempre en el mismo
sentido), luego identificar que esa línea es de longitud l y repetir lo mismo para los
cuatro vértices.
2. Antecedentes 31

Así, las mediciones que vamos a tomar como rasgos son a) líneas de tamaño fijo
en una dirección; b) vértices que forman 90◦ con la otra línea.

Luego, según el paso 2 hay que asignar a cada rasgo un símbolo, así, a las líneas
de tamaño fijo en una dirección les llamaremos L y a los vértices que forman 90◦ con
la otra línea le llamaremos V . Así, podemos darnos cuenta, que para identificar un
cuadrado tenemos que comenzar en un vértice de tipo V , luego tenemos que encontrar
4 veces la siguiente secuencia: una línea L y un vértice V, figura 2.5.

Figura 2.5. Asignación de símbolos

De esta forma, proponemos que la gramática para este tipo de cadenas sea la que
tiene las siguientes reglas:

S → V LV LV LV LV
con N = {S, P } y Σ = {L, V }.
Y un el autómata generado que reconoce este lenguaje sería:

Figura 2.6. : Autómata resultante

Como se puede notar, aunque la gramática es muy simple, funciona para reconocer
un tipo de objetos sin importar la rotación.
2. Antecedentes 32

2.2.7. Génesis del enfoque asociativo para clasificación de patrones


En las postrimerías del año 1997, inmerso en el ambiente juvenil del incipiente
Centro de Investigación en Computación del Instituto Politécnico Nacional, se inició
el aglutinamiento de una masa crítica de elementos humanos proclives a incursion-
ar de manera seria y profesional en esas fascinantes disciplinas llamadas Robótica y
Reconocimiento de Patrones, y en los apasionantes recovecos del Procesamiento, el
Análisis y el Álgebra de Imágenes.
Como resultado de ese aglutinamiento nació el GRAI, acrónimo de la expresión:
Grupo de Robótica y Análisis de Imágenes. Este grupo tiene por lema la siguiente
máxima: Es mejor equivocarse por actuar y experimentar, que salvarse del
error al precio de no hacer nada.

En la actualidad, el GRAI cuenta entre sus filas con investigadores, profesores,


alumnos de maestría y de doctorado del CIC-IPN, y algunas personas de otras insti-
tuciones con intereses congruentes con los propósitos y acciones del grupo.

Las bases teóricas de las actividades que se realizan en el GRAI provienen de áreas
tan interesantes y útiles como la Morfología Matemática, el Álgebra de Imágenes, la
Teoría del Control, las Matemáticas Discretas, las Redes Neuronales, las Memorias
Asociativas, el Reconocimiento de Patrones, la Teoría de la Información y la Teoría de
las Transformadas Matemáticas, entre otras.

La actividad ha sido productiva y creciente. El GRAI tiene en su haber un premio


nacional "Luis Enrique Erro", una presea "Lázaro Cárdenas", un proyecto REDII-
Conacyt, media decena de proyectos CGPI-IPN, la autoría de un libro y la edición de
otro, varios capítulos de libro, algunos artículos en revista internacional o nacional,
media decena de graduados en maestría y tres de doctorado, y más de media docena
de tesis en proceso.

Como tema del presente trabajo de tesis, la cual forma parte de esa media docena,
durante el año 2002 se planteó la creación del enfoque asociativo para reconocimiento
y clasificación de patrones. Así, los miembros del GRAI fueron testigos del nacimiento
de un nuevo enfoque en reconocimiento automático de patrones: el enfoque asociativo,
el cual se ha revelado como una alternativa real en clasificación automática de patrones
n-dimensionales reales.

El primer clasificador de patrones basado en el enfoque asociativo es el CHAT, crea-


do, diseñado y aplicado en el marco de los trabajos científicos realizados por miembros
del GRAI, y presentado en este trabajo de tesis. El novedoso algoritmo fusiona, de al-
guna manera, dos prominentes ramas de las ciencias de la computación: la calsificación
automática de patrones en el dominio real por un lado, y la aplicación de las memorias
asociativas, por el otro. En el diseño del clasificador se han tomado libremente las ven-
tajas de dos modelos de memorias asociativas, la Lernmatrix de Steinbuch y el Linear
Associator de Anderson-Kohonen, evitando, al mismo tiempo, sus desventajas.
Capítulo 3

Estado del arte

En el campo de las memorias asociativas, que es el marco en el que se desarro-


lla este trabajo, no existen referencias sobre la tarea específica de la clasificación de
patrones; los trabajos más recientes son los realizados en el desarrollo de las memo-
rias morfológicas (Ritter, Sussner, Diaz-de-León, 1999) y de las memorias αβ (Yáñez-
Márquez, 2002). Estos trabajos no están enfocados directamente a la clasificación, sino
al reconocimiento de patrones.

Por otro lado, las dos memorias en que está basado el producto de este trabajo
de tesis (CHAT), la Lernmatrix (Steinbuch, 1961; Steinbuch & Frank, 1961; Yáñez-
Márquez, 2001a) y el Linear Associator (Anderson & Tosenfeld, 1990; Kohonen, 1989,
Yáñez-Márquez, 2002b), no fueron diseñadas para la clasificación de patrones. Stein-
buch, creador de la Lermatrix, no dejó ningún trabajo que sustente el funcionamiento
de la Lernmatrix de forma matemática, y en el caso del Linear Associator el cual
si quedó fundamentado matemáticamente, aún sigue siendo referencia en el área de
memorias asociativas.

El campo donde compite directamente el CHAT es la tarea de clasificación de


patrones. Existe un vasto campo donde residen varios enfoques que atacan este pro-
blema, desde los sustentados fuertemente por una base teórica como la probabilidad,
hasta enfoques donde el grado de heurística es muy alto; tal es el caso de las redes
neuronales.

Actualmente, existen tres áreas donde el trabajo dedicado a la investigación de la


clasificación de patrones se está enfocando. La primera es la de buscar aumentar el
rendimiento de los clasificadores ya conocidos, mediante la optimización del proceso o
de alguno de los componentes del mismo (Bandyopadhyay & Maulik, 2002; Demeni-
coni, Peng & Gunopulos, 2002; Ho, Liu, & Liu, 2002; Huang, & et. al., 2002; Rueda
& Oommen, 2002; Wu, Ianekiev & Govindaraju, 2002); la segunda área es la de bus-
car combinaciones entre los clasificadores ya conocidos, ya sea combinando etapas o
resultados de unos sirviendo de entradas para otros (Acharya & et. al., 2003; Kittler
& Alkoot, 2003; Kuncheva, 2002; Lu & Tan, 2002; Murua, 2002; Nicola, Masulli &
Sperduti, 2002); y la tercera se refiere a la búsqueda de unificar enfoques (Abe, 2001;
Šarūnas, 2001).

33
3. Estado del arte 34

Este trabajo de tesis se centra en mostrar un nuevo algoritmo: el CHAT. Uno de


los puntos principales será mostrar el comportamiento de este clasificador frente a
clasificadores sólidos en el área, tanto en su base teórica como práctica.

Uno de los clasificadores más utilizados es el KNN (Cover & Hart, 1967), con
más de 40 años dentro del área del reconocimiento de patrones, siendo uno de los
clasificadores más longevos y estudiados de la actualidad; las sencillez del algoritmo
y su alta efectividad (Ho, Liu & Liu, 2002) hacen de este clasificador, uno de los
más usados en el ámbito de los clasificadores de patrones por los investigadores. Estas
características hacen del KNN un clasificador ideal para la comparación del CHAT al
reunir ambos la sencillez de los algoritmos.

Exiten otros clasificadores en el área de reconocimiento de patrones, pero éstos


requieren de condiciones diferentes al CHAT o KNN, tal es el caso del clasificador
Bayesiano que requiere de la función de densidad de probabilidad o de las ventanas
Parzen (Duda, Hart & Stork, 2001); otros como las redes neuronales tienen una gran
cantidad de heurística implícita en su funcionamiento y aunque está presente en el
KNN, ésta es menor (limitada al valor de k).

El KNN tiene tres principales limitaciones (Huang & et. al. 2002), el excesivo
tiempo de cómputo, el requerimiento de una gran capacidad de almacenamiento de
memoria, y la sensibilidad a los patrones ruidosos. El trabajo de investigación sobre
el KNN se centra en disminuir estas limitaciones del clasificador al tratar de reducir
el tamaño del conjunto de patrones con los cuales se ha de determinar a qué clase
pertenece un patrón desconocido (Bandyopadhyay & Maulik, 2002; Ho, Liu, & Liu,
2002; Huang & et. al. 2002; Wu, Ianekiev & Govindaraju, 2002; Rueda & Oommen,
2002).

La característica más importante en el CHAT es que requiere de un conjunto fun-


damental reducido, por lo que su complejidad computacional es mucho menor que la
del KNN para lograr la tarea de clasificación, como se muestra en los hechos experi-
mentales y que repercute directamente en el tiempo de cómputo.

Un algoritmo que se toma en cuenta con fines comparativos es el C-means, usando


funciones de disimilaridad (Ayaquica, 2002), el cual muestra un mejor rendimiento
frente al C-means y C-means difuso. Los resultados comparativos mostrarán que el
CHAT es superior en rendimiento a estos algoritmos ya establecidos.
Capítulo 4

Herramientas matemáticas

En virtud de que las memorias asociativas se representan por medio de matrices,


es preciso exponer algunos conceptos ya conocidos sobre las notaciones, el uso de las
matrices y los vectores, que serán usados de manera intensiva en los capítulos 5 y 6.

4.1. Sumatorias
P
En matemáticas se introduce la notación para facilitar la escritura de la suma
de los elementos de una sucesión y se pueden escribir de la siguiente manera:
n
X
am + am+1 + am+2 + ... + an = ai
i=m
Donde m y n son enteros y m ≤ n.El número m se denomina límite inferior de la
suma y n se llama límite superior. El símbolo i es un símbolo convencional y puede
ser sustituido por cualquier otro.

Ejemplo 4.1 Sea la suma de los elementos de la sucesión:

43 + 53 + 63

esta sucesión se puede representar a través de la notación sigma, de la siguiente


forma:
6
X
i3
i=4

Ejemplo 4.2 Si la notación de sumatoria es:

3
X
i2
i=−2
P
entonces, i toma valores que van de -2 a 3 y mediante la notación se representa
a la suma de los elementos de la sucesión:

35
4. Herramientas matemáticas 36

(−2)2 + (−1)2 + (0)2 + (1)2 + (2)2 + (3)2

Ejemplo 4.3 Sea la suma de los elementos de la sucesión:

−3a3 + 4a4 − 5a5 + 6a6 − 7a7 + 8a8


esta sucesión se puede representar a través de la notación sigma, de la siguiente
forma:
8
X
−3a3 + 4a4 − 5a5 + 6a6 − 7a7 + 8a8 = (−1)i iai
i=3

4.2. Operador máximo


W
El operador máximo se denota con el símbolo y se aplica a un conjunto de
componentes para dar como resultado el valor máximo de todos ellos.

Ejemplo 4.4 Sea un conjunto de componentes contenidos en un vector de dimensión


5:

 
6
12
 
x =
3

8
12
al aplicar el operador máximo al conjunto de componentes del vector x, tenemos:
4
_
xi = 12
i=0

4.3. Operaciones matriciales


Notación 4.5 Las matrices se representan con esta notación: si m, n y r son números
enteros positivos, A = [aij ]m×r representa una matriz de dimensiones m × r, cuya ij-
ésima entrada es aij , y B = [bij ]r×n representa una matriz de dimensiones r × n, cuya
ij-ésima entrada es bij .

Definición 4.6 Una matriz A es un arreglo rectangular de m×r números dispuestos


en m renglones y r columnas.
4. Herramientas matemáticas 37

 
a11 a12 ··· a1j ··· air
 a21 a22 ··· a2j ··· a2r 
 
 .. .. .. .. 
 . . . . 
 
 ai1 ai2 ··· aij ··· air 
 
 .. .. .. .. 
 . . . . 
am1 am2 ··· amj · · · amr

Definición 4.7 Suma de matrices: Sean A y B dos matrices de m × n.Entonces


la suma de A y B es la matriz m × n, A + B dada por:

 
a11 + b11 a12 + b12 ··· a1n + b1n
 a21 + b21 a22 + b22 ··· a2n + b2n 
 
A + B = (aij + bij ) =  .. .. .. 
 . . . 
am1 + bm1 am2 + bm2 · · · amn + bmn
es decir, A + B es la matriz m × n que se obtiene al sumar las componentes
correspondientes de A y B.

Definición 4.8 Producto de matrices: Sea A una matriz m × r, y sea B una matriz
de r × n. Entonces el producto de AB está definido y es una matriz C de m × n, en
donde cada componente de la matriz cij está dado:

cij = ai1 b1j + ai1 b1j + · · · + air brj


Es decir, que si el número de columnas de A es igual al número de renglones de B,
entonces se dice que A y B son compatibles bajo la multiplicación.

4.4. Vectores n-dimensionales


Dentro de la literatura del álgebra lineal se considera a un vector como un tipo
especial de matriz (Lang, S. 1976, Grossman, S.I. 1996, Leithold, L. 1998). Así, ciertas
combinaciones en los valores de m, n y r, dan lugar a casos específicos, los cuales vale
la pena mencionar porque simplifican las operaciones:

Si m = 1 y r = 1, a consta de una única entrada, a11 . En este caso se trata de


un número que indicaremos con la letra a sin subíndices.

Si m = 1 y r > 1, a es un vector fila con r entradas: a = {a11 , a12 , ..., a1r }. Se


eliminará el subíndice 1 que corresponde a m para simplificar la notación, y el
vector fila se denotará así: a = {a1 , a2 , ..., ar }.
4. Herramientas matemáticas 38

Si r > 1 y n = 1, b es un vector columna con r entradas:


 
b11
 b21 
 
b= . 
.
 . 
br1
Se eliminará el subíndice 1 que corresponde a r para simplificar la notación, y el
vector columna se denotará así:
 
b1
 b2 
 
b= . 
 .. 
br

por lo anterior, los vectores se sujetan a las definiciones citadas en las sección
anterior.

Desde el punto de vista del análisis vectorial se hace el estudio de los vectores de dos
formas, analítica y geométrica. En la forma analítica tenemos que un vector se sujeta
a la siguiente definición cuando el vector es de dimensión dos y se desea representarlo
en el plano bidimensional.

Definición 4.9 Vector en un plano bidimensional es un par ordenado de número


reales (x, y).Donde a los números x, y, se denominan componentes del vector.

Sea el vector bidimensional x el par ordenado de números reales (x, y). Si A es


el punto (x,y) y O es el origen en el plano, entonces el vector x puede representarse
−→
geométricamente por el segmento rectilíneo dirigido OA, denominado representación
del vector x.

4.5. Producto interno y producto externo de vectores.


Estos productos entre vectores que en la literatura se denominan producto punto
o interno y producto externo, aquí serán tratados como el producto entre matrices,
donde los vectores deberán cumplir con los requisitos de la definición de producto
matricial.

4.5.1. Producto interno


Sea a una matriz de 1 × r, donde a = {a1 , a2 , ..., ar } y sea b una matriz de r × 1
donde
 
b1
b2 
 
b=.
 .. 
br
4. Herramientas matemáticas 39

por lo tanto el producto esta definido, tal que:


 
b1
¡ 
¢ b2  
a · b = a1 a2 · · · ar ·  .  = (a1 b1 + a2 b2 + · · · + ar br )
..
br
como resultado tenemos un escalar.

4.5.2. Producto externo


Sea A una matriz de m × 1, donde:

a1
 a2 
 
a= . 
 .. 
am
y sea B una matriz de 1 × n, tal que:

b = (b1 , b2 , . . . , bn )
por lo tanto el producto esta definido y esta dado por:
   
a1 a1 b1 a1 b2 · · · a1 bn
 a2  ¡ ¢  a2 b1 a2 b2 · · · a2 bn 
   
a · b =  .  · b1 b2 · · · bn =  . .. .. 
.
 .   .. . . 
am am b1 am b2 · · · am bn
dando por resultado una matriz de dimensión m × n.

4.6. Producto de una matriz y un vector.


El producto de una matriz A de dimensión m × n y un vector de columna x de
dimension n esta definido (Gill, Murray & Wright, 1989). Denotado como Ax, da como
resultado un vector de dimensión m, donde cada componente del vector resultante está
dado por:
n
X
(Ax)i = aij xj
j=1

4.7. Traslación de ejes


Un sistema coordenado nos permite asociar una gráfica (concepto geométrico) con
una ecuación (concepto algebraico), donde una ecuación algebraica es un enunciado
en el que se establece la igualdad de dos expresiones, las cuales contienen variables.
4. Herramientas matemáticas 40

Ejemplo 4.10 Sea y = 3x−2 una ecuación algebraica donde (x,y) es un punto en R2 .
Si x se sustituye por un conjunto de valores en R podemos obtener la representación
geométrica de la ecuación

10

0
-5 -2.5 0 2.5 5

-5 x

-10

-15

Figura 4.1: Gráfica de y = 3x − 2

La forma de la gráfica no se ve modificada por la posición de los ejes coordenados,


pero su ecuación sí es afectada.

Ejemplo 4.11 Sea una circunferencia con radio 5 y centro en el punto (2,-2) tiene
la ecuación:

(x − 2)2 + (y + 2)2 = 25

y
2.5

x
-2.5 0 2.5 5
0

-2.5

-5

Figura 4.2:Gráfica de (x − 2)2 + (y + 2)2 = 25

Ahora, si elegimos los ejes coordenados de tal manera que su origen sea el centro de
la circunferencia, se tiene una ecuación más sencilla, esto es, la ecuación se transforma
en:
4. Herramientas matemáticas 41

x2 + y 2 = 25

y 5

1
0
-5 -4 -3 -2 -1 0 1 2 3 4 5
-1
x
-2

-3

-4

-5

Figura 4.3:Gráfica de x2 + y 2 = 25

Cuando los ejes están dados en un problema determinado y se desea encontrar ejes
diferentes pero paralelos a los originales, se dice que se hace una traslación de ejes.
Si (x,y) representa un punto P con respecto a un conjunto de ejes determinado, y
(x’, y’) es la representación de P después de que los ejes son trasladados a un nuevo
origen que tiene coordenadas (h,k) con respecto a los ejes originales, entonces(Leithold,
L. 1998):

x0 = x − h y y0 = y − k (4.1)

Ejemplo 4.12 Sean los vectores x, z los pares ordenados de números reales (5, 4)
y (10, 12) de acuerdo con la Definición 4.8, entonces existen los puntos X, Z con
coordenada (5, 4) y (11, 12). Donde el punto O con coordenada (0,0) es el origen,
entonces los vectores x, z pueden representarse geométricamente por los segmentos
−−→ −→
rectilíneos dirigidos OX y OZ respectivamente.

10

7.5

2.5

0
0 2.5 5 7.5 10

Figura 4.4:Gráfica de los puntos X y Z


4. Herramientas matemáticas 42

ahora, tomaremos de manera arbitraria un punto H con coordenadas (8,8) como


un nuevo origen y de acuerdo con la expresión 4.1, los vectores x y z tendrán la
representación en los nuevos ejes marcados por el origen H como:

x0 = (−3, −4)
y

z 0 = (3, 4)
Donde los nuevos puntos X’ y Z’ están representados en la siguiente gráfica.

y 4
3.5
3
2.5
2
1.5
1
0.5
0
-3 -2.5 -2 -1.5 -1 -0.5
-0.5 0 0.5 1 1.5 2 2.5 3
-1
x
-1.5
-2
-2.5
-3
-3.5
-4

Figura 4.5: representación de X’ y Z’.


Capítulo 5

Desarrollo

Es aquí, en este capítulo, donde se presenta la parte sustantiva del presente trabajo
de tesis.

El capítulo está dividido en dos secciones; en la primera, se muestra el desarrollo


de un clasificador de patrones en el dominio real, que da lugar a la creación de un
nuevo enfoque, el asociativo, para la tarea de clasificación de patrones, que es una
rama del reconocimiento de patrones.

En la segunda sección se presenta otra versión del primer clasificador que se ha


creado bajo el enfoque asociativo de clasificacón de patrones; esta nueva versión, a
través de un proceso de traslación de ejes, convierte a la primera versión en un clasi-
ficador robusto capaz de competir con los clasificadores más longevos y estudiados,
basados en otros enfoques.

El clasificador de la primera sección se denomina CHA, Clasificador Híbrido


Asociativo, y está basado en dos memorias asociativas pioneras: la Lernmatrix de
Steinbuch y el Linear Associator de Anderson-Kohonen.

El CHA supera ampliamente las limitaciones que presentan cada una de estas
memorias asociativas, lo cual se logra al combinar las fases de aprendizaje o recu-
peración de ambas de forma ingeniosa. El CHA, puede aceptar valores reales en las
componentes de sus vectores de entrada ( a diferencia de la Lernmatrix, que sólo
acepta valores binarios, 1 y 0) y a sus vectores de entrada no se les exige que sean
ortonormales (los vectores de entrada del Linear Associator deber ser ortonormales,
para tener recuperación perfecta en todo su conjunto fundamental). Además el CHA
es un clasificador que se comporta como una memoria asociativa perfecta, según los
conceptos y definiciones expuestas en el capítulo 2, bajo condiciones más débiles que
las que se requieren para las dos memorias asociativas clásicas mencionadas.

Hay algunos casos en que el CHA falla en su tarea de clasificación. Para superar
estas limitaciones, se ideó y diseñó una nueva versión del CHA, mediante la adición de
un nuevo paso al algoritmo: la traslación ingeniosa de los ejes coordenados. La nueva
versión, denominada CHAT, Clasificador Híbrido Asociativo con Traslación,
se desarrolla y ejemplifica en la segunda sección.

43
5. Desarrollo 44

5.1. El CHA
En el trascurso de este trabajo se diseñó una nueva memoria asociativa. Esta
memoria asociativa, denominada CHAT, está basada en la combinación de las fases
de aprendizaje del Linear Associator y la fase de recuperación de la Lernmatrix. Al
combinar de esta forma las fases se eliminan las limitantes de ambas. Esta parte
del trabajo de tesis fue presentada en el CIARP 2002, VII Congreso Iberoamericano
de Reconocimiento de Patrones (Santiago-Montero, Yáñez-Márquez & Diaz de León,
2002), bajo el título de Clasificador Híbrido de Patrones. Esta memoria ya muestra las
posibilidades de poder clasificar patrones que no están en la fase de aprendizaje de la
memoria asociativa y puede asignarlos acertadamente a una determinada clase.

Como se ilustra en los ejemplos, con la sola combinación de fases no es posible re-
cuperar y clasificar patrones con alguna determinada configuración. Esto nos presenta
dificultades al aplicar el CHA en problemas serios de clasificación. Para remediar lo
anterior, se creó el CHAT.

5.1.1. Algoritmo del CHA


1. Sea un conjunto fundamental de patrones de entrada de dimensión n con valores
reales en sus componentes (a la manera del Linear Associator), que se aglutinan
en m clases diferentes.

2. A cada uno de los patrones de entrada que pertenece a la clase k se le asigna el


vector formado por ceros, excepto en la coordenada k-ésima, donde el valor es
uno (a la manera de la Lernmatrix).

3. La fase de aprendizaje es similar a la del Linear Associator.

4. La fase de recuperación es similar a la que usa la Lernmatrix.

Este algoritmo simple nos permite diseñar un clasificador de patrones, como se


ilustra en el siguientes ejemplos:

Ejemplo 5.1 Cinco patrones de dimensión 2 con valores reales, aglutinados en dos
clases diferentes:

A la primera clase pertenecen dos patrones:


µ ¶ µ ¶
−4. 1 −4. 8
x1 = y x2 =
3. 8 4. 2
Tres patrones pertenecen a la segunda clase:
µ ¶ µ ¶ µ ¶
−6. 3 −6. 2 −7. 0
x3 = , x3 = y x4 =
−3. 8 −3. 1 −3. 0
Lo anterior significa, de acuerdo con el inciso 2 del algoritmo, que los patrones de
salida son los siguientes:
5. Desarrollo 45

µ ¶ µ ¶
1 2 1 3 4 5 0
y =y = y y =y =y =
0 1
Para la fase de aprendizaje, de acuerdo con el inciso 3 del algoritmo, se calculan
los términos yµ · (xµ )t usando la expresión 2.4 y el clasificador C se obtiene a partir
de las expresiones 2.5 y 2.6:
5
X µ ¶
µ µ t −8. 9 8. 0
C= y · (x ) = (5.1)
−19. 5 −9. 9
µ=1

El inciso 4 del algoritmo indica que la fase de recuperación se lleva acabo de acuerdo
con la expresión 2.3.

µ ¶ µ ¶ µ ¶ µ ¶
−8. 9 8. 0 −4. 1 66. 89 1
· = → → clase 1
−19. 5 −9. 9 3. 8 42. 33 0
µ ¶ µ ¶ µ µ ¶ ¶
−8. 9 8. 0 −4. 8 76. 32
1
· = → → clase 1
−19. 5 −9. 9 4. 2 52. 02
0
µ ¶ µ ¶ µ ¶ µ ¶
−8. 9 8. 0 −6. 3 25. 67 0
· = → → clase 2
−19. 5 −9. 9 −3. 8 160. 47 1
µ ¶ µ ¶ µ ¶ µ ¶
−8. 9 8. 0 −6. 2 30. 38 0
· = → → clase 2
−19. 5 −9. 9 −3. 1 151. 59 1
µ ¶ µ ¶ µ ¶ µ ¶
−8. 9 8. 0 −7. 0 38. 3 0
· = → → clase 2
−19. 5 −9. 9 −3. 0 166. 2 1

Ejemplo 5.2 Ahora probemos el clasificador con dos patrones que no pertencen al
conjunto fundamental:

µ ¶ µ ¶ µ ¶ µ ¶
−8. 9 8. 0 −4. 0 83. 6 1
· = → → clase 1
−19. 5 −9. 9 6. 0 18. 6 0
µ ¶ µ ¶ µ ¶ µ ¶
−8. 9 8. 0 −6. 0 21. 2 0
· = → → clase 2
−19. 5 −9. 9 −4. 0 117. 6 1

Nota 5.3 Resulta evidente que este problema de clasificación no puede ser resuelto
por la Lernmatrix de Steinbuch, ya que los patrones de entrada no son binarios, como
lo requiere ese modelo. Por otro lado, tampoco es posible resolverlo por el Linear As-
sociator, debido a que los patrones de entrada no son ortonormales, como lo exige la
expresión 2.9.

Ejemplo 5.4 Cuatro patrones de dimensión 3 con valores reales, aglutinados en dos
clases diferentes:
5. Desarrollo 46

A la primera clase pertenecen dos patrones:


   
12. 0 10. 0
x1 =  3. 0  y x2 =  1. 0 
11. 0 12. 0
Dos patrones pertenecen a la segunda clase:
   
2. 0 1. 0
x3 =  8. 0  , y x4 =  9. 0 
12. 0 11. 0
Lo anterior significa, de acuerdo con el inciso 2 del algoritmo, que los patrones de
salida son los siguientes:
µ ¶ µ ¶
1 2 1 3 4 0
y =y = y y =y =
0 1
Para la fase de aprendizaje, de acuerdo con el inciso 3 del algoritmo, se calculan
los términos yµ · (xµ )t usando la expresión 2.4 y el clasificador C se obtiene a partir
de las expresiones 2.5 y 2.6:
5
X µ ¶
µ µ t 22. 0 4. 0 23. 0
C= y · (x ) = (5.2)
3. 0 17. 0 23. 0
µ=1

El inciso 4 del algoritmo indica que la fase de recuperación se lleva acabo de acuerdo
con la expresión 2.3.

 
µ ¶ 12. 0 µ ¶ µ ¶
22. 0 4. 0 23. 0  529. 0 1
· 3. 0  = −→ −→ clase 1
3. 0 17. 0 23. 0 340. 0 0
11. 0
µ ¶ 10. 0 µ ¶ µ ¶
22. 0 4. 0 23. 0  500. 0 1
· 1. 0  = −→ −→ clase 1
3. 0 17. 0 23. 0 323. 0 0
12. 0
µ ¶ 2. 0 µ ¶ µ ¶
22. 0 4. 0 23. 0   352. 0 0
· 8. 0 = −→ −→ clase 2
3. 0 17. 0 23. 0 418. 0 1
12. 0 
µ ¶ 1. 0 µ ¶ µ ¶
22. 0 4. 0 23. 0   311. 0 0
· 9. 0 = −→ −→ clase 2
3. 0 17. 0 23. 0 409. 0 1
11. 0

Ejemplo 5.5 Ahora probemos el clasificador con dos patrones que no pertencen al
conjunto fundamental:
5. Desarrollo 47

 
µ ¶ 9. 8 µ ¶ µ ¶
22. 0 4. 0 23. 0  488. 0 1
· 1. 4  = −→ −→ clase 1
3. 0 17. 0 23. 0 320. 0 0
11. 6
µ ¶ 2. 2 µ ¶ µ ¶
22. 0 4. 0 23. 0  369. 0 0
· 7. 7  = −→ −→ clase 2
3. 0 17. 0 23. 0 427. 3 1
12. 6

Nota 5.6 En el ejemplo anterior se ha cambiado la dimensión de los patrones de


entrada a 3. El clasificador tiene nuevamente recuperación perfecta y también ha re-
cuperado patrones que no pertenecen al conjunto fundamental de manera correcta, al
agrupar cada patrón en su respectiva clase.

Ejemplo 5.7 Seis patrones de dimensión 5 con valores reales, aglutinados en tres
clases diferentes:

A la primera clase pertenecen dos patrones:


   
12 12. 6
10 10. 9
   
x =
1  2 
 2  y x =  2. 3 

4  3. 5 
2 1. 8
Dos patrones pertenecen a la segunda clase:
   
1 1. 1
2  2. 2 
   
x =
3  4 
 1  y x =  1. 5 

11 10. 6
12 11. 8
Y dos patrones para la tercera clase:
   
1 1. 2
2  1. 9 
   
x = 13 y x = 
5   6
13. 2

11 11. 4
1 0. 9
Lo anterior significa, de acuerdo con el inciso 2 del algoritmo, que los patrones de
salida son los siguientes:
     
1 0 0
1
y =y = 02   3 4
, y =y = 1   y y = y = 0
5 6 
0 0 1
Para la fase de aprendizaje, de acuerdo con el inciso 3 del algoritmo, se calculan
los términos yµ · (xµ )t usando la expresión 2.4 y el clasificador C se obtiene a partir
de las expresiones 2.5 y 2.6:
5. Desarrollo 48

 
5
X 24. 6 20. 9 4. 3 7. 5 3. 8
C= yµ · (xµ )t =  2. 1 4. 2 2. 5 21. 6 23. 8 (5.3)
µ=1 2. 2 3. 9 26. 2 22. 4 1. 9
El inciso 4 del algoritmo indica que la fase de recuperación se lleva acabo de acuerdo
con la expresión 2.3.

 
  12. 0    
24. 6 20. 9 4. 3 7. 5 3. 8 10. 0 550. 4 1
 
 2. 1 4. 2 2. 5 21. 6 23. 8 · 
 2. 0  = 206. 2 −→ 0 −→ clase 1

2. 2 3. 9 26. 2 22. 4 1. 9  4. 0  211. 2 0
2. 0
 
  12. 6    
24. 6 20. 9 4. 3 7. 5 3. 8 10. 9 580. 75 1
 
 2. 1 4. 2 2. 5 21. 6 23. 8 · 
 2. 3  = 196. 43 −→ 0 −→ clase 1

2. 2 3. 9 26. 2 22. 4 1. 9  3. 5  212. 31 0
1. 8
 
  1. 0    
24. 6 20. 9 4. 3 7. 5 3. 8  2. 0  198. 8 0
 
 2. 1 4. 2 2. 5 21. 6      
23. 8 ·  1. 0  = 536. 2 −→ 1 −→ clase 2
2. 2 3. 9 26. 2 22. 4 1. 9 11. 0 305. 4 0
12. 0
 
  1. 1    
24. 6 20. 9 4. 3 7. 5 3. 8  2. 2  203. 83 0
 
 2. 1 4. 2 2. 5 21. 6      
23. 8 ·  1. 5  = 525. 1 −→ 1 −→ clase 2
2. 2 3. 9 26. 2 22. 4 1. 9 10. 6 310. 16 0
11. 8
 
  1. 0    
24. 6 20. 9 4. 3 7. 5 3. 8  2. 0  208. 6 0
 
 2. 1 4. 2 2. 5 21. 6      
23. 8 · 13. 0 = 304. 4 −→ 0 −→ clase 3
2. 2 3. 9 26. 2 22. 4 1. 9 11. 0 598. 9 1
1. 0
 
  1. 2    
24. 6 20. 9 4. 3 7. 5 3. 8  1. 9  214. 91 0
 
 2. 1 4. 2 2. 5 21. 6      
23. 8 · 13. 2 = 311. 16 −→ 0 −→ clase 3
2. 2 3. 9 26. 2 22. 4 1. 9 11. 4 612. 96 1
0. 9

Ejemplo 5.8 Ahora probemos el clasificador con tres patrones que no pertencen al
conjunto fundamental :
5. Desarrollo 49

 
  11. 4    
24. 6 20. 9 4. 3 7. 5 3. 8 10. 6 549. 64 1
 
 2. 1 4. 2 2. 5 21. 6 23. 8 · 
 1. 9  = 216. 51 −→ 0 −→ clase 1

2. 2 3. 9 26. 2 22. 4 1. 9  4. 1  212. 41 0
2. 3
 
  1. 1    
24. 6 20. 9 4. 3 7. 5 3. 8  2. 1  204. 31 0
 
 2. 1 4. 2 2. 5 21. 6 23. 8 · 
 1. 3  =  548. 2  −→ 1 −→ clase 2

2. 2 3. 9 26. 2 22. 4 1. 9 10. 5 304. 38 0
12. 9
 
  1. 1    
24. 6 20. 9 4. 3 7. 5 3. 8  2. 5  229. 91 0
 
 2. 1 4. 2 2. 5 21. 6 23. 8 · 
 13. 8  = 325. 57 −→ 0 −→ clase 3

2. 2 3. 9 26. 2 22. 4 1. 9 11. 56 634. 95 1
1. 2

Nota 5.9 Nuevamente el clasificador ha recuperado todo su conjunto fundamental de


forma correcta, para tener una vez más recuperacion perfecta. Lo mismo ha ocurrido
al someter al clasificador, patrones que no pertenecen al conjunto fundamental clasi-
ficándolos de manera correcta, aquí las dimensiones tanto de los patrones de entrada
como los de salida que codifican las clases, son diferentes y no han influido en el
comportamiento del clasificador.

Ejemplo 5.10 2 patrones de dimensión 2 con valores reales, aglutinados en dos clases
diferentes:

A la primera clase pertenece el patrón:


µ ¶
1 2. 1
x =
3. 8
A la segunda clase:
µ ¶
2 6. 3
x =
3. 8
Lo anterior significa, de acuerdo con el inciso 2 del algoritmo, que los patrones de
salida son los siguientes:
µ ¶ µ ¶
1 1 2 0
y = y y =
0 1
5. Desarrollo 50

Para la fase de aprendizaje, de acuerdo con el inciso 3 del algoritmo, se calculan


los términos yµ · (xµ )t usando la expresión 2.4 y el clasificador C se obtiene a partir
de las expresiones 2.5 y 2.6:
5
X µ ¶
µ µ t 2. 1 3. 8
C= y · (x ) = (5.4)
6. 3 3. 8
µ=1

El inciso 4 del algoritmo indica que la fase de recuperación se lleva a cabo de


acuerdo con la expresión 2.3.
µ ¶ µ ¶ µ ¶ µ ¶
2. 1 3. 8 2. 1 18. 85 0
· = −→ −→¿clase 2?
µ6. 3 3. 8¶ µ3. 8¶ µ27. 67¶ µ1¶
2. 1 3. 8 6. 3 27. 67 0
· = −→ −→clase 2
6. 3 3. 8 3. 8 54. 13 1

Nota 5.11 El ejemplo anterior nos muestra los efectos causados cuando tenemos al
menos un patrón de entrada de magnitud mucho mayor a las magnitudes de los otros
patrones de entrada, el clasificador tiende a asignar los patrones de menor magnitud
a la clase cuyos patrones tienen la mayor magnitud.

5.2. El CHAT
En esta sección mostraremos ejemplos, en los que se puede observar cómo el CHA
se transforma en CHAT y así supera las limitaciones mencionadas de las dos memo-
rias asociativas, el Linear Associator y la Lernmatrix y además, de qué manera se
transforma en un clasificador de alto rendimiento, al agregar la traslación de ejes.

El ejemplo 5.10 muestra una desventaja para la clasificación de patrones agrupados


en un mismo cuadrante del plano, con una clase con patrones cuya magnitud es mucho
mayor a la magnitud de los patrones de las otras clases presentes en el problema de
clasificación. Esto para efectos prácticos representa una gran desventaja, dado que en
el área de clasificación de patrones es una constante que los patrones de las clases a
clasificar se encuentren en el mismo plano y con magnitudes diferentes en sus vectores.

La solución, que en el presente trabajo se realiza para resolver este problema, es


la traslación de ejes, con el nuevo origen situado en el centroide de los vectores que
representan a los patrones de entrada.

Sean x1 , x2 , ...xµ un conjunto de patrones de entrada, y sea x̄ el vector medio de


todos ellos (González & Woods, 2001), donde:

p
1X µ
x̄ = x (5.5)
p
j=1
5. Desarrollo 51

Trasladando los ejes a un nuevo origen cuyas coordenadas son las del vector medio
de los patrones de entrada del conjunto fundamental, se crea un nuevo conjunto de
0 0 0
patrones trasladados x1 , x2 , ..., xp , donde:

0
xµ = xµ − x̄ (5.6)

∀xµ con µ ∈ {1, 2, ..., p}


Una vez trasladado todo el conjunto de patrones de entrada, se procede con el
algoritmo descrito en la sección anterior. Este proceso de traslación se hace también
con todo nuevo patrón de entrada que se desee clasificar.

5.2.1. Interpretación teórica del CHAT


En esencia el CHAT utiliza las representaciones vectoriales de los patrones para
clasificar. Esto lo hace mediante la medición del menor ángulo entre un vector pro-
totipo, de alguna de las clases contenidas en la memoria del clasificador y un vector
desconocido del cual se desea obtener su clase asociada. Para una medición del ángulo
antes mencionado, y obtener una asociación más precisa con su clase, es necesaria la
traslación de ejes a un punto, en el espacio de características, donde los ángulos entre
vectores, representantes de las diferentes clases involucradas, sean significativos para
clases distintas y muy reducidos para la misma clase.

5.2.2. Algoritmo del CHAT


1. Sea un conjunto fundamental de patrones de entrada de dimensión n con valores
reales en sus componentes (a la manera del Linear Associator), que se aglutinan
en m clases diferentes.

2. A cada uno de los patrones de entrada que pertenece a la clase k se le asigna el


vector formado por ceros, excepto en la coordenada k-ésima, donde el valor es
uno (a la manera de la Lernmatrix).

3. Se calcula el vector medio del conjunto de patrones muestra o prototipos con


que se cuente.

4. Se toman las coordenadas del vector medio a manera de centro de un nuevo


conjunto de ejes coordenados.

5. Se realiza la traslación de todos los patrones del conjunto fundamental.

6. Aplicamos la fase de aprendizaje, que es similar a la del Linear Associator.


5. Desarrollo 52

7. Aplicacos la fase de recuperación, que es similar a la que usa la Lernmatrix.

8. Trasladamos todo patrón a clasificar en los nuevos ejes.

9. Procedemos a clasificar los patrones desconocidos.

Ejemplo 5.12 Sea el mismo conjunto de patrones del ejemplo 5.10:

A la primera clase pertenece el patrón:


µ ¶
1 2. 1
x =
3. 8
A la segunda clase:
µ ¶
2 6. 3
x =
3. 8
Se realiza la traslación de los vectores de entrada, de acuerdo con 5.5, entonces
tenemos que:
p ·µ ¶ µ ¶¸ µ ¶
1X µ 1 2. 1 6. 3 4. 2
x̄ = x = + =
p 2 3. 8 3. 8 3. 8
j=1

donde de acuerdo con 5.6 los patrones de entrada ahora son:


µ ¶ µ ¶ µ ¶
0 2. 1 4. 2 −2. 1
x1 = − =
3. 8 3. 8 0. 0
µ ¶ µ ¶ µ ¶
20 6. 3 4. 2 2. 1
x = − =
3. 8 3. 8 0. 0
Lo anterior significa, de acuerdo con el inciso 2 del algoritmo, que los patrones de
salida son los siguientes:
µ ¶ µ ¶
10 1 20 0
y = y y =
0 1
Para la fase de aprendizaje, de acuerdo con el inciso 3 del algoritmo, se calculan
los términos yµ · (xµ )t usando la expresión 2.4 y el clasificador C se obtiene a partir
de las expresiones 2.5 y 2.6:
5
X µ ¶
µ µ t −2. 1 0
C= y · (x ) = (5.7)
2. 1 0
µ=1

El inciso 4 del algoritmo indica que la fase de recuperación se lleva acabo de acuerdo
con la expresión 2.3.
5. Desarrollo 53

µ ¶ µ ¶ µ ¶ µ ¶
−2. 1 0 −2. 1 4. 41 1
· = −→ −→clase 1
µ 2. 1 0¶ µ 0. 0¶ µ −4. 41 ¶ µ ¶0
−2. 1 0 2. 1 −4. 41 0
· = −→ −→clase 2
2. 1 0 0. 0 4. 41 1

Ejemplo 5.13 2 patrones de dimensión 3 con valores reales, aglutinados en dos clases
diferentes:

A la primera clase pertenece el patrón:


 
2. 0
x1 = 3. 0
6. 0
A la segunda clase:
 
6. 0
x2 =  8. 0 
10. 0
Lo anterior significa, de acuerdo con el inciso 2 del algoritmo, que los patrones de
salida son los siguientes:
µ ¶ µ ¶
1 1 2 0
y = y y =
0 1
Para la fase de aprendizaje, de acuerdo con el inciso 3 del algoritmo, se calculan
los términos yµ · (xµ )t usando la expresión 2.4 y el clasificador C se obtiene a partir
de las expresiones 2.5 y 2.6:
5
X µ ¶
µ µ t 2. 0 3. 0 6. 0
C= y · (x ) = (5.8)
6. 0 8. 0 10. 0
µ=1

El inciso 4 del algoritmo indica que la fase de recuperación se lleva a cabo de


acuerdo con la expresión 2.3.
 
µ ¶ 2. 0 µ ¶ µ ¶
2. 0 3. 0 6. 0 49. 0 0
· 3. 0 = −→ −→¿clase 2?
6. 0 8. 0 10. 0 96. 0 1
6. 0 
µ ¶ 6. 0 µ ¶ µ ¶
2. 0 3. 0 6. 0 96. 0 0
·  8. 0  = −→ −→clase 2
6. 0 8. 0 10. 0 200. 0 1
10. 0

Probemos el clasificador con otros patrones desconocidos pero que pertenecen a las
clases involucradas en el ejemplo.

A la primera clase pertenece el patrón:


5. Desarrollo 54

 
1. 9
x3 = 3. 8
5. 5
A la segunda clase:
 
6. 4
x = 7. 2
4 
9. 7
El inciso 4 del algoritmo indica que la fase de recuperación se lleva a cabo de
acuerdo con la expresión 2.3.

 
µ ¶ 1. 9 µ ¶ µ ¶
2. 0 3. 0 6. 0 48. 2 0
· 3. 8 = −→ −→¿clase 2?
6. 0 8. 0 10. 0 96. 8 1
5. 5
µ ¶ 6. 4 µ ¶ µ ¶
2. 0 3. 0 6. 0   92. 6 0
· 7. 2 = −→ −→clase 2
6. 0 8. 0 10. 0 193. 0 1
9. 7
De acuerdo con el algoritmo del CHA, la recuperación del conjunto no es perfecta
y patrones que pertenecen a la clase 1 son clasificados como clase 2.
Con la de traslación de ejes se prueba el mismo conjunto de fundamental y los
patrones desconocidos en la fase de aprendizaje.
A la primera clase pertenece el patrón:
 
2. 0
x = 3. 0
1 
6. 0
A la segunda clase:
 
6. 0
x2 =  8. 0 
10. 0

Se realiza la traslación de los vectores de entrada, de acuerdo con 5.5, entonces


tenemos que:
     
p 2. 0 6. 0 4. 0
1 X µ 1   
x̄ = x = 3. 0 + 8. 0  = 5. 5
p j=1 2
6. 0 10. 0 8. 0
donde de acuerdo con 5.6 los patrones de entrada ahora son:
     
2. 0 4. 0 −2. 0
0
x1 = 3. 0 − 5. 5 = −2. 5
6. 0 8. 0 −2. 0
5. Desarrollo 55

     
6. 0 4. 0 2. 0
0
x2 =  8. 0  − 5. 5 = 2. 5
10. 0 8. 0 2. 0
Lo anterior significa, de acuerdo con el inciso 2 del algoritmo, que los patrones de
salida son los siguientes:
µ ¶ µ ¶
10 1 20 0
y = y y =
0 1
Para la fase de aprendizaje, de acuerdo con el inciso 3 del algoritmo, se calculan
los términos yµ · (xµ )t usando la expresión 2.4 y el clasificador C se obtiene a partir
de las expresiones 2.5 y 2.6:
5
X µ ¶
µ µ t −2. 0 −2. 5 −2. 0
C= y · (x ) = (5.9)
2. 0 2. 5 2. 0
µ=1

El inciso 4 del algoritmo indica que la fase de recuperación se lleva acabo de acuerdo
con la expresión 2.3.

 
µ ¶ −2,0 µ ¶ µ ¶
−2. 0 −2. 5 −2. 0  14. 25 1
· −2. 5 = −→ −→clase 1
2. 0 2. 5 2. 0 −14. 25 0
−2. 0
µ ¶ 2. 0 µ ¶ µ ¶
−2. 0 −2. 5 −2. 0   −14. 25 0
· 2. 5 = −→ −→clase 2
2. 0 2. 5 2. 0 14. 25 1
2. 0

Se procede ahora a probar el Clasificador Híbrido Asociativo con Traslación (CHAT)


con los vectores que no pertenecen al conjunto fundamental.

A la primera clase pertenece el patrón:


 
1. 9
x3 = 3. 8
5. 5
A la segunda clase:
 
6. 4
x = 7. 2
4 
9. 7
donde de acuerdo con 5.6 los patrones de entrada ahora son:
     
1. 9 4. 0 −2. 1
0
x3 = 3. 8 − 5. 5 = −1. 7
5. 5 8. 0 −2. 5
5. Desarrollo 56

     
6. 4 4. 0 2. 4
0
x4 = 7. 2 − 5. 5 = 1. 7
9. 7 8. 0 1. 7
El inciso 4 del algoritmo indica que la fase de recuperación se lleva acabo de acuerdo
con la expresión 2.3.

 
µ ¶ −2. 1 µ ¶ µ ¶
−2. 0 −2. 5 −2. 0   13. 45 1
· −1. 7 = −→ −→clase 1
2. 0 2. 5 2. 0 −13. 45 0
−2.
  5
µ ¶ 2. 4 µ ¶ µ ¶
−2. 0 −2. 5 −2. 0   −12. 45 0
· 1. 7 = −→ −→clase 2
2. 0 2. 5 2. 0 12. 45 1
1. 7
Capítulo 6

Disquisiciones experimentales

En este capítulo se muestra experimentalmente el rendimiento del CHAT: Clasi-


ficador Híbrido Asociativo con Traslación, ante conjuntos de patrones contenidos
en 4 bases de datos públicas; estos patrones están agrupados en clases. Los aspectos
de interés que se tomaron en cuenta para realizar los experimentos son los mismos que
se han registrado en la literatura sobre clasificadores, donde el punto de interés radica
esencialmente en el porcentaje de clasificación correcta del conjunto de patrones con-
tenidos en las bases respectivas. Las bases de datos públicas se encuentran en la UCI
Machine Learning Data Bases Repository, del ICS, de la universidad de California,
Irvine: http://ftp.ics.uci.edu/pub/machine-learning-databases.

Las bases de datos que fueron usadas en los experimentos son:


-Iris plants database.
-Wine recognition data.
-Contraceptive method choice (cmc).
-Credit approval database.

En cada una de las bases de datos, un renglón representa un patrón, con la primera
columna señalando la clase a la cual pertenece el patrón de la fila respectiva. Las sub-
secuentes columnas en la misma fila contienen datos que representan las características
del objeto.

Los experimentos se llevaron a cabo en una PC genérica con procesador Pentium


II a 350MHz, 128 MBytes de RAM y un disco duro de 6 Gbytes, con sistema operativo
Windows 2000 de Microsoft. El programa se realizó en el lenguaje C++ y se utilizó
el compilador de Borland, C++ Builder 5 . Las bases de datos se almacenaron en
archivos secuenciales, así como los resultados obtenidos de la clasificación.

6.1. Base de datos


A continuación se exhiben breves comentarios respecto de cada una de las bases
de datos que se usaron para llevar a cabo los experimentos.

57
6. Disquisiciones experimentales 58

6.1.1. Iris plants database


Esta es tal vez la base de datos más conocida que se encuentra en la literatura del
reconocimiento de patrones. Usada por Fisher (Fisher, 1936), es un clásico en el campo
y una referencia frecuente hasta nuestros días (Duda, Hart, & Strork, 2001; Gonzalez
& Woods, 2001). El conjunto de datos contiene 3 clases de 50 instancias cada una,
donde cada clase hace referencia a un tipo de planta de iris (Iris Setosa, Iris Versicolor
e Iris Virginia). Cada patrón que representa una planta de iris tiene 4 atributos, más
uno que representa la clase. En esta base de datos los rasgos que representan el largo
y ancho de los pétalos están altamente correlacionados.

Información de los atributos

Rasgos Descripción
1 Clase: 1:Iris Setosa,2:Iris Versicolour, 3:Iris Virginia
2 Largo del sépalo en centímetros
3 Ancho del sépalo en centímetros
4 Largo del pétalo en centímetros
5 Ancho del pétalo en centímetros

Tabla 6.1: Descripción de rasgos (Iris plants).

6.1.2. Wine recognition data


Esta base de datos presenta los resultados de un análisis químico de vinos produci-
dos en una misma región de Italia pero que provienen de diferentes cultivos (Forina,
et al, 1991). Los patrones están agrupados en 3 clases con una distribución de 59 pa-
trones para la clase 1, 71 patrones para la clase 2 y 48 patrones para la clase 3. El
análisis determina las cantidades de 13 constituyentes encontrados en cada uno de los
tres tipos de vinos. En el contexto de clasificadores, es un buen problema para probar
un nuevo clasificador.
6. Disquisiciones experimentales 59

Información de los atributos

Rasgo Descripción
1 Clase
2 Alcohol
3 Ácido málico
4 Cenizas
5 Alcalinidad de la ceniza
6 Magnesio
7 Total de fenoles
8 Flavonoides
9 Fenoles No-flavonoides
10 Proanthocyanins*
11 Intensidad del color
12 Matiz
13 OD280/OD315 de vino diluido*
14 Proline*

Tabla 6.2: Descripción de rasgos (Wine recognition data).

6.1.3. Contraceptive method choice


La base de datos es un subconjunto de la Encuesta Nacional de Indonesia en
el Control Anticonceptivo. Los ejemplos son de mujeres casadas quienes no estaban
embarazadas o no sabían si lo estaban al momento de la entrevista. El problema es el de
predecir el uso de métodos anticonceptivos de una mujer basados en sus características
socio-económicas y demográficas.

Los datos se agrupan en 3 clases, la clase 1 para quien no usa algún método con
629 patrones, la clase 2 para las mujeres que tienen un método a largo plazo con
333 patrones y la clase 3 para aquellas que llevan un método a corto plazo con 511
patrones, en total 1,473 patrones.
6. Disquisiciones experimentales 60

Información de los atributos

Rasgo Descripción
1 Clase
2 Edad
3 Grado educativo
4 Grado educativo de la pareja
5 Número de niños ya concebidos
6 Religión
7 Trabajo
8 Ocupación de la pareja
9 Índice del estandar de vida
10 Riesgo de vida

Tabla 6.3: Descripción de rasgos (Cmc).

6.1.4. Credit approval database


En esta base de datos se encuentra recabada la información de personas sujetas
a crédito por parte de alguna institución financiera la cual, con base en los datos
obtenidos, formula una aprobación o no, de crédito para el cliente. No existe informa-
ción complementaria a esta base de datos y la descripción de datos se omite por ser
de tipo confidencial; se sabe que existen 2 clase distribuidas de la siguiente forma: 307
patrones para la clase 1 y 383 para la clase 2 para un total de 690 patrones.

6.2. Metodología

Se forma un vector de rasgos (también conocido como vector patrón o vector


característico) con dimensión igual al número de características representadas
en el patrón; dado que la primera columna de la base de datos señala la clase,
no se incluirá en el vector de rasgos.
Cada componente del vector de rasgos toma sus valores de cada uno de los valores
contenidos en el patrón, respetando el orden ya establecido. Este procedimiento
se hace con cada uno de los patrones de la base de datos.
Posteriormente se obtiene del conjunto de vectores un vector prototipo o vector
medio (Gonzalez & Woods, 2001).
Una vez obtenido el vector medio, en el punto terminal de este vector establecido
por sus n-componentes se determina el centroide del conjunto de vectores de
rasgos.
Mediante este centroide se hace una traslación de todos los vectores de rasgos,
respetando el orden de la base de datos original.
6. Disquisiciones experimentales 61

Trasladados los vectores de rasgos, se toma un subconjunto de vectores de ca-


racterísticas de forma aleatoria de cada una de las clases involucradas; cada clase
aportará al conjunto fundamental un número igual de vectores de rasgos para ser
utilizados en la fase de aprendizaje y en la fase de recuperación del Clasificador
Híbrido Asociativo con Traslación.

Ya que se ha obtenido el CHAT en la fase de aprendizaje, se someten al clasifi-


cador los vectores de rasgos uno a uno y se procede a la clasificación, obteniendo
en cada caso un número que representa la clase.

Una vez obtenidos todos los resultados se procede a realizar un análisis de éstos,
donde se establece como clasificación correcta, si la clase resultante es igual a
la clase ya establecida para cada uno de los vectores de rasgos sometidos a la
clasificación; calculando así un porcentaje de clasificaciones.

6.3. Estudio comparativo entre el CHAT y otros algorit-


mos de clasificación
En esta sección mostramos el rendimiento que se obtuvo del Clasificador Híbrido
Asociativo con Traslación (CHAT) en cada una de las base de datos descritas anteri-
ormente en este capítulo; además se confrontan estos resultados con los obtenidos en
estas mismas bases de datos por diversos clasificadores, los resultados mostrados están
en porcentajes de correcta clasificación de los patrones contenidos en las diversas bases
de datos.

Los clasificadores que se han tomado en cuenta para esta comparación son el ya
muy conocido KNN (K- Nearest Neighbours) con dos variantes, 1-NN y KNN con K=3.
Estos clasificadores fueron implementados en su totalidad en lenguaje C++ bajo el
ambiente visual del compilador C++ Builder 5 de Borland, bajo las mismas condiciones
que el CHAT. Además, de estos 2 clasificadores se tomaron los estudios comparativos
que se realizaron en la tesis de maestría Algoritmo C-means difuso usando funciones
de disimilaridad (Ayaquica, 2002) y se sometieron estas mismas bases de datos a
los clasificadores c-means y c-means difuso contra el rendimiento presentado por el
c-means difuso usando funciones de disimilaridad.

En el caso de los clasificadores 1-NN y 3-NN se ha utilizado un conjunto prototipo


de 5 y 8 elementos por cada clase respectivamente, todos escogidos de forma aleato-
ria, para el CHAT se ha utilizado un conjunto fundamental de 4 patrones por clase
también escogidos de manera aleatoria.

6.3.1. Iris plants database


Con esta base de datos se realizaron 20 pruebas de clasificación para el clasificador
CHAT y los KNN. Los resultados tomados del trabajo de tesis de maestría sólo
presentan 10 pruebas de clasificación y se han tomado directamente del trabajo.
6. Disquisiciones experimentales 62

El punto central en este problema de clasificación es determinar de forma correcta


cada uno de los patrones al asignarlos a su clase respectiva; los porcentajes mostrados
en las gráficas son los obtenidos por el clasificador sobre toda la base de datos.

Rendimiento 1-KNN

98

7
.6
96
0

0
.0

.0

.0
96

96

96
3

3
.3

.3

.3

.3

.3
96
95

95

95

95

95

7
.6
94
3

3
.3

.3

.3
94
93

93

93
7
.6
92

0
.0
92
3
.3
92

91
Porcentaje

0
.0
90
90
7
.6
88

0
.0
88
3
.3

88
87

86

84

82
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ClasificaciÛn

Fig. 6.1: Rendimiento del 1-NN ante la base de datos Iris plants.
6. Disquisiciones experimentales 63

Rendimiento 3-KNN

100

3
.3
95
0

0
.0

.0
3

3
95

.3

.3
94

94
7

7
.6

.6

.6
93

93
0

0
.0

.0
92

92

92
3
.3
92

92

7
.6
91

90
3

3
.3

.3

.3

.3

7
.6
89

89

89

89
90
0
.0

88
3
.3
88

87
Porcentaje

85
7
.6
80

80

75

70
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ClasificaciÛn

Fig 6.2: Rendimiento del 3-NN, con la base de datos Iris plants.

100.00% % % % % % % % % % % %
9 .33 8.67 9.33 9.33 9.33 9.33 8.67 8.67 9.33 9.33 9.13
8 8 8 8 8 8 8 8 8 8 8
80.00%
Eficiencia

60.00%

40.00%

20.00%

0.00%
Prom.
1

10

Prueba
Fig. 6.3: Rendimiento del clasificador C-means.
6. Disquisiciones experimentales 64

100.00% % % % % % % % % % % %
.33 9.33 9.33 9.33 0.00 9.33 9.33 9.33 9.33 9.339.40
89 8 8 8 9 8 8 8 8 8 8
80.00%
Eficiencia

60.00%

40.00%

20.00%

0.00%

10

Prom.
1

9
Prueba
Fig. 6.4: Rendimiento del clasificador C-means difuso.

100.00% % % % % % % % % % % %
6 .00 6.00 4.00 6.00 6.00 6.00 6.00 6.00 5.33 4.00 5.53
90.00% 9 9 9 9 9 9 9 9 9 9 9
80.00%
70.00%
Eficiencia

60.00%
50.00%
40.00%
30.00%
20.00%
10.00%
0.00%
Prom.
1

10

Prueba
Fig 6.5: Rendimiento del clasificador C-means difuso usando funciones de disimilaridad.
6. Disquisiciones experimentales 65

Rendimiento del CHM

.67
99.00

98
.00

.00
.67
98

98
98.00

.33

.33
.33
97

.00

.00

.00
97

97
97
.67

97

97

97
97.00
.33

.33

96
96

96
Porcentaje

.67
96.00

.33

.33

.33
95
.00

.00

.00
95

95

95
95

95

95
95.00

94.00

93.00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ClasificaciÛn

Fig 6.6: Rendimiento del CHAT con la base de datos Iris plants.

110

100
Porcentaje

90

80

70

60
1-NN 3-NN C-means C-means dif. C-means DFD CHAT
Mejor rendimiento 96.67 95.33 89.33 90 96 98.67
Peor rendimiento 87.33 80.67 88.67 89.33 94 95
Promedio 93.3 90.79 89.13 89.4 95.53 96.56
Clasificador
Mejor rendimiento Peor rendimiento Promedio

Tabla 6.4: Comparación del rendimiento de los clasificadores (Iris plants).

Los resultados obtenidos mostrados en la tabla 6.4 nos permiten ver que el rendimien-
to para la mejor clasificación fue para el CHAT; además, vemos que el rendimiento
6. Disquisiciones experimentales 66

en general nunca es menor al 95 %. En cambio, para los clasificadores basados en el


algoritmo KNN, el rendimiento bajó hasta el 80 %, mientras que para las variantes del
C-means se reportan rendimientos constantes.

6.3.2. Cmc (Contraceptive method choice)


En esta base de datos el problema es determinar el método anticonceptivo de una
mujer indonesia con base en el patrón que describe sus características socio-económicas
y demográficas.

Se realizaron nuevamente 20 pruebas de clasificación tanto para los KNN como


para el CHAT y se plasman los resultados en este trabajo los resultados obtenidos en
la tesis de maestría sin alteración.

Rendimiento 1-KNN

50

.10
.29

45
44

.80

.20

45
.91
.82
41
.19

41

40
40
.35

.92
39

.32
.20

40
38

.91
37

.40

.97

36

.91
.89
36

35
.36

.21
35

.39

33

33
33

35
33

33

.59
32

30
30
Porcentaje

25

20

15

10

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ClasificaciÛn

Fig. 6.7: Rendimiento del 1-NN con la base de datos Cmc.


6. Disquisiciones experimentales 67

Rendimiento 3-KNN

.74

.55
8

. 17
.2

.14
45

.57
42

6
42
42

42
.45

.2
.10
41
.43

.42
40

40
.66

0
39

.02
39
.6
.57
38

40

38
37

37

37
.51
7
36
.04

.2
.19

34
34
34

.21
35
32

31
30
Porcentaje

25

20

15

10

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ClasificaciÛn

Fig. 6.8: Rendimiento del 3-NN con la base de datos Cmc.

100.00%
90.00%
80.00%
70.00%
Eficiencia

60.00%
50.00% % % %
% % % % .00 5.99 4.47 %
40.00% .80 3.80 3.42 .80 35 .42 4%
33 3 3 33 3 3 33 31.8
% %
30.00% .75 .90
22 21
20.00%
10.00%
0.00%
1

10

Prom.

Prueba

Fig. 6.9: Rendimiento del C-means con la base de datos Cmc.


6. Disquisiciones experimentales 68

100.00%
90.00%
80.00%
70.00%
Eficiencia

60.00%
50.00% 6% 5%
% 89% 5% % 40.1 40.5 7% % 2%
.84 37. .4 % .8 4 37.4 .45 .8
40.00% 3 4 34 .40 34 34 34
31 %
30.00% .10
22
20.00%
10.00%
0.00%

Prom.
1

10
Prueba

Fig. 6.10: Rendimiento del C-means difuso con la base de datos Cmc.

100.00%
90.00%
80.00%
70.00% %
28 % % %
E ficiencia

2 % 57. 91 84 75 %
60.00% . 0
51
.
52
. % 52
. . 10 48
%
51 22 50 % .
50.00% % 4 5. . 9 2 47
88 %
. .9
1 41
40.00% 36 34
30.00%
20.00%
10.00%
0.00%
Prom.
1

10

Prueba

Fig. 6.11: Rendimiento del C-means difuso usando funciones de disimilaridad.


6. Disquisiciones experimentales 69

Rendimiento del CHM

70

.86
.65

.06

.05

.01

.98
.89

.66
.40

. 66
58

.34
58

.30
58

58

58

57
.60

57
60

57
.14
57

. 83
.79
.77

55

55
55
.48
54

54

53
53
53

.47

51
49

.01
50

45
Porcentaje

40

30

20

10

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Clasificaciones

Fig. 6.12: Rendimiento del CHAT con la base de datos Cmc.

70

60

50
Porcentaje

40

30

20

10

0
1-NN 3-NN C-means C-means dif. C-means DFD CHAT
Mejor rendimiento 45.1 42.74 35.99 40.16 57.28 58.86
Peor rendimiento 30.59 31.21 21.9 22.1 34.91 45.01
Promedio 37.23 38.1 31.84 34.82 47.48 55.47
Clasificador

Mejor rendimiento Peor rendimiento Promedio

Tabla 6.5:Comparación del rendimiento de los clasificadores (Cmc).


6. Disquisiciones experimentales 70

Los resultados obtenidos mostrados en la tabla 6.5 nos permiten ver que nueva-
mente el rendimiento para la mejor clasificación fue para el CHAT; además vemos que
el rendimiento en general nunca es menor al 45 %. En cambio, para los clasificadores
basados en el algoritmo KNN, el rendimiento bajó hasta el 31 %, mientras que para
las variantes del C-means se reportan rendimientos de sólo el 21 %.

6.3.3. Credit approval database


Los patrones se agrupan en dos clases dentro de la base de datos: + y -, para fines
de poder operarar los programas que implementan los clasificadores KNN y CHAT
se ha asignado 1 a la clase + y 2 a la clase -. Cada patrón en la base de datos está
compuesto por 15 rasgos, 6 de los cuales son numéricos y estos son los únicos que se
utilizaron para los clasificadores implementados, eliminando 4 rasgos booleanos y 5
nominales.

Se realizaron 20 pruebas de clasificación en el caso del 1-NN, 3-NN y CHAT,


dejando de forma inalterada los resultados obtenidos para el C-means, C-means difuso
y C-means usando funciones de disimilaridad.

Rendimiento 1-KNN

80
.79

.76

. 39
.74

. 67

.07

70
66

66

.47

66
.95

.77
65

65

65
5

. 25

.90
. 37

62
.9
61

61
.25
59

59

58
58
57

60
. 57
. 97

. 36

52
.70
50
.28

49

.47
47

50
45

44
Porcentaje

40

30

20

10

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ClasificaciÛn

Fig. 6.13: Rendimiento del 1-NN con la base de datos Credit.


6. Disquisiciones experimentales 71

Rendimiento 3-KNN

70

.80

.61

.52

.36
.00

.86
.32

.13
63

.85
61

61

61
61

60
.03
60

60
.81
58

.11
.41
60

.55

57

55

55
.27
54

.14

53

.00
51
50

.93

49
50

45
.47
.33
38
Porcentaje

40

37
30

20

10

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ClasificaciÛn

Fig. 6.14: Rendimiento del 3-NN con la base de datos Credit.

100.00%

80.00%
Eficiencia

60.00% .8 1% .81
% 1% .81% .81% .81% .81% .81% .81% .81%
50 50 .8 1% 50.8 50 50 50 50 50 50 50
50
40.00%

20.00%

0.00%
Prom.
1

10

Prueba

Fig. 6.15: Rendimiento del C-means con la base de datos Credit.


6. Disquisiciones experimentales 72

100.00%
80.00%
% 7%
Eficiencia

% % % % 5% % % 5%
60.00% 0.65 0.65 .65% 0.65 0.81 50.6 0.65 0.65 50.6 0.65 50.6
5 5 50 5 5 5 5 5

40.00%

20.00%
0.00%
1

Prom.
10
Prueba

Fig. 6.16: Rendimiento del C-means difuso con la base de datos Credit.

100.00%

80.00%
Eficiencia

60.00% 6% 6% % % % % 1%
.4 .4 37 46 .37 7% 37% .46 7% 7%
41 41 9. 1. 9 9 .3
9. 41 9.3 9.3 40.2
3 4 3 3 3 3 3
40.00%

20.00%

0.00%
Prom.
1

10

Prueba

Fig. 6.17: Rendimiento del C-means difuso usando funciones de disimilaridad.


6. Disquisiciones experimentales 73

Rendimiento del CHM

70

.56

.56

.56
.53

.53

.53
.53

.53
.40

.33

.2 0
.17

.17

.17
.17

.17

.17
.07
61

61

61
61

61

61
61

61
61

61

61
61

61

61
61

61

61
61
60

50

.83
.44

38
38
Porcentaje

40

30

20

10

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Clasificaciones

Fig. 6.18: Rendimiento del CHAT con la base de datos Credit.

80

70

60

50
Porcentaje

40

30

20

10

0
1-NN 3-NN C-means C-means dif. C-means DFD CHAT
Mejor rendimiento 66.79 63.8 50.81 50.65 41.46 61.58
Peor rendimiento 44.47 37.33 50.81 50.65 39.37 38.44
Promedio 58.33 54.88 50.81 50.67 40.21 59.08
Clasificador

Mejor rendimiento Peor rendimiento Promedio

Tabla 6.6: Comparación del rendimiento de los clasificadores (Credit).


6. Disquisiciones experimentales 74

Para esta base de datos el mejor resultado fue para el 1-NN con el 66.79 %, seguido
por el 3-NN. El clasificador CHAT se mantiene muy cerca de estos dos clasificadores
y es muy superior a las variantes de C-means. Pero como se observa en las gráficas, el
rendimiento del CHAT en casi constante para todas las clasificaciones.

6.3.4. Wine recognition data


Esta base de datos se está volviendo clásica en la prueba de clasificadores en el
mundo, que muchos de los investigadores la utilizan para mostrar los rendimientos
de diferentes clasificadores. Los patrones están agrupados en 3 clases y el objetivo es
determinar a cuál de las tres clases pertenece un patrón que representa un tipo de vino.
En esta prueba de comparación no se elaboraron las pruebas para los clasificadores
C-means y C-means difuso, por lo que no se presentarán estos resultados.

Rendimiento 1-KNN
.49

.63
.85

.31
.26

80

.53
.11

.92
75

74
. 21
.96

73
. 62

73
.13
73

. 83

.88

72
.98

72
.93

71
.34

. 08
70
69
69

69

68

68
67
67

70 .50
66

66
62
.49

60
56

50
Porcentaje

40

30

20

10

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ClasificaciÛn

Fig. 6.19: Rendimiento del 1-NN con la base de datos Wine.


6. Disquisiciones experimentales 75

Rendimiento 3_KNN

1
37
93

68

55
24

29
24
8
93
72
80

74.
74.
73.

73.

73.
73.

73.
73.
9
72.
72.

3
68

3
0

1
69.
69.
68.

4
66.
70

9
80
8

8
83
60.

59.
59.
59
57.
60

55.
83
47.
50
Porcentaje

40

30

20

10

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ClasificaciÛn

Fig. 6.20: Rendimiento del 3-NN con la base de datos Wine.

120.00%
% % %
.96 % .96 % 96 6% 8%
100.00% 96 2 .26 96 2.26 7% 51% % 1% 96. 2.2 91.8
9 9 . 8 . 27 . 5 9
87 88 86
. 88
80.00%
Eficiencia

60.00%

40.00%

20.00%

0.00%
Prom.
1

10

Prueba

Fig. 6.21: Rendimiento del C-means difuso usando funciones de disimilaridad.


6. Disquisiciones experimentales 76

Rendimiento del CHM

7
98

.1
.82

.82

97
.48

.48
.48
.48

.48
.48
.48
96

96
97 96

96
96
96

96
96
96
96

.15
.86

95

.37
94

.31

.30
95
.11

.95
94
94

94
94
.48
.48

93
Porcentaje

94
93
93

93

.04
92
92

91

90

89
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Clasificaciones

Fig. 6.22: Rendimiento del CHAT con la base de datos Wine.

110

100

90

80
Porcentaje

70

60

50

40

30

20
1-NN 3-NN C-means DFD CHAT
Mejor rendimiento 75.49 74.81 96.96 97.17
Peor rendimiento 58.49 47.83 86.27 92.04
Promedio 69.55 67.55 91.88 95.31
Clasificador

Mejor rendimiento Peor rendimiento Promedio

Tabla 6.7: Comparación del rendimiento de los clasificadores (Wine).


6. Disquisiciones experimentales 77

En esta última base de datos el clasificador CHAT muestra un rendimiento muy


superior a los KNN y vuelve a superar a la variante del clasificador C-means.
Capítulo 7

Conclusiones y trabajo futuro

En este capítulo se presentan las conclusiones obtenidas de los resultados del pre-
sente trabajo de tesis, una vez desarrolladas las ideas que inicialmente se propusieron a
lo largo de los capítulos anteriores, plasmando de manera puntual el cumplimiento de
los objetivos propuestos. Conjuntamente con las conclusiones, daremos algunas de las
posibles tareas que se podrán desarrollar para el cabal entendimiento de lo que aquí se
establece, dando la pauta a futuros investigadores sobre los puntos no cubiertos, pero
que pudiesen ser abordados de forma inmediata.

7.1. Conclusiones
1. Los experimentos sugieren que las memorias asociativas, combinadas adecuada-
mente, pueden funcionar como clasificadores de patrones, no solamente en casos
raros o aislados, sino en la clasificación de patrones contenidos en bases de datos
públicas, probadas reiteradamente con métodos de clasificación reconocidos. La
eficiencia que presentan los clasificadores asociativos se encuentra a la altura de
los clasificadores más longevos, estudiados y probados que existen actualmente
basados en otros tipos de enfoque.

2. En este trabajo se da a conocer un producto original basado en el paradigma de


memorias asociativas.

3. Con este nuevo producto original, denominado CHAT, Clasificador Híbrido


Asociativo con Traslación, se agrega un nuevo clasificador, dentro del área
del reconocimiento de patrones.

4. Se inicia con este trabajo un nuevo enfoque en la clasificación de patrones: el


enfoque asociativo.

5. Los resultados experimentales dan evidencia de la utilidad práctica del CHAT


en procesos de clasificación.

6. El CHAT, a través de los resultados experimentales, presenta un rendimien-


to semejante al de otros clasificadores y en la mayoría de los casos superior a

78
7. Conclusiones y trabajo futuro 79

los reportados o probados en el presente trabajo. De esta forma, ponemos a la


disposición de la investigación nacional e internacional un producto útil para
problemas de clasificación.
7. Se superan las mayores desventajas de los dos modelos de memorias asociativas
en los que se basa el CHAT; por una parte, la imposibilidad de la Lernmatrix
de aceptar valores reales, y por otra, la fuerte restricción de ortonormalidad de
los patrones de entrada que se debe cumplir en el Linear Associator.
8. La sencillez del algoritmo con el cual se llevan a cabo las dos etapas que confor-
man al CHAT, tiene repercusiones directas en su complejidad computacional y
tiempo de respuesta.
9. Los resultados experimentales sugieren que con un conjunto fundamental relati-
vamente reducido, el CHAT puede generalizar de forma adecuada para llevar a
cabo su tarea de clasificación, y esto nuevamente contribuye a un menor costo
computacional.

7.2. Trabajo futuro


Es esta sección presentaremos ideas tentativas que pueden ser atacadas de manera
directa a fin de contribuir al desarrollo del CHAT y del nuevo enfoque asociativo para
clasificación de patrones. Se explica brevemente cada idea, y se incluyen una o varias
referencias bibliográficas que le permitirán al investigador interesado, introducirse en
el tema.

1. Encontrar la base teórica en la cual se sustenta el buen funcionamiento del


CHAT (Duda, Hart, & Stork, 2001; Gill, Murray & Wright, 1989; Grimaldi,
1998; Grossman, 1996).
2. Hacer un estudio comparativo más amplio del CHAT con otros clasificadores
basados en diferentes enfoques ( Abe, 2001; Šarūnas, 2001; Shalkoff, 1992;).
3. Experimentar el CHAT en combinación con otros clasificadores, ya sea reci-
biendo los resultados de otros o iniciando el proceso de clasificación (Acharya &
et. al., 2003; Kittler & Alkoot, 2003; Kuncheva, 2002; Lu & Tan, 2002; Murua,
2002; Nicola, Masulli & Sperduti, 2002).
4. Realizar trabajos que busquen optimizar el algoritmo propuesto (Bandyopadhyay
& Maulik, 2002; Demeniconi, Peng & Gunopulos, 2002; Ho, Liu, & Liu, 2002;
Huang, & et. al., 2002; Rueda & Oommen, 2002; Wu, Ianekiev & Govindaraju,
2002).
5. Investigar sobre la combinación del CHAT con alguna o algunas memorias aso-
ciativas recientes o pasadas (Díaz-de-León & Yáñez 1999; Ritter, Diaz-de-Leon
& Sussner, 1999; Ritter, Sussner, & Diaz-de-Leon, 1998; Yáñez-Márquez, 2002;
Yáñez-Márquez & Diaz de León, 2001a; Yáñez-Márquez & Diaz de León, 2001b).
7. Conclusiones y trabajo futuro 80

6. Probar exhaustivamente el CHAT con más bases de datos y comparar los resul-
tados con otros clasificadores (Ayaquica-Martínez, 2002; Kuncheva, 2000; Mar-
qués de Sá, 2001).

7. Llevar a cabo experimentos en los que el CHAT acepte patrones con rasgos no
numéricos.
Apéndice A

Simbología

memorias αβ memorias asociativas αβ


α, β operadores originales en que se basan las memorias αβ
M memoria asociativa, memoria asociativa morfológica max
W memoria asociativa morfológica min
mij ij-ésima componente de la memoria asociativa M
B conjunto al que pertenecen las componentes mij
∈ pertenencia de un elemento a un conjunto
x vector columna que corresponde a un patrón de entrada
y vector columna que corresponde a un patrón de salida
A conjunto al que pertenecen las componentes de x y y
(x, y) asociación de un patrón de entrada con uno de salida
(xk , yk ) asociación de la k-ésima pareja de patrones
{(xµ , yµ ) | µ = 1, 2, ..., p} conjunto fundamental
ek
x versión alterada del patrón fundamental xk
xµj j-ésima componente de un vector columna xµ
(xµ )t transpuesto del vector xµ
n dimensión de los patrones de entrada
m dimensión de los patrones de salida
p número de parejas del conjunto fundamental
∆mW ij incremento en mij
V operador máximo
operador mínimo
· producto usual entre vectores o matrices
× producto cruz (entre conjuntos)
δ ij delta de Kronecker (afecta a los índices i y j)
5 producto máximo (entre matrices)
4 producto mínimo (entre matrices)

81
A. Simbología 82

α(x, y) operación binaria α con argumentos x y y


β(x, y) operación binaria β con argumentos x y y
P = [pij ]m×r matriz P de dimensiones m × r y componente ij-ésima pij
∀ cuantificador universal
∃ cuantificador existencial
dα operador αmax
dβ operador βmax
eα operador αmin
eβ operador βmin
£ símbolo que representa a las dos operaciones dα y eα
V memorias αβ tipo V
Λ memorias αβ tipo Λ
⊗ operación para calcular la distancia de Hamming
⊕ operación lógica or exclusiva
Apéndice B

CHAT 1.0, manual de uso

En este apéndice se presenta el procedimiento de operación del programa que


implementa el CHAT. El algoritmo fue desarrollado en el compilador visual C++
Builder 5 de Borland, bajo la plataforma Windows 2000 de Microsoft.
El programa se inicia con la ejecución del archivo ClasificadorH.exe. Al iniciar su
ejecución el programa presenta la ventana de inicio, representada en la figura 1.

Figura 1: Presentación

Dentro de esta ventana sólo se aprecia una opción; este comando despliega dos
opciones, donde la primera configura y opera el CHAT de forma manual, lo cual
quiere decir que se opera con un conjunto fundamental definido previamente y que
deberá ser obtenido de un archivo secuencial. La segunda opción configura y opera
el CHAT para utilizar un conjunto fundamental escogido de forma aleatoria en cada
clasificación. Esto se muestra en la figura 2.

Figura 2.

83
B. CHAT 1.0, manual de uso 84

B.0.1. Forma manual.


Al iniciar el programa en forma manual, la ventana de la figura 3 se muestra en
la pantalla. Existen tres botones: configuración, aprendizaje, y recuperación y clasi-
ficación; con el primer botón se muestra una ventana con la que podemos configurar
el CHAT, mientras que el botón .A prendizaje y recuperación"nos permite utilizar el
conjunto fundamental cargado en la configuración, generar la memoria del CHAT y
probar el rendimiento del CHAT al tratar de recuperar el conjunto fundamental. Con
el botón Çlasificación", podemos someter toda la base de datos al proceso de clasifi-
cación y obtener así mismo el rendimiento obtenido por el CHAT. Los rendimientos
serán mostrados en las barras "Edit1 2"Edit2".
.

Figura 3

Al ingresar a la ventana de configuración debemos indicarle al programa, la ubi-


cación de los archivos secuenciales que contendrán al conjunto fundamental y a la base
de datos a clasificar; además de ingresar la ruta de los archivos, tenemos qué determi-
nar tres parámetros, los cuales tienen una etiqueta que indica el tipo de variable. La
ventana de configuración se muestra en la figura 4.
B. CHAT 1.0, manual de uso 85

Figura 4

Para poder indicar la ruta de los archivos basta con aplicar el botón adjunto a cada
barra, lo que hace que se muestre una ventana donde podemos buscar la dirección
donde se ubican los archivos secuenciales, figura 5.

Figura 5

Una vez ubicada la ruta de cada uno de los archivos secuenciales, ésta es presentada
dentro de las barras, como se muestra en la figura 6.
B. CHAT 1.0, manual de uso 86

Figura 6

Ya obtenida la ruta de los archivos se procede a configurar los parámetros propios


del CHAT. En la figura 6 vemos descritas las diferentes variables a ingresar.

Dependiendo de las características de la base de datos a clasificar los datos pueden


variar. Este programa puede configurar el CHAT para recibir n clases; los patrones
pueden tener cualquier dimensión, y la variable para los patrones en la fase de apren-
dizaje tomará de forma equitativa el número de patrones para cada clase. Las variables
pueden quedar configuradas como se muestra en la figura 7.

Figura 7
B. CHAT 1.0, manual de uso 87

El botón Aplicar carga todos los parámetros en el programa, se procede a cerrar la


ventana mediante el botón así designado y se regresa a la ventana de la figura 3, en la
cual podremos ya aplicar los botones Aprendizaje y recuperación y Clasificación. Para
cambiar el conjunto fundamental o la base de datos, es necesario cerrar la ventana de
la figura 3, lo que nos regresará a la ventana principal, volviendo a iniciar el proceso
de forma manual.

B.0.2. Forma automática.


Esta opción se distingue de la manual porque no necesita que se le proporcione un
conjunto fundamental específico, el programa elige un conjunto de manera aleatoria.
Al ingresar a esta opción se muestra la ventana de configuración y operación, figura 8.

Figura 8

Aquí podemos observar los diferentes parámetros necesarios para la operación del
programa; para poder ingresar la ruta como la mostrada en la figura 8 basta con aplicar
el botón adjunto a la barra, este botón hace mostrar la ventana de búsqueda de ruta,
figura 5. Las demás variables se ingresan de forma manual o a través de los botones
adjuntos a cada barra.

Terminado el proceso de ingreso de variables, al hacer clic en el botón Aplicar,


el programa realiza el número de clasificaciones asignadas con diferentes conjuntos
fundamentales aleatorios.

Si se desea realizar una nueva serie de clasificaciones, se procede a cerrar la ventana,


regresando a la ventana principal e iniciar el proceso nuevamente.
Apéndice C

KNN 1.0, manual de uso

En este apéndice se muestra el uso del programa diseñado para implementar el


clasificador KNN, el cual forma parte de las disquisiciones experimenteles y es útil
para realizar el estudio comparativo. Este clasificador fue implementado en C++ a
través del compilador C++ Builder 5 de Borland, bajo la plataforma Windows 2000
de Microsoft.

El programa se inicia mediante la ejecución del archivo knn.exe; el programa pre-


senta la ventana de inicio, representada en la figura 1.

Figura 1.

Dentro de la ventana de la figura 1 se observan dos botones; el botón Aplicar abre


una ventana con la cual podremos configurar las distintas variables y rutas que usará
el clasificador implementado para clasificar, como lo muestra la figura 2.

88
C. KNN 1.0, manual de uso 89

Figura 2.

La ventana de la figura 2 nos permite ingresar todos los parámetros necesarios para
la clasificación mediante el KNN. Para ingresar la ruta del archivo que contiene la base
de datos, basta con hacer clic en el botón adjunto a la barra Edit1; este botón hará
que se muestre la ventana de búsqueda de ruta, la cual nos permitirá viajar a través
de los diferentes directorios. La ventana se muestra en la figura 3.

Figura 3.

Ya ubicado el archivo, se selecciona y se hace clic en el botón Aceptar ; este botón


coloca la ruta del archivo en la barra Edit1 y nos regresa a la ventana de configuración,
la cual ya muestra la ruta en la barra, figura 4.
C. KNN 1.0, manual de uso 90

Figura 4.

El siguiente paso es colocar todos los parámetros en sus diferentes casillas. El pro-
grama recibe un factor K que puede estar entre 1 y 100, igual rango para el número de
clases, dimensión del patrón, patrones de entrenamiento y clasificaciones. Un ejemplo
se muestra en la figura 5.

Figura 5.

La clasificación se realiza mediante el botón así designado, y el programa procede a


mostrar para este ejemplo la ventana con los resultados de la clasificación; en la figura
6 se muestra la ventana de porcentaje para la configuración anterior al clasificar la
clase 1 de la base de datos Iris plant.
C. KNN 1.0, manual de uso 91

Figura 6

Finalmente, el resultado de la mejor clasificación y el conjunto de patrones prototi-


pos con los cuales se logró este porcentaje, son mostrados en las barras de la ventana
de configuración, figura 7.

Figura 7.
Bibliografía

[1] Abe, S. (2001). Pattern classification, Neuro-Fussy Methods and their Compari-
son, Grat Britain: Springer-Verlag.

[2] Acharya, U. R. & et. al. (2003). Classification of Herat rate data using artificial
neural network and fuzzy equivalence relation, Pattern Recognition, 36 (2003),
61-81.

[3] Ammeraal, L. (1997). STL for C++ programmers, USA: John Wiley & Sons.

[4] Amari, S. (1977). Neural theory of association and concept-formation, Biological


Cybernetics, 26, 175-185.

[5] Anderson, J. A. (1972). A simple neural network generating an interactive mem-


ory, Mathematical Biosciences, 14, 197-220.

[6] Anderson, J. A. & Rosenfeld, E. (Eds.) (1990). Neurocomputing: Fundations of


Research, Cambridge: MIT Press.

[7] Anderson, J. A., Silverstein, J., Ritz, S. & Jones, R. (1977). Distinctive features,
categorical perception, and probability learning: some applications of a neural
model, Psichological Review, 84, 413-451.

[8] Anderson, J. R. & Bower, G. (1977). Memoria Asociativa, México: Limusa.

[9] Ayaquica-Martínez, I. O. (2002). Algoritmo C-means usando funciones de disim-


ilarida, Tesis de maestría, CIC-IPN, México.

[10] Bandyopadhyay, S. & Maulik, U. (2002). Efficient prototy reordering in nearest


neighbor classifation, Pattern Recognition, 35 (2002), 2791-2799.

[11] Daconta, C. M. (1995). C++ pointers andDynamic memory manayement, USA:


John Wiley & Sons.

[12] Dasarathy, B. V. (1991). Nearest Neighbor (NN) Norms: NN pattern Classification


Techniques, USA:IEEE Computer Society Pres

[13] Demeniconi, C., Peng J. & Gunopulos, D. (2002). Locally Adaptive Metric
Nearest-Neighbor Classification, IEEE Transations on Pattern Análisis and Ma-
chine Intellegence, vol. 24, no. 9,1281-1285.

92
BIBLIOGRAFÍA 93

[14] Díaz-de-León, J. L. & Yáñez, C. (1999). Memorias asociativas con respuesta per-
fecta y capacidad infinita, Memoria del TAINA’99, México, D.F., 23-38.

[15] Díaz-de-León, J. L., Yáñez-Márquez, C. & Sánchez-Garfias, F. A. (2003a), Re-


conocimiento de patrones. Enfoque probabilístico-estadístico, IT 83, Serie Verde,
CIC-IPN, México.

[16] Díaz-de-León, J. L., Yáñez-Márquez, C. & Sánchez-Garfias, F. A. (2003b), Clasi-


ficador euclideano de patrones, IT 80, Serie Verde, CIC-IPN, México.

[17] Dietel, H. M. & Dietel, P. J. (1999). Como programar en C++, México: Pearson.

[18] Duda, R. O., Hart, P. E. & Stork, D. G. (2001). Pattern Classification, USA: John
Wiley & Sons.

[19] Eckel, B: (1995). Thinking in C++, USA: Prentice Hall.

[20] Fisher, R. A., (1936). The use of multiple measurements in taxonomic problems,
Anual Eugenics, 7, Part II, 179-188.

[21] Friedman, M. & Kandel, A. (2000). Introduction to Pattern Recognition (Statisti-


cal, Structural, Neural and Fuzzy logic Approaches), Singapore, World Scientific.

[22] Forina, M. et al, (1991), An extendible Package for Data Exploration, Classifi-
cation and Correlation. Institute of Pharmaceutical and Food Analisys and Tech-
nologies, Via Brigata Salerno, 16147 Genoa, Italy.

[23] Gill, P. E., Murray, W. & Wright, M. H. (1989). Numerical Linear Algebra and
Optimization, vol. 1, USA: Adisson Wesley.

[24] González, R. C. & Woods, R. E. (2001). Digital Image Processing,USA: Prentice


Hall.

[25] Grimaldi, R. P. (1998). Matemáticas discreta y combinatoria, México: Addison


Wesley.

[26] Grossman, S. I. (1996). Algebra lineal, México: McGraw-Hill.

[27] Haykin, S. (1999). Neural Networks, A Comprehensive Foundation, USA: Prentice


Hall.

[28] Haralick, R. M., Sternberg, S. R. & Zhuang, X. (1987). Image analysis using
mathematical morphology, IEEE Transactions on Pattern Analysis and Machine
Intelligence, PAMI-9, 4, 532-550.

[29] Hassoun, M. H. (Ed.) (1993). Associative Neural Memories, New York: Oxford
University Press.

[30] Hassoun, M. H. (1995). Fundamentals of Artificial Neural Networks, Cambridge:


MIT Press.
BIBLIOGRAFÍA 94

[31] Ho, S. Y., Liu, C. C. & Liu, S. (2002). Disign of an optimal nearest neighbor
classifier using an intelligent genetic algorithm, Pattern Recognition Letters, 23
(2002), 1495-1503.

[32] Hopfield, J.J. (1982). Neural networks and physical systems with emergent col-
lective computational abilities, Proceedings of the National Academy of Sciences,
79, 2554-2558.

[33] Hopfield, J.J. (1984). Neurons with graded respose have collective computational
properties like those of two-state neurons, Proceedings of the National Academy
of Sciences, 81, 3088-3092.

[34] Huang, Y. S., & et. al. (2002). Prototype optimization for nearest-neighbor clas-
sification, Pattern Recognition, 35 (2002), 1237-1245.

[35] Kittler, J. & Alkoot, F.M. (2003). Sum vesus Vote Fusion in Multiple Classifier
Systems, IEEE Transations on Pattern Análisis and Machine Intellegence, vol.
25, no. 1, 110-115.

[36] Kishan, M., Chilukuri, K. M. & Sanjay, R. (1997). Elements of Artificial Neural
Networks, USA: MIT Press.

[37] Kohonen, T. (1972). Correlation matrix memories, IEEE Transactions on Com-


puters, C-21, 4, 353-359.

[38] Kohonen, T. (1974). An adaptive associative memory principle, IEEE Transac-


tions on Computers, C-24, 4, 444-445.

[39] Kohonen, T. (1987). Content-Addressable Memories, Berlin: Springer-Verlag.

[40] Kohonen, T. (1989). Self-Organization and Associative Memory, Berlin: Springer-


Verlag.

[41] Kohonen, T. (1997). Self-Organizing Maps, Berlin: Springer.

[42] Kohonen, T. & Ruohonen, M. (1973). Representation of associated data by matrix


operators, IEEE Transactions on Computers, C-22, 701-702.

[43] Kuncheva, L. I. (2000). Fuzzy Classifier Design, Germany: Physica-Verlag.

[44] Kuncheva, L. I. (2002). A theoritical Study on Six Classifier Fusion Strategies,


IEEE Transations on Pattern Análisis and Machine Intellegence, vol. 24, no. 2,
281-286.

[45] Lang, S. (1976). Algebra lineal, México: Fondo Educativo Interamericano.

[46] Leithold, L. (1994). Matemáticas previas al cálculo, México: Harla.

[47] Lewis, R. H. & Papadimitriou, C. H. (1998). Element of the theory of compatation,


USA: Prentice-Hall.
BIBLIOGRAFÍA 95

[48] Lu, Y. & Tan, C. L. (2002). Combination of múltiple classifiers using probabilistic
dictionary and its application to pastcode recognition, Pattern Recognition, 35
(2002), 2823-2832.
[49] Marqués de Sá, J. P. (2001). Pattern Recognition, Concepts, Methods and Appli-
cation, Germany: Springer.
[50] McCulloch, W. & Pitts, W. (1943). A logical calculus of the ideas immanent in
nervous activity, Bulletin of Mathematical Biophysics, 5, 115-133.
[51] McEliece, R., Posner, E., Rodemich, E. & Venkatesh, S. (1987). The capacity
of the Hopfield associative memory, IEEE Transactions on Information Theory,
IT-33, 4, 461-482.
[52] Minsky, M. & Papert, S. (1969). Perceptrons, Cambridge: MIT Press.
[53] Murua, A. (2002). Upper Bounds for Error Rates of Linear Combinations of Clas-
sifiers, IEEE Transations on Pattern Análisis and Machine Intellegence, vol. 24,
no. 5, 591-602.
[54] Nakano, K. (1972). Associatron-A model of associative memory, IEEE Transac-
tions on Systems, Man, and Cybernetics, SMC-2, 3, 380-388.
[55] Nicola, G., Masulli, F. & Sperduti, A. (2002). Theorical and experimental análisis
of a two-stage system for classification, IEEE Transations on Pattern Análisis and
Machine Intellegence, vol 24, no. 7, 893-904.
[56] Pal, S. (1999). Neuro - Fuzzy, Pattern Recognition: Methods in Soft Computing,
USA: John Wiley & Sons.
[57] Palm, G., Schwenker, F., Sommer F. T. & Strey, A. (1997). Neural associative
memories, In A. Krikelis & C. C. Weems (Eds.), Associative Processing and Pro-
cessors, (pp. 307-326). Los Alamitos: IEEE Computer Society.
[58] Pandya, A. S. (1996). Pattern recognition with neural networks in C++, Great
Britain: Springer-Verlag.
[59] Rosenblatt, F. (1958). The Perceptron: A probabilistic model for information
storage and organization in the brain, Psychological Review, vol. 65, 386-408.
[60] Pitas, I. (2000). Digital Image Processing Algorithms and Applications, J. Wiley
Sons, Inc.
[61] Ritter, G. X., Sussner, P. & Diaz-de-Leon, J. L. (1998). Morphological associative
memories, IEEE Transactions on Neural Networks, 9, 281-293.
[62] Ritter, G. X., Diaz-de-Leon, J. L. & Sussner, P. (1999). Morphological bidirec-
tional associative memories, Neural Networks, 12, 851-867.
[63] Rueda, L. & Oommen, B. J. (2002). On optimal pairwise linear classifiers for nor-
mal distributions the two-dimensional case, IEEE Transations on Pattern Análisis
and Machine Intellegence, vol. 24, no. 2, 274-273 .
BIBLIOGRAFÍA 96

[64] Sánchez-Garfias, F. A., Díaz-de-León, J. L. & Yáñez, C. (2003), Reconocimiento


automático de patrones. Conceptos básicos, IT 79, Serie Verde, CIC-IPN, México

[65] Santiago-Montero, R., Yáñez-Márquez, C. & Diaz de León, J. L (2002). Clasifi-


cador híbrido de patrones basado en la Lenmarix de Steinbuch y el Linear Asso-
ciator de Anderson-Kohonen, Research on computing science, Reconocimiento de
patrones, avances y perspectivas, 449-460. México: CIC-IPN.

[66] Šarūnas, R. (2001). Statistical and Neural Classifiers, An integrated Approach to


disign, England: MIT Press.

[67] Schürmann, J. (1996). Pattern classification, A unified view of statistical and


neural approaches, USA: John Wiley.
[68] Seed, G. (1996). An Introduction to object-oriented programming in C++, Great
Britain: Springer-Verlag.
[69] Serra, J. (1992). Image Analysis and Mathematical Morphology, Volume 2: The-
oretical Advances, London: Academic Press.

[70] Shalkoff, R. (1992). Pattern recognition, Statical, Structural and Neural Approach-
es, USA: John Wiley.
[71] Sonka, M., Vaclav, H. & Boyle, R. (1999). Imagen Processing, Analysis and Ma-
chine Vision, USA: ITP.
[72] Steinbuch, K. (1961). Die Lernmatrix, Kybernetik, 1, 1, 36-45.
[73] Steinbuch, K. & Frank, H. (1961). Nichtdigitale Lernmatrizen als Perzeptoren,
Kybernetik, 1, 3, 117-124.
[74] Webb, A. (1999). Statical Pattern Recognition, USA: Oxford University Press.

[75] Wu, Y., Ianekiev, K. & Govindaraju, V. (2002). Improved k-nearest neighbor
classification, Pattern Recognition, 35 (2002), 2311-2318.
[76] Yáñez-Márquez, C. & Diaz de León, J. L. (2001a). Lernmatrix de Steinbuch, IT
48, Serie Verde, CIC-IPN, México.
[77] Yáñez-Márquez, C. & Diaz de León, J. L. (2001b). Linear Associator de Anderson-
Kohonen, IT 50, Serie Verde, CIC-IPN, México.
[78] Yáñez-Márquez, C. & Diaz de León, J. L. (2001c). Memoria Asociativa Hopfield,
IT 52, Serie Verde, CIC-IPN, México.
[79] Yáñez-Márquez, C. & Diaz de León, J. L. & Sánchez-Garfias, F. A. (2003), Re-
conocimiento de patrones. Enfoque sintáctico-estructural, IT 84, Serie Verde, CIC-
IPN, México.

[80] Yáñez-Márquez, C. (2002). Memorias Asociativas Basadas en Relaciones de Or-


den y Operadores Binarios, Tesis doctoral, CIC-IPN, México.

También podría gustarte