Está en la página 1de 7

Laboratorio Virtual Para la Enseanza de Tcnicas

de Reconocimiento de Patrones

G. Farias
*
, S. Dormido
*
, F. Esquembre
**
, H. Vargas
*
, S. Dormido-Canto
*


* Departamento de. Informtica y Automtica, UNED. 28040 Madrid
Espaa (e-mail: gfarias@bec.uned.es; sdormido@dia.uned.es; sebas@dia.uned.es).
** Departamento de Matemticas, Universidad de Murcia. 30071 Murcia
Espaa (e-mail:fem@um.es)
Abstract: En el siguiente trabajo se presenta un laboratorio virtual para la enseanza de tcnicas de
reconocimiento de patrones en el mbito de la automtica. La aplicacin tiene como objetivo principal
proporcionar al estudiante un conjunto de herramientas bsicas para la introduccin en el rea de
reconocimiento de patrones que no exigen por parte del usuario de conocimientos previos de
programacin. La aplicacin ha sido desarrollada utilizando la combinacin Easy J ava Simulations-
Matlab, con ello se tiene un laboratorio con gran capacidad de visualizacin e interaccin, y con la
flexibilidad y potencia que le proporciona Matlab como motor de clculo. El uso de las herramientas
mencionadas presenta un gran agregado, y es que el estudiante no requiere tener Matlab instalado en su
ordenador para poder hacer uso del laboratorio virtual

1. INTRODUCCIN
En la actualidad, la integracin de mltiples funciones y la
interactividad de las aplicaciones son aspectos relevantes en
la enseanza de distintas reas de la automtica (Dormido,
2004; Snchez, 2005). En el caso particular del
reconocimiento de patrones, una opcin, que incorpore tales
caractersticas, son las herramientas comerciales, que sin
embargo, por su coste o por la dificultad de incorporar nuevas
funcionalidades, pueden no ser atractivas para su
adquisicin. Otra opcin es el desarrollo de aplicaciones
propias, en ambientes de programacin tcnica como Matlab,
pero que exigen por parte del usuario un importante
conocimiento del lenguaje de programacin.
Debido a lo anterior, y a las experiencias obtenidas por los
autores respecto del tema (Dormido-Canto, et al., 2004;
Farias, et al., 2005a), se ha decidido desarrollar una
aplicacin capaz de incorporar de forma integral diferentes
tcnicas de reconocimiento de patrones, que evite en lo
posible tareas de programacin al usuario, y proporcione
mediante la interactividad, una retroalimentacin respecto de
la aplicacin y utilidad de las funciones implementadas.
En un trabajo anterior (Farias, et al., 2005b) se desarroll una
herramienta para el uso de tcnicas de reconocimiento de
patrones, la cual utilizaba a Matlab como nica plataforma de
programacin tanto para la generacin de la interfaz grfica
como tambin para el desarrollo de algoritmos de
reconocimiento de patrones. Sin embargo, uno de los
inconvenientes de la aplicacin desarrollada era el requisito
de tener instalado Matlab en el ordenador del usuario. Por
este motivo, se ha decidido dar un paso ms, y hacer
disponible la aplicacin a los estudiantes a travs de una
conexin a Internet y el uso de un servidor Matlab remoto.
En la implementacin actual, se ha optado por mantener los
algoritmos de reconocimiento de patrones en Matlab, sin
embargo la interfaz grfica de usuario ha sido desarrollada
utilizando Easy J ava Simulations (Ejs). Esta combinacin
permite desarrollar aplicaciones que se pueden ejecutar de
forma distribuida, es decir, con la interfaz grfica en el
computador del usuario y la lgica del programa
ejecutndose en un servidor externo.
La estructura del presente artculo es la siguiente: La seccin
2 describe el rea de reconocimiento de patrones. En la
seccin 3, se presentan las herramientas utilizadas para la
construccin del laboratorio virtual. En la seccin 4 se
presenta la aplicacin desarrollada y un ejemplo de uso.
Finalmente se exponen las principales conclusiones.
2. RECONOCIMIENTO DE PATRONES
El reconocimiento de patrones puede entenderse como el acto
de realizar una accin basada en la categora de un dato o
seal. El punto central por tanto consiste en clasificar una
seal. Este proceso se apoya en tcnicas de procesamiento de
seales para que la clasificacin sea ms sencilla y robusta.
Existen diversas tcnicas para el procesamiento de seales de
todo tipo. El principal objetivo de estas tcnicas es la
extraccin de caractersticas de las seales procesadas.
Evidentemente, la utilidad de las funciones de procesamiento
de seales estar dada por una eleccin adecuada para el tipo
de seal a analizar. Sin embargo, en muchos casos dicha
eleccin no es trivial, por lo que la experiencia y
conocimiento tanto de la seal como de tcnica a aplicar es
un factor relevante.
En relacin al proceso de clasificacin tambin se pueden
encontrar multitud de tcnicas presentes en la literatura.




