Aproximaciones al Reconocimiento de Patrones

Anuncio
R E C O N O C I M I E N T O D E P AT R O N E S
ANTECEDENTES
La capacidad de reconocer patrones ha sido considerada siempre como una de las
características fundamentales de la inteligencia humana, en ese sentido, ha sido
también una de las áreas de estudio de prácticamente todas las disciplinas que
conforman la Ciencia Cognitiva. Así, en su papel más concreto y menos ambicioso en
sus planteamientos que la Inteligencia Artificial, el Reconocimiento de Patrones se ha
establecido como una disciplina relativamente independiente de aquélla, buscando
siempre en otras áreas de conocimiento los modelos, explicaciones y herramientas que
le permitan cumplir su cometido.
Modernamente podemos distinguir varias corrientes o "enfoques" en el reconocimiento
de patrones: el enfoque Estadístico, el Numérico, el Sintáctico,
el LógicoCombinatorio, el de Redes Neuronales, etc.
Todos ellos abordan la misma
problemática: el Problema Universal de la Clasificación, desde diferentes posturas y
con diferentes herramientas. A través de una revisión del estado del arte en sistemas
de software relacionados con la disciplina de reconocimiento de patrones, encontramos
gran cantidad de sistemas de reconocimiento especializados (procesamiento de
imágenes, reconocimiento de voz, reconocimiento de caracteres, identificadores
personales de seguridad, etc.), muchos de ellos con aplicaciones industriales o
comerciales. Muy pocos, sin embargo, están orientados hacia la aplicación académica
y prácticamente no existe ningún sistema de carácter general.
DEFINICIÓN
Reconocimiento de Patrones es una disciplina que estudia la asignación automática de
objetos a clases. Estas clases pueden estar predeterminadas o no. El número de
aplicaciones prácticas es muy extenso: lectura automática de caracteres manuscritos e
impresos; reconocimiento de voz, caras, huellas digitales, firmas; identificación de
partículas elementales; detección de fraude; segmentación de mercados, etc.
Reconocimiento de Patrones es una área de la tecnología conocido como Aprendizaje
de Maquinas (Machine Learning) o Aprendizaje Automático. El único propósito de este
método es el clasificar un grupo de patrones conocido como conjunto de pruebas en
dos o mas clases de categorías. Esto es logrado al calcular las categorías del conjunto
en prueba comparándolo con un conjunto de entrenamiento (previo) o training set. Un
clasificador dado mide la distancia entre varios puntos dados (compara), para saber
cuales puntos son mas cercanos a la meta en un modelo parametizado
Un esquema modular de un sistema de RP se muestra en la siguiente figura.
Etapas de un sistema de reconocimiento de patrones.
Este esquema no debe verse como los pasos a seguir en la construcción de un sistema
de reconocimiento de patrones, sino más bien desde un punto de vista funcional: la
entrada es un patrón natural y el resultado es una etiqueta. Además, no debe
entenderse que todos los sistemas de reconocimiento de patrones deben incorporar
todas estas unidades, ni siquiera que éstas deban estar tan claramente separadas. Se
entiende que los componentes ya están diseñados y operativos
APROXIMACIONES AL RECONOCIMIENTO DE PATRONES
En la literatura pueden encontrarse diferentes aproximaciones a ese problema,
motivadas por la diversidad de tareas de reconocimiento que pueden abordarse.
Aproximación estadística. La aproximación más simple (y no por ello la menos
eficiente) consiste en representar cada patrón mediante un vector de números,
resultantes del muestreo y cuantificación (o binarización) de las señales externas
(figura) y cada clase por uno o varios patrones prototipo. Dado que existe variabilidad
en las medidas registradas, cada componente del vector es una variable aleatoria y
cada uno de sus valores es una realización de esa variable aleatoria.
Patrones de naturaleza temporal y espacial
Con esta aproximación un patrón no es más que un punto en el espacio de
representación de los patrones, que es un espacio de dimensionalidad determinada por
el número de variables consideradas. Esta aproximación concluye que es razonable
que los patrones pertenecientes a una misma clase estén cercanos en el espacio de
representación mientras que aquellos que pertenezcan a clases diferentes deberían
estar en diferentes regiones del espacio de representación.
El estudio del conjunto apropiado de variables, la variabilidad de los patrones de una
clase, las medidas de similaridad entre patrones y entre patrones y clases constituye el
reconocimiento estadístico de patrones.
Aproximación Sintáctica
La aproximación estadística no considera el contexto, esto es, la relación entre
diferentes patrones: en ocasiones, patrones complejos pueden descomponerse
recursivamente en patrones más simples hasta llegar a componentes básicos (de forma
similar a como un texto se descompone en párrafos, frases, palabras y finalmente en
letras). Esta aproximación resulta muy adecuada para reconocimiento de voz, por
ejemplo. Con esta aproximación, un patrón se describe en términos de sus elementos
básicos (elementos terminales) y unas reglas sintácticas (gramática) que especifican
cómo se pueden generar patrones válidos de una determinada clase. El problema se
reduce ahora a responder si un determinado patrón pertenece al lenguaje generado por
una gramática. Estas técnicas se conocen como reconocimiento sintáctico de
patrones.
APRENDIZAJE Y ADAPTACIÓN
Casi todos los sistemas de reconocimiento de patrones son sistemas complejos y en
ellos es posible no tener alguna suposición sobre lo que sería una meta al diseñar el
sistema de clasificación. Por lo tanto y en un amplio sentido, cualquier método que
incorpora información sobre un ejemplo o conjunto entrenamiento en el diseño del
clasificador, necesariamente emplea algún tipo de aprendizaje, razón básica para
considerar nociones sobre aprendizaje. Además al construir clasificadores es
importante imponer algún tipo de generalidad para realizar el modelo, forma de modelo
o forma de un clasificador y por lo cuál es necesario utilizar patrones de entrenamiento
para resolver las incógnitas en los patrones del modelo. Este aprendizaje se refiere a
algún tipo de algoritmo que ayude a reducir la cantidad de errores en la información
para el entrenamiento. Existen varios tipos de aprendizaje:
Aprendizaje Supervisado
Un aprendizaje supervisado requiere disponer de un conjunto de patrones de los cuales
se conoce su clase cierta. A este conjunto se le denomina conjunto de entrenamiento.
Este tipo de entrenamiento se denomina entrenamiento supervisado y los
clasificadores así obtenidos clasificadores supervisados.
Disponer de un conjunto de entrenamiento supone que alguien se ha preocupado de
etiquetar los patrones de ese conjunto. Esta tarea la suele realizar un experto en el
campo en el que se va a realizar el reconocimiento y generalmente viene impuesto.
Aprendizaje No Supervisado.
El aprendizaje no supervisado se realiza a partir de un conjunto de patrones del que no
se conoce su clase cierta. En ocasiones, ni siquiera se conoce el número de clases.
Básicamente, se traduce en encontrar agrupamientos. El objetivo suele ser el de
verificar la validez del conjunto de clases informacionales para una clasificación
supervisada. Las técnicas utilizadas suelen denominarse métodos de agrupamiento o
clustering.
Aprendizaje Reforzado
Este tipo de aprendizaje también es conocido como aprendizaje con la asistencia de un
critico o editor. Esto quiere decir que aunque no existe una categoría sugerida, en
cambio la categoría dada en un nuevo grupo de sugerencias puede interpretarse como
correcta o incorrecta aunque específicamente no se señale ni el porqué ni el como de
otro.
Ejemplo: descripción de un proyecto de reconocimiento de patrones para un
controlador en el Modelo Fisco de Violín
Serafin, Smith y Thornburg proponen en [Serafin, Thornburg 01] un sistema de
reconocimiento de patrones para invertir el Modelo Físico de la cuerda pulsado por un
arco en el violín. El objetivo en este caso es estimar u optimizar los parámetros para el
sonido óptimo del modelo de violín. En este ejemplo invertir el modelo físico significa
recobrar los valores exactos en los parámetros de entrada de la forma de onda acústica
en un violín tradicional. En este caso se trata de buscar una combinación óptima para
obtener el Movimiento de Helmholtz.
Por lo tanto en el paso de segmentación se utiliza análisis de espectro con la
transformada de Fourier del Movimiento a que se quiere llegar más predicción lineal
para retener las características del mismo en una envolvente espectral retenida en el
dominio del tiempo. En el clasificador se utiliza un Gaussian para obtener la
probabilidad dado que que quiero llegar al Movimiento Helmholtz óptimo indicado por el
segmentador. e que esté equivocada.
PATRONES Y RECONOCIMIENTO DE PATRONES
Mucha de la información que se maneja en la vida real se presenta en la forma de
patrones complejos: caras, textos escritos, enfermedades, música, flores, piezas
industriales, etc.,
La psicología no ha encontrado un modelo concluyente
Para la sicología, el problema central en el ámbito del reconocimiento de patrones el es
estudio de los mecanismos por los que las señales externas estimulan los órganos
sensoriales y se convierten en experiencias perceptuales significativas, o dicho de otra
forma, cómo realizamos el etiquetado de estos estímulos tan complejos asignándoles
un nombre.
Estos procesos continúan siendo desconocidos en su mayor parte y no se ha
encontrado un modelo concluyente sobre cómo nuestro sistema nervioso realiza este
reconocimiento. No obstante, se admite que esta tarea debe realizarse siguiendo un
esquema general como el que se detalla a continuación. Antes del reconocimiento, un
patrón debe ser percibido por los órganos sensoriales. Además, el mismo patrón o
alguno similar (de la misma clase) debe haberse percibido y recordado previamente.
Finalmente, debe establecerse alguna correspondencia entre la percepción actual y lo
recordado. En resumen, esta aproximación al reconocimiento de patrones se centra en
el estudio del mecanismo de reconocimiento presente en los seres vivos.
La tecnología impulsa el estudio
El uso intensivo de ordenadores u otros dispositivos electrónicos en los último años ha
impulsado el estudio y aplicación de técnicas de reconocimiento de patrones. En
particular los dispositivos de adquisición de datos (sensores y transductores) y los
convertidores A/D hacen que un ordenador pueda ser ``alimentado'' con datos
(observaciones) del mundo real, utilizado para almacenar y recuperar información y
para establecer la correspondencia entre observaciones pasadas y actuales (utilizando
modelos adecuados, naturalmente).
La aproximación al reconocimiento de patrones que adoptaremos es la del estudio de
las teorías y técnicas de reconocimiento implementables en un sistema informático. En
este sentido, las fuentes de esta área son las Matemáticas-fundamentalmente la
Estadística- y la Inteligencia Artificial, en sus aproximaciones algorítmicas a la
resolución de problemas. El objetivo final de un sistema de Reconocimiento de
Patrones es el etiquetar de forma automática patrones de los cuales desconocemos su
clase. Suponemos que el sistema dispone de un módulo de adquisición de datos y que
se han seleccionado previamente las variables más significativas.
El conjunto de clases
En primer lugar debe establecerse claramente el objetivo final del sistema: ¿cuál es el
conjunto de etiquetas? o dicho de otra forma ¿qué salidas debe proporcionar el
sistema?
Si suponemos que todos los patrones a reconocer son elementos potenciales de J
clases distintas denotadas
= {
,
,...,
, j = 1, 2,..., J, llamaremos
} al conjunto de las clases informacionales.
Conviene tener en cuenta que una clase informacional es la denominación que se da a
una clase conocida y con significado.
Usualmente se habla simplemente de clase prescindiendo del añadido “informacional”
aunque esta distinción es muy importante a la hora de abordar las técnicas de
agrupamiento. Resulta conveniente ampliar el conjunto
incorporando una nueva
clase, llamada la clase de rechazo. Así, se define la clase de rechazo ( ) como una
clase que se asigna a todos los patrones para los que no se tiene una certeza
aceptable de ser clasificados correctamente en alguna de las clases de . Se dice que
= {
,
,...,
,
} es el conjunto extendido de clases informacionales.
El clasificador
Una vez establecido el conjunto de clases se procede a la construcción del clasificador.
Como puede intuirse, la construcción del clasificador no es una tarea trivial ni directa e
involucra una serie de etapas:
1. La elección del modelo.
2. Aprendizaje (entrenamiento del clasificador).
3. Verificación de los resultados.
Es muy importante señalar que estas etapas no deben verse de forma secuencial.
Puede ocurrir que en un momento dado hay que volver atrás para replantearse alguno
de los pasos dados, incluso el conjunto de clases informacionales.
Un clasificador o regla de clasificación es una función d : P
patrones X tal que para todo patrón X, d (X)
definida sobre los
.
CAMPO DE APLICACIÓN
Aunque la aplicabilidad de las técnicas resulta, a priori, muy amplia, no hay un método
que sea la panacea. Diversas razones hacen que los sistemas de reconocimiento de
formas operativas sean muy específicos del problema a resolver:
1. La naturaleza de los patrones: caracteres escritos, símbolos, dibujos,
imágenes biomédicas, objetos tridimensionales, firmas, huellas dactilares,
espectrogramas, imágenes de Teledetección, cromosomas, ...
2. Los requerimientos del sistema, especialmente en tiempo de respuesta hace
que algunos métodos de reconocimiento, aún siendo superiores en éxito no
sean aplicables en la práctica.
3. Factores económicos: un sistema equipado con diferentes sensores y
equipos de procesamiento muy potentes pueden dar resultados muy
satisfactorios pero no pueden ser asumidos por los usuarios.
Estos factores hacen que un sistema adecuado para un problema sea inaplicable para
otro, lo que posibilita el estudio y desarrollo de nuevas técnicas. Debe considerarse,
además, que el reconocimiento de patrones no constituye un campo de estudio cerrado
sino que las técnicas relacionadas con este campo pueden encontrase en otras ramas
de la Ciencia y de la Tecnología. De ahí que encontrar una definición formal para un
campo tan diversificado sea imposible.
PROYECTOS E INSTITUCIONES DE INVESTIGACIÓN
LABORATORIO DE PROCESAMIENTO DE IMÁGENES
Las actividades principales de este laboratorio son: la formación de personal altamente
calificado, el desarrollo de investigación teórica y aplicada de alto nivel en las áreas del
procesamiento de imágenes y reconocimiento de patrones, la visión por computadora y
la robótica. Realiza actividades de cooperación científica y tecnológica con el sector
productivo. Actualmente, las investigaciones se encaminan en los aspectos teóricos y
prácticos en las líneas de segmentación de imágenes, el reconocimiento de objetos 2D
y 3D usando técnicas de indexado, redes neuronales e invariantes geométricos y
topológicos, el reconocimiento de patrones abstractos usando el enfoque lógico
combinatorio, la estructuración de espacios conceptuales, así como el control de
servomecanismos usando información visual. Las aplicaciones incluyen el diagnóstico
médico asistido por computadora, la segmentación de imágenes usando métodos
variacionales, el reconocimiento de rostros, y el control de robots móviles usando
información visual.
Áreas de Investigación:






