Existen dos tipos primarios de clasificacin, a saber,
aprendizaje supervisado y no supervisado. Siendo el primer
tipo el utilizado en el laboratorio virtual desarrollado en el
presente trabajo.
El aprendizaje supervisado es una tcnica que permite
estimar la salida de una funcin a partir de un conjunto de
datos de entrenamiento. La figura 1 presenta un diagrama de
bloques del proceso. En l se observan tres elementos
principales: el maestro, la tcnica de aprendizaje y el ajuste
de parmetros adecuados, siendo ste ltimo generado por
una comparacin entre lo indicado por el maestro y la tcnica
de aprendizaje (Duda, et al., 2001).
Salida
Procesamiento
Maestro
Tcnica de
Aprendizaje
+
-
Error

Entorno
Ajuste Parmetros

Fig. 1: Proceso del aprendizaje supervisado.
La descripcin del esquema se basa en que el maestro (o
experto) determina con certeza la clase de una seal
proveniente del entorno. Simultneamente una tcnica de
aprendizaje realiza una prediccin de la misma seal. La
prediccin es comparada con el valor indicado por el
maestro, ajustndose los parmetros de la tcnica de
aprendizaje si existe error. Evidentemente el aprendizaje
finalizar, si el error se ha llegado a un mnimo satisfactorio.
Una vez que el entrenamiento ha sido realizado es necesario
evaluar la tcnica de aprendizaje, para ello se introducirn
seales distintas a las utilizadas en el entrenamiento,
denominadas seales de prueba o test. La evaluacin
concluir con el clculo de la tasa de xito de clasificacin
definida como el cociente entre el nmero de aciertos y el
nmero total de seales.
En el laboratorio virtual desarrollado se han implementado
tcnicas tanto para el procesamiento de seales como para el
aprendizaje supervisado. En el caso del procesamiento de
seales se pueden encontrar desde funciones para el anlisis
estadstico hasta otras ms avanzadas como la transformada
wavelet discreta (Mallat, 2001). En el caso del aprendizaje
supervisado, se han implementado slo las redes neuronales
multicapa (Hilera, Martnez, 1995) y las mquinas de
vectores soporte (Vapnik, 2000), y aunque existe un gran
nmero de tcnicas, el uso generalizado de las seleccionadas,
proporciona un amplio campo de aplicacin.
3. LABORATORIOS VIRTUALES
A continuacin se presentarn algunas definiciones relativas
a los laboratorios utilizados en la enseanza, para
posteriormente enfocarse en las herramientas utilizadas en la
creacin del laboratorio virtual.

3.1 Tipos de Laboratorios en la Enseanza.
La tabla 1 presenta una taxonoma de los laboratorios
orientados a la enseanza. En la tabla 1 las columnas
proporcionan el tipo de recurso pedaggico utilizado y las
filas la forma de acceder al recurso.
Tabla 1: Taxonoma de laboratorios
Real Simulado
Local Laboratorio
Tradicional
Laboratorio Virtual
Mono Usuario
Remoto Laboratorio
Remoto
Laboratorio Virtual
Multi-Usuario

Un recurso real y con acceso local representa a un laboratorio
tradicional, cuando el laboratorio real es accedido a travs de
una red, entonces se dice que el laboratorio es remoto.
En el caso de los laboratorios simulados, se dicen que son
mono usuario si su acceso es local, es decir, a travs de un
ordenador por un nico usuario. Mientras que si el acceso a la
simulacin es remoto, entonces el laboratorio virtual es multi-
usuario puesto que puede ser utilizado por varios estudiantes
al mismo tiempo. Independientemente del tipo de recurso, si
el acceso es remoto, se dicen que los laboratorios (virtual y
remoto) son basados en Web.
3.2 Easy Java Simulations (Ejs).
Easy J ava Simulations (Ejs) es una herramienta de software
gratuita diseada para la creacin de simulaciones
interactivas en J ava (Esquembre). El usuario al que est
dirigida Ejs son estudiantes, profesores e investigadores de
ciencias e ingeniera, que poseen un conocimiento bsico de
programacin de computadores, pero que no disponen de una
gran cantidad de tiempo para crear una simulacin grfica
con un elevado grado de interactividad.

Fig. 2. Interfaz de usuario de Ejs para la creacin de la vista
de una simulacin.




Las simulaciones en Ejs son estructuradas en dos partes, el
Modelo y la Vista. En el modelo se describe el
comportamiento del sistema mediante variables y cdigo Java
o ecuaciones diferenciales ordinarias. Mientras que la vista
provee el aspecto grfico o visual de la simulacin. La
interfaz de usuario de Ejs se presenta en la figura 2.
Ejs se puede utilizar de forma independiente para crear
simulaciones interactivas, ya sea como aplicacin o como
applet, sin embargo, tambin es posible utilizar Ejs en
conjunto con Matlab/Simulink.
3.3 Conexin entre Ejs y Matlab.
Ejs posee la capacidad de conexin con aplicaciones externa,
como Scilab, Dymola, Sysquake y Matlab/Simulink. Esta
ltima aplicacin es bastante interesante debido a la
popularidad que presenta esta herramienta entre la comunidad
de automtica. Mediante esta conexin se pueden desarrollar
laboratorios virtuales con un alto grado de interactividad
utilizando modelos Simulink y Matlab. Para la comunicacin
entre Ejs y Matlab se utiliza la librera J Matlink (Mller,
2005), la cual a su vez utiliza la Interfaz Nativa de J ava y la
librera Engine en lenguaje C proporcionada por Matlab.
En general el uso de la conexin entre Ejs y modelos
Simulink esta orientada a la creacin de laboratorios virtuales
de sistemas dinmicos. En el caso especfico de la conexin
entre Ejs y Matlab el papel de Matlab esta orientado
principalmente a proporcionar capacidades de cmputo, esto
es como motor de clculo.
El procedimiento para la conexin entre Ejs y Matlab es
sencillo y se resume en los siguientes cuatro pasos.
1. Designar a Matlab como aplicacin externa.
2. Crear y conectar variables Ejs con Matlab.
3. Controlar la ejecucin de las rutinas en Matlab.
4. Definir la vista y la interactividad con el usuario.
Para explicar con mayor detalle la forma de conectar Ejs y
Matlab se utilizar un sencillo ejemplo. En este caso el
objetivo es proporcionar un laboratorio virtual a modo de
osciloscopio, en donde el usuario ingrese una funcin que
ser evaluada en Matlab y cuyo resultado ser presentado en
un eje coordenado, tal como muestra la figura 3.
A continuacin se presentarn los pasos previamente
comentados para conectar Ejs y Matlab necesarios para el de
laboratorio virtual de ejemplo.
Pasos 1 y 2: En la figura 4 se observa, en la seccin Modelo
(subseccin Variables) como se declara el uso de Matlab en
Ejs. Ntese que en el cuadro de texto External File se ha
indicado en este caso el uso de Matlab como aplicacin
externa. Mientras que las variables time y value de Ejs
estn conectadas a las variables t y x de Matlab.
Evidentemente, tales variables sern las que se utilizarn para
realizar la grfica de la figura 3. Es necesario mencionar, que
la conexin con las variables de Matlab es opcional, ya que
existen mtodos en Ejs que permiten directamente acceder al
espacio de trabajo de Matlab.