Algoritmos para el reconocimiento de patrones.
Control de sistemas electromecánicos
Estructuración Conceptual de Espacios.
Morfología Matemática.
Multiresolución y Ondículas.
Redes Neuronales.
Redes Morfológicas Asociativas.
Segmentación de Imágenes.
Técnicas de indexado en Bancos de Objetos.
Teoría de Testores.
Topología Digital.
Equipo y Software:














Estaciones de trabajo SUN.
Computadoras personales.
Impresoras.
Tarjetas de digitalización.
Cámaras en blanco y negro.
Software de proceso y adquisición de imágenes.
Acceso a Internet.
Proyectos de Investigación y Desarrollo:
Herramientas para la estructuración conceptual de espacios.
Modelos Matemáticos y Herramientas Computacionales para el Análisis de
Datos.
Herramientas basadas en objetos simbólicos.
Resp.: M. en C. José Francisco Martínez Trinidad.
Tel. 57296000. Ext. 56573. [email protected]
Selección y detección de características para reconocimiento de rostros.
Resp.: Dra. Patricia Rayón Villela.
Tel. 57296000. Ext. 56582. [email protected]
Construcción y control Visual de robots móviles.
Imágenes simbólicas.
Resp.: Dr. Juan Luis Díaz de León.
Tel. 57296000. Ext. 56582. [email protected]
Detección y reconocimiento de rostros en imágenes y secuencias de imágenes.
Herramientas para el tratamiento y análisis de imágenes médicas.
Resp.: Dr. Juan Humberto Sossa Azuela.
Métodos para segmentación de Imágenes.
Resp.: Dr. Sergei Levachikine.
Otros investigadores:
Dr. Claudio Valenzuela.
Tel. 57296000. Ext: 56551. [email protected]
Recuperación de señales minúsculas en presencia de ruido fuerte.
Resp. de DIPLAB: Dr. Humberto Sossa Azuela
Tel.57296000, Ext. 56512. [email protected]
Sistema Multiagentes para la elaboración de modelos de objetos y su
reconocimiento usando información de su apariencia.
Resp.: DR. MATÍAS ALVARADO MENTADO.
Tel.57296000, Ext. 56512. [email protected]
PROYECTO SHELL
Objetivo:
Diseñar y construir un software para reconocimiento de patrones desde el enfoque
lógico-combinatorio que permita al usuario la definición, estructuración y solución de
problemas a través de un lenguaje formal. Dicho lenguaje deberá tener la capacidad de
expresar -o modelar- todas las condiciones de un problema de reconocimiento de
patrones así como el procesamiento de los datos previo a la aplicación de algún
algoritmo de reconocimiento.
El objetivo de modelar el problema será lograr una plataforma estable que permita, de
manera sencilla, aplicar a un mismo problema diversos algoritmos de reconocimiento o
bien, el mismo algoritmo con diferentes parámetros para poder estudiar el efecto de
éstos sobre el problema y los diferentes grados de precisión de las soluciones
obtenidas.
Desarrollo:
Este proyecto se fundamenta en una metodología de modelado de cubrimientos
desarrollada por Salvador Godoy y que permite construir estructuras que abarcan
pácticamente todos los aspectos necesarios para modelar problemas de clasificación
supervisados. El proyecto deberá realizar definiciones nuevas para completar la
expresividad buscada y construir un ambiente adecuado para el estudio de problemas y
algoritmos.
Expectativas:
Con este software se espera lograr tres condiciones fundamentales:
1. Una plataforma sólida y bien adecuada para el estudio y la investigación de
problemas, herramientas y algoritmos de reconocimiento de patrones en el enfoque
lógico-combinatorio. Este software servirá para apoyar cursos e investigación.
2. Un entorno de aplicación con la capacidad de crecer, mediante algoritmos nuevos
programados en forma de DLL y comunicados a través de una interfaz estándar
hacia el Shell. Esto permitirá que el software se pueda mantener actual al ritmo de
los avances en la disciplina de reconocimiento de patrones.
3. Proporcionar una interfaz de comandos para otras aplicaciones, presumiblemente
Reconocedores específicos (imágenes, substancias, etc) que podrán pre-procesar
sus datos de entrada, generar una especificación en el lenguaje propio del Shell y
emitirle comandos indicando qué tipo de algoritmo aplicar y con qué parámetros.
Esta característica justificará plenamente el nombre de "Shell" al colocar a este
programa como una capa subyacente para ser aprovechada por capas superiores
con mayor grado de especialización.
DISEÑO E IMPLEMENTACIÓN DE UNA RED NEURONAL BASADA EN EL
RECONOCIMIENTO DE PATRONES
Planteamiento y formulación del problema:
Las redes neuronales artificiales emulan las redes neuronales biológicas y se utilizan
para aprender estrategias de control observando la forma como una persona lo hace.
Son sistemas que aprenden con ejemplos, es decir, que no requieren que la tarea a
ejecutar se programe. También se utilizan para aprender a controlar un sistema
aplicando entradas, evaluando la calidad de las respuestas para estas entradas, y
ajustando la fórmula que genera las acciones de control para mejorar la respuesta del
sistema.
Las redes neuronales artificiales han demostrado su capacidad para resolver problemas
donde el computo tradicional ha tenido gran dificultad durante años. Algunas
aplicaciones exitosas de las redes neuronales son:
Procesamiento de imagen y voz.
Reconocimiento de patrones.
Planeamiento, predicción, control y optimización de procesos.
Un sistema neuronal puede ser simulado desarrollando un programa computacional,
pero también se puede llegar al mismo punto empleando circuitos integrados, es así
como surge la necesidad de encontrar los dispositivos adecuados que permitan
identificar un carácter escrito utilizando redes neuronales.
Justificación:
La investigación propuesta busca, mediante la regla del perceptrón, entrenar una
neurona con la que se obtendrá otra simulada que basa su funcionamiento en
multiplicadores, sumadores y umbrales. Una neurona simulada simplemente añade una
suma ponderada de sus entradas y permanece encendida mientras la suma de sus
entradas se mantenga por encima del umbral.
Lo anterior permitirá desarrollar un entrenador electrónico con neuronas simuladas para
reconocer cierta regularidad en datos que dependerán del patrón establecido. Para
lograr el cumplimiento de los objetivos de entrenamiento se acude al empleo de
lenguajes de programación implementados en dispositivos electrónicos (PIC16F84) y
etapas de adquisición de los datos a reconocer (sensores ópticos ).
El resultado de este compendio de elementos implementados es el de entrenar una red
neuronal para el reconocimiento de caracteres escritos por diferentes personas sobre
una matriz de cinco por tres píxeles. La estructura de esta red dispone de un error
permisible, de un número determinado de patrones de entrenamiento y unas salidas de
la red asociadas con el carácter presente en la matriz.
Así, la implementación de dispositivos utilizando el entrenamiento de neuronas que
simulen el comportamiento “natural” de los humanos como es el reconocimiento de
caracteres es de vital importancia para comprender el grado de complejidad que implica
la simulación electrónica de estos comportamientos.
Objetivos:
Objetivo general
Diseñar, implementar y entrenar una red neuronal artificial cuya aplicación se dará en el
reconocimiento de un patrón determinado.
Objetivos específicos
Realizar una búsqueda bibliográfica actualizada acerca del estado del arte en las
redes neuronales y los métodos utilizados para su modelación y entrenamiento.
Diseñar un sistema que cumpla con las características necesarias para modelar
una red neuronal artificial teniendo en cuenta que la aplicación a tratar es el
reconocimiento de patrones.
Desarrollar un software que permita tanto entrenar la red neuronal, para la
aplicación prevista, como responder a las exigencias de la puesta en marcha del
sistema.
Comprobar la eficacia del sistema a través de la validación de los resultados
obtenidos.
CONCLUSIONES
Desde el punto de vista de percepción el área de Reconocimiento de Patrones ofrece
inquietudes por el lado sensorial en segmentación o sea reconocer un objeto o un
fenómeno con una o varias características, como también en conectividad al relacionar
diferentes características y en agrupamiento al mezclar patrones juntando formas para
obtener objetos o palabras para lograr frases y oraciones.
Es necesario la Clasificación de Patrones para acotar y / o a veces limitar datos
generados por un sensor. De esta forma los sensores pueden ser utilizados en varios
dominios incluyendo las artes y las ciencias. Esto se logra por medio de un
ordenamiento de datos tomando muestras que hacen sentido y descartando las
redundantes o las que son error. En convertidores análogo digital el ancho de banda a
veces excede nuestras expectativas y por lo tanto es necesario encontrar un rango
óptimo para el dominio de la aplicación en la que se esta trabajando.
Por ejemplo en el caso del audio es practica común utilizar un filtro pasa altos para
eliminar frecuencias por debajo de la escucha y de la misma manera con frecuencias
por encima del rango humano con el filtro pasa bajos.
Es de gran utilidad conocer los varios tipos de sensores y sus características para
diseñar sistemas de clasificación y reconocimiento de patrones para que operen dentro
de las normas y restricciones del mecanismo en el que se está trabajando. Por ejemplo
si se está realizando una instalación audio visual es de gran utilidad entender la
operación de transductores como cámaras, monitores, foto-sensores, etc... y los datos
(señal) que ellos generan.
Para un entendimiento óptimo de este campo se sugiere una familiarización en áreas
de matemáticas avanzadas como álgebra lineal, probabilidad, teoría de decisiones
(Bayes) y estadística. También se sugiere familiarización con algoritmos, programación
y tratamiento de señal.
BIBLIOGRAFÍA
LIBROS
Lampinen, J., Laakonsen, J, y Oja, E.
Pattern Recognition, Capítulo 1 de Image Processing and Pattern
Recognition. Editado por Leondes C.T., Academic Press. 1998.
Fukunaga, K.
Introduction to Statistical Pattern Recognition.
Academic Press. 1990.
Hand, D.J.
Discrimination and Classification.
John Wiley & Sons. 1981.
PÁGINAS
http://www.ugr.es/depar/ccia/rf/patrones/tema2.1
http://www.cic.ipn.mx/index_inv.htm
http://redii.cic.ipn.mx/2000/multiagentes/ReporteREDII.html
Descargar