Fig. 3. Interfaz de usuario de un sencillo laboratorio virtual
que utiliza una conexin local de Matlab.
Paso 3: Para el control de la ejecucin de las rutinas en
Matlab, Ejs proporciona diferentes mtodos, destacndose
entre ellos, el mtodo _external.step(); el cual permite la
ejecucin de una rutina o comando previamente especificado.
Este mtodo es ubicado en este caso, aunque tambin
generalmente, en la subseccin Evolucin. Respecto al
comando que se ejecuta, este ha sido ubicado en la
subseccin Inicializacin mediante la siguiente instruccin:
_external.setCommand(commandM);
Obsrvese que la instruccin anterior esta indicando que el
comando a ejecutar viene dado por la variable de tipo String
commandM que previamente ha sido definida en la tabla de
variables de la figura 4. En este ejemplo la variable tiene por
valor inicial la siguiente cadena: t=t+0.1, x=sin(t)
Paso 4: El comando inicial puede ser modificado por el
usuario utilizando el cuadro de texto Funcin que se observa
en la figura 3. Para agregar esta interaccin, se asocia al
cuadro de texto correspondiente la variable commandM y
la accin _external.setCommand(commandM); que se
ejecutar ante un cambio del valor por parte del usuario. De
esta forma, una vez que el usuario modifique el valor de la
funcin, el laboratorio virtual presentar la grfica
correspondiente. Esta interaccin se observa en las
propiedades del cuadro de texto en la figura 5.
Se debe mencionar adems que existen un grupo de mtodos
en Ejs que permiten interactuar a ms bajo nivel con
Matlab, entre otros estn los siguientes.
_external.eval(String) : Mtodo que evala un String en el
espacio de trabajo de Matlab.
_external.getDouble(VariableMatlab): Mtodo que
devuelve el valor de una variable existente en Matlab.
_external.setValue(VariableMatlab,Value): Mtodo que
modifica el valor de una variable existente en Matlab.
Ver Dormido, et al., (2005) y Farias, et al., (2006) para una
descripcin ms detallada del procedimiento de la conexin
entre Ejs y Matlab.





Fig. 4. Definicin de la aplicacin externa y de las variables
utilizadas en Ejs.

Fig. 5. Propiedades del cuadro de texto utilizado para ingresar
la funcin a evaluar en Matlab.
3.4 Java Internet Matlab (Jim).
Para extender las capacidades de conexin de Ejs y
Matlab/Simulink, se desarroll el servidor J ava Internet
Matlab (J im), el cual es un paquete software que permite
conectar dos ordenadores, uno de ellos con una licencia de
Matlab, y el otro ejecutando una aplicacin de Ejs.
Es importante destacar que J im es una aplicacin escrita en
J ava que se conecta con una versin de Matlab estndar, y no
con la utilizacin de la toolbox Matlab Web-Server. Esta
opcin fue principalmente tomada debido a las necesidades
de interaccin requeridas con los laboratorios diseados en
Ejs.
La comunicacin entre J im y Ejs es del tipo cliente/servidor y
se resuelve mediante la utilizacin de sockets TCP/IP. El lado
del servidor est soportado por J im mientras que Ejs
corresponde al lado del cliente. Al igual que Ejs, la librera
J Matlink se utiliza para la conexin entre Matlab y J im. La
figura 6 presenta un esquema del servidor.

Fig. 6. Esquema del servidor Jim que conecta Matlab con Ejs.
A continuacin se describe brevemente el servidor J im. Una
descripcin ms detallada del funcionamiento de J im puede
encontrarse en Farias, et al. (2006).
Interfaz de Usuario de Jim. La interfaz de usuario de J im se
presenta en la figura 7. En la aplicacin se proporcionan las
siguientes opciones para la comunicacin entre J im, Ejs y
Simulink (los valores por defecto estn entre parntesis):
- Puerto de servicio (2005): Puerto en el que se establecer
la comunicacin entre Ejs y J im.
- Tamao del buffer de entrada (1024): Lmite mximo del
buffer de entrada disponible para el enlace TCP/IP.
- Tamao del buffer de salida (1024): Lmite mximo del
buffer de salida disponible para el enlace TCP/IP.
- Directorio de Trabajo (\JimWD): Carpeta donde se
alojarn los modelos Simulink del usuario remoto.
- Mximo nmero de sesiones (5): Lmite superior de
sesiones de Matlab a ejecutar en el servidor.
- Permitir funciones S.O (no chequeado): Se habilita al
usuario remoto a usar funciones de Matlab (como el
operador !) que afectan al sistema (slo en Matlab 7.0).
- Permitir archivos externos (chequeado): Permite al
usuario remoto utilizar un modelo de Simulink propio.
- Archivo de bitcora (chequeado con opcin simple): Si
esta habilitado se guardar en un archivo informacin de
las acciones realizadas por los usuarios externos.
Protocolos de Comunicacin de Jim. Existen dos tipos de
comunicacin entre Ejs y J im: sncrono y asncrono. El
enlace sncrono es bastante similar a una conexin local entre
Ejs y Matlab, esto es, la ejecucin de cualquier comando es
realizada de forma sincronizada entre ambas aplicaciones.
Con ello se logra un control de la evolucin de una
simulacin por Ejs. Una de las ventajas de este tipo de
conexin es que si se quiere transformar un laboratorio
virtual local a uno remoto, los pasos a dar son muy sencillos.
Por otra parte, est el enlace asncrono, el cual posibilita una
ejecucin con cierto grado independencia entre Ejs y Matlab,
permitiendo con ello reducir el impacto de los retardos
inherentes a las redes en la simulacin de modelos dinmicos.
El uso de un tipo de comunicacin depende de las
necesidades del laboratorio virtual que se este desarrollando.
En general el uso de modelos Simulink requiere una conexin
asncrona, mientras que la utilizacin de Matlab como motor
de clculo puede utilizar simplemente una conexin sncrona.

Fig. 7. Interfaz de usuario de J im. Seccin de opciones.




3.5 Conexin Remota entre Ejs y Matlab .
En la figura 8 se presenta el esquema de conexin entre Ejs,
J im y Matlab, obsrvese que el clculo se realiza en el lado
del servidor, mientras que el lado del cliente se tiene una
aplicacin creado por Ejs.

Fig. 8. Conexin entre Ejs, J im y Matlab
Se ha mencionado anteriormente los tipos de conexiones
proporcionados por J im. En el caso del tipo sncrono el nico
cambio requerido para transformar un laboratorio virtual en
remoto es indicar la direccin IP y el puerto del servidor J im.
Dicha modificacin es introducida en el campo de texto
external file de la tabla de variables. En el caso del ejemplo
presentado en la seccin 3.3, tal modificacin puede
observarse en la figura 9.

Fig. 9. Establecimiento de un enlace remoto sncrono.
Una vez especificado el enlace remoto sncrono, no es
necesario realizar ninguna modificacin ms a la simulacin.
Por lo que el laboratorio virtual est listo para ser utilizado a
travs de Internet.
4. LABORATORIO VIRTUAL DESARROLLADO
El laboratorio virtual consiste en una interfaz grfica de
usuario desarrollada utilizando Ejs y un conjunto de
funciones (archivos .m) que se ejecutarn de forma remota en
Matlab. Las funciones sirven principalmente para realizar las
llamadas a las funciones propias de Matlab, e implementar
las mquinas de vectores soporte.
A continuacin se presentar de forma resumida la interfaz
grfica del laboratorio virtual, as como tambin una gua
breve del uso de la herramienta.
Interfaz Grfica de Usuario.
La interfaz de la aplicacin desarrollada se presenta en la
figura 10.

Fig. 10: Interfaz grfica de usuario del laboratorio virtual
implementado.
Es posible observar que la interfaz de usuario est dividida en
las siguientes secciones: Grfica Seal, Lista de Datos,
Generacin de Atributos, Clasificacin y Menu Archivo.
A continuacin se describen brevemente cada una de las
secciones presentes en la interfaz grfica. Para mayores
detalles ver Farias, et al. (2005b).
Grfica de la Seal: Esta seccin permite disponer en forma
visual las seales utilizadas. La seal es mostrada puede
seleccionarse del cuadro de texto combinado de la seccin
Lista de Datos.
Lista de Datos: En esta seccin se asocian las seales a una
clase determinada. Para ello es necesario introducir la clase
en el cuadro de texto y luego presionar el botn OK.
Generacin de Atributos: Esta seccin permite el
establecimiento de las acciones de procesamiento de seales
que generarn los atributos a utilizar en el entrenamiento y la
evaluacin. Las seales procesadas estn formadas por la
concatenacin de conjuntos de atributos denominadas CAn,
donde n es el ndice del conjunto. Un conjunto de atributos se
genera a partir de la seal y de las funciones de
procesamiento aplicadas de forma secuencial.
Clasificacin: En esta seccin se debe indicar la tcnica de
clasificacin requerida. Es necesario introducir los
parmetros correspondientes a la clasificacin antes de
comenzar el entrenamiento. Para la Red Neuronal se pueden
definir el nmero de capas ocultas, el nmero de neuronas
por capa, la funcin de activacin as como los algoritmos de
entrenamiento. Para la Mquina de Vectores Soporte se debe
indicar el kernel o funcin ncleo y los parmetros
correspondientes. En esta seccin adems se encuentran tres
botones que permiten: generar en forma aleatoria los
conjuntos de entrenamiento y evaluacin; entrenar y evaluar
la Red Neuronal o la Mquina de Vectores Soporte.
Menu Archivo: Aqu el usuario puede especificar el conjunto
de seales que desea utilizar, por el momento el usuario
puede trabajar con puntos en el plano o con imgenes.




Experimentacin.
Los pasos a seguir para el desarrollo de experiencias en la
aplicacin son expuestas en la figura 11. Si bien el
procedimiento mostrado est definido mediante un conjunto
de acciones secuenciales, no necesariamente se debe seguir el
orden establecido, ya que es posible asignar nuevas clases sin
tener que volver a establecer los parmetros de clasificacin.

Fig. 11: Procedimiento de experimentacin.
A continuacin se describirn sencillos ejemplos con el fin de
detallar las distintas opciones disponibles en la aplicacin
desarrollada. El primer caso consiste en un conjunto de
puntos distribuidos en el plano, la ubicacin de stos se
establece de modo que la separacin lineal no sea posible. El
segundo presenta un conjunto de imgenes de cinco clases
que deben ser procesadas de forma adecuada para reducir la
dimensionalidad que poseen (~220.000 pxeles).
Ejemplo de Puntos en el Plano. El objetivo principal de este
ejemplo es mostrar las opciones disponibles en la aplicacin.
Por lo que se describen de forma resumida los pasos
establecidos en el procedimiento de experimentacin.

Fig. 12: Grfica de puntos distribuidos en un plano.
- Cargar Seales y Asignar Clases: Para este ejemplo cada
registro cuenta con dos atributos. Los datos son cargados
desde el Menu Archivo. Este tipo de datos se representan
en un plano como se aprecia en la figura 12. Obsrvese
que las clases de los puntos se representan mediante el
nmero correspondiente a la clase.
- Definir Procesamiento y Obtener Atributos: Como el
nmero de atributos es de slo dos elementos, en esta
ocasin no se aplicar ningn procesamiento sobre la
seal, as slo hay un conjunto de atributos, y est
formado por los datos de la propia seal como se aprecia
en la seccin Generacin de Atributos de la figura 13.
- Establecer Clasificacin y Generar Conjuntos de
Entrenamiento y Test: En la figura 13 se observa que la
tcnica de clasificacin seleccionada es la Red Neuronal.
La estructura de la red slo consiste en la capa de salida,
establecida por defecto con cuatro neuronas (nmero de
clases) y la funcin de activacin Logsig. El error
exigido es de 0.01 y el nmero de pocas es de 5000. La
funcin de entrenamiento es Traingdm. Los conjuntos de
entrenamiento y test se obtienen al presionar el botn
Genera. Las seales agrupadas de esta forma se observan
en las listas de entrenamiento y test de la figura 13.
- Entrenar, Evaluar y Modificar Clasificacin: Al
presionar el botn Train se realiza el entrenamiento de la
red neuronal. Una vez finalizado el entrenamiento se
realiza la evaluacin presionando el botn Test. La tasa
de xito alcanzada se observa en la barra de estado
inferior de la figura 13. En este caso se obtuvo un 75%
debido a que las seales centro no han sido
correctamente clasificadas, lo que era de esperar, debido
a que con una red neuronal de una sola capa, no es
posible resolver un problema no separable linealmente.
As entonces, es necesario modificar los parmetros de
clasificacin de la Red Neuronal. Si se incorpora una
nueva capa a la estructura anterior, con un nmero de
neuronas igual a dos, y una funcin de activacin Tansig,
es posible obtener una tasa de xito del 100% al realizar
la clasificacin de los puntos.

Fig. 13: Secciones de Clasificacin y Generacin de
Atributos para el ejemplo de los puntos en el plano.
Ejemplo con Imgenes. Este ejemplo muestra que tambin es
posible utilizar la herramienta para analizar conjuntos de
datos ms complejos como imgenes. A continuacin, se
describen de forma resumida los pasos establecidos en el
procedimiento general descrito anteriormente.
- Cargar Seales: Las imgenes son cargadas desde el
Menu Archivo. Para este tipo de datos el laboratorio
representa los registros como imgenes en la seccin
Grfica de Seal, ver figura 14. Las dimensiones de las
imgenes son de 576x385 pxeles.
- Asignar Clases: Las imgenes se pueden agrupar en 5
clases. En la figura 14 se observa una imagen de clase 2.
Todas las seales, salvo las de clase 1, corresponden a
imgenes con al menos cuatro caractersticas
importantes: una componente vertical a la izquierda, una
discontinuidad o vaco al centro, otra componente
vertical a la derecha, y una lnea fina a la derecha. Las
diferencias entre un registro y otro, corresponden a la
intensidad de los componentes mencionados, elevada en




el caso de la clase 4, ms tenue en el caso de la clase 3
(aunque con la lnea fina muy marcada), con las
intensidades de las componentes concentradas
inferiormente en la clase 2, y casi nulas para la clase 5.
- Definir Procesamiento y Obtener Atributos: Debido a
que el nmero de atributos es de 221.760 pxeles, es
necesario reducir la dimensionalidad antes de aplicar
alguna tcnica de clasificacin. Para esto, puede utilizar
la funcin de procesamiento transformada wavelet. Al
procesar la imagen con una wavelet de tipo haar de nivel
4 se obtuvieron finalmente 900 atributos.

Fig. 14: Seccin de Grfica de Seal y Lista de Datos del
laboratorio virtual.

Fig. 15: Vista de las secciones de Clasificacin y Generacin
de Atributos para el ejemplo de las imgenes.
Establecer Clasificacin y Generar Conjuntos de
Entrenamiento y Test: Para clasificar, se seleccion la
Mquina de Vectores Soporte, cuyo Kernel utilizado es
Linear (lineal), ver figura 15. Los conjuntos de entrenamiento
y test se obtienen al presionar el botn Generar. Las seales
agrupadas de esta forma se observan en las listas de
entrenamiento y test de la figura 15.
Entrenar y Evaluar: El entrenamiento de la mquina de
vectores soporte se realiza al presionar el botn Entrenar.
Debido a que el entrenamiento se realiza con la mquina de
vectores soporte, el tiempo para entrenar es mucho menor al
obtenido si se hubiera empleado una red neuronal. En la
evaluacin se obtuvo una tasa de xito del 83,3%
5. CONCLUSIONES
El trabajo expuesto tiene por objetivo general mostrar el uso
de herramientas, desarrolladas por los autores, para la
construccin de laboratorios virtuales que aprovechan las
capacidades de stas en trminos de visualizacin,
interaccin y conexin. En particular el laboratorio virtual
presentado pretende abordar principalmente dos aspectos: el
primero proporcionar una herramienta que incorpore en
forma integral las funciones de reconocimiento de patrones, y
en segundo lugar hacer disponible la aplicacin a usuarios a
travs de una conexin a Internet.
El uso de la aplicacin se puede destinar a la enseanza de
tcnicas de reconocimiento de patrones en cursos
introductorios al tema. Aunque en el futuro se pueden
incorporar nuevas funcionalidades que proporcionen una
mayor flexibilidad tanto en las seales a utilizar, como en las
funciones de procesamiento generadas por el propio usuario.
AGRADECIMIENTOS
Los autores agradecen al Ministerio de Investigacin por
concesin del proyecto DPI2004-01804.
REFERENCIAS
Dormido-Canto S, G. Faras, R. Dormido, J . Vega, J .
Snchez, M. Santos (2004), TJ -II wave forms analysis
with wavelets and support vector machines, Review of
Scientific Instruments 75, 10, pp. 4254-4257.
Dormido S. (2004), Control learning: Present and future,
IFAC Annual Control Reviews, vol. 28, pp 115-136.
Dormido S, F. Esquembre, G. Farias, J . Snchez (2005)
Adding interactivity to existing Simulink models using
Easy J ava Simulations, 44th IEEE Conference on
Decision and Control and European Control Conference
ECC (2005). Seville, Spain.
Duda R, P. Hort, D. Stork (2001), Pattern Classification, 2
nd

Edition, A Wiley-Interscience Publication.
Esquembre F., Easy Java Simulations Home Page,
http://fem.um.es/Ejs
Farias G, R. Dormido, M. Santos, N. Duro, (2005a), Image
Classifier for the TJ -II Thomson Scattering Diagnostic:
Evaluation with a Feed Forward Neural Network.
Lecture Notes in Computes Science. Springer-Verlag,
3562, pp. 604-612.
Farias G, M. Santos, S. Dormido-Canto (2005b). Desarrollo
de una aplicacin para la integracin de tcnicas de
reconocimiento de patrones, XXVI Jornadas de
Automtica, Alicante-Elche (Spain).
Farias G, F. Esquembre, J . Sanchez, S. Dormido, H. Vargas,
S. Dormido-Canto, R. Dormido, N. Duro, M. Canto
(2006), Desarrollo de Laboratorios Virtuales,
Interactivos y Remotos Utilizando Easy J ava Simulations
y Modelos Simulink, 12
th
Latin-American Congress on
Automatic Control, Salvador de Baha (Brazil).
Hilera J , V. Martnez (1995), Redes Neuronales Artificiales.
Fundamentos, modelos y aplicaciones. Ed. Rama.
Mallat S, (2001), A Wavelet Tour of Signal Processing. 2
Edition, Academic Press.
Mller S. (2005) J Matlink Home Page,
http://jmatlink.sourceforge.net/
Snchez J ., S. Dormido, F. Esquembre (2005) The learning of
control concepts using interactive tools. Computer
Applications in Engineering Education, vol. 13, N1, pp
84-98.
Vapnik V, (2000) The Nature of Statistical Learning Theory,
2 Edition, Springer.

También podría gustarte