12
FUNDAMENTACION TEORICA
A.-ANTECEDENTES DE LA INVESTIGACION.
Entre los estudios realizados anteriormente con relación a sistemas de
reconocimiento de Patrones visuales se pueden mencionar a Ferre, Eugenio
y Stavisky, Jimmy (2000), quienes realizaron una tesis de grado en la
Universidad Rafael Belloso Chacín denominada “desarrollo de un Prototipo
para el Reconocimiento Automatizado de formas (S.R.A.F)”. Esta
investigación se realizó con el propósito de diseñar un prototipo que se utilizó
para el reconocimiento de patrones visuales, desarrollando éste en un
periodo corto de tiempo. La teoría expuesta en esta tesis brindó importantes
aportes en lo referente a bases teóricas para el desarrollo del sistema de
Reconocimiento de Patrones.
El tipo de investigación, por su propósito es de tipo aplicada, debido a que
su objetivo principal fue diseñar un prototipo que se utilizó para el
reconocimiento de patrones visuales, desarrollando este en un periodo corto
de tiempo.
La metodología utilizada fue la definida por José Maria Angulo (1992) y los
resultados obtenidos fueron el desarrollo de un Prototipo para el
Reconocimiento de Patrones visuales a través de un sistema Automatizado
de Reconocimiento de Formas.
13
La investigación es de tipo aplicada, con la premisa de aporte de
soluciones a problemas en un lapso de tiempo corto y el basamento teórico
utilizado fue el de Atencio y Villaquirán.
Los resultados obtenidos mostraron la factibilidad de inferir una variable,
siendo validado mediante la utilización de datos de campo para simular el
comportamiento de la variable dentro del proceso de generación de vapor,
obteniendo un 98,5% en la disminución del error entre los parámetros.
Por otra parte, Atencio, F (1992) en su trabajo de Reconocimiento de
Patrones, basado en Redes Neuronales, con aprendizaje supervisado,
utilizando el algoritmo de “Retropropagación”, el cual permitió el diseño e
implementación de un sistema basado en Redes Neuronales Artificiales que
permite el Reconocimiento de diferentes tipos de patrones, mediante el uso
de algoritmos de entrenamientos Backpropagatión (Retropropagación). Este
sistema desarrollado en el lenguaje de la propagación Turbo Pascal 5.5.,
crea, entrega, prueba y ejecuta una Red Neuronal para el Reconocimiento de
Patrones Gráficos, Numéricos y Simbólicos; además de cambiar y consultar
la estructura, pesos y parámetros de la Red. El desarrollo de este sistema,
permitió también determinar que no es necesario usar técnicas de
procesamiento paralelo para construir que usen y construyan tecnologías
basadas en Redes Neuronales.
14
Es importante resaltar que estos trabajos proporcionaron la base teórica
de Redes Neuronales empleada en la estructura de esta investigación, así
como también los aspectos fundamentales referentes a la visión Artifical.
Se destaca de igual forma las mejoras a lograr por parte de esta
investigación hacia las anteriores, en la optimización de recursos utilizados
para el entrenamiento y posterior reconocimiento de patrones visuales en
este sistema.
B.-BASES TEORICAS.
Dentro de este marco se definen las variables de estudio, como lo son los
sistemas de reconocimiento de patrones y las redes neuronales; así como
también los diferentes aspectos que envuelven estos dos términos aplicados
en esta investigación.
I.- SISTEMAS DE RECONOCIMIENTO DE PATRONES.
En completo acuerdo con los autores que hacen referencia, en sus obras
literarias a los sistemas de reconocimiento de patrones, se afirma que en la
actualidad, estos son utilizados para la solución de tareas tales como el
reconocimiento de caracteres, de huellas digitales y reconocimiento del
habla, entre muchos otros. Por esta razón, desde hace varios años se han
venido desarrollando diferentes metodologías que intentan resolver este tipo
de problemas. Son diversos los sistemas de reconocimiento que en la
15
actualidad están siendo explotados; en este caso abarcaremos uno en
especifico, “sistemas de reconocimiento de patrones visuales”, cuya
comprensión resultara más sencilla mediante la lectura de los siguientes
términos.
1.- RECONOCIMIENTO DE PATRONES VISUALES.
K.S. Fu (1994, p.440). El reconocimiento es un proceso de etiquetado;
esto es, la función de los algoritmos de reconocimiento es identificar a cada
objeto segmentado de una escena y asignarle una etiqueta (llave inglesa,
obturador, tornillo, por ejemplo). En la mayoría de los sistemas de visión, los
niveles de reconocimiento trabajan sobre objetos que suponen que han sido
segmentados como unidades individuales. Otra limitación común es que las
imágenes se deben de tomar con una geometría de visión conocida (a
menudo perpendicular al espacio de trabajo). Esto hace que disminuya la
diversidad de características de forma y simplifica la segmentación y la
descripción reduciendo las posibilidades de ocultación. Las variaciones en la
orientación de los objetos se solventa eligiendo descriptores invariantes a la
rotación o usando el eje principal del objeto para orientarle en una dirección
predefinida.
16
2.- CONFIGURACIÓN DE UN SISTEMA DE RECONOCIMIENTO DE
PATRONES.
Un esquema modular de un sistema de Reconocimiento Patrones se
muestra en la siguiente figura:
FIGURA 1. Esquema modular de un sistema de reconocimiento de patrones.
Fuente: http://www.etsi2.urg.es/depar/ccia/rf/tema1-00/nodes.html
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
17
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. Disponible en la pagina:
http://www.etsi2.urg.es/depar/ccia/rf/tema1-00-01/nodes.html.
3.- CLASIFICACIÓN DE LOS METODOS DE RECONOCIMIENTO.
Según el mismo autor, los métodos de reconocimiento que se usan hoy en
día se pueden dividir en dos categorías principales: métodos de decisión
teórica y estructurales.
ü Métodos de decisión teórica, basados en el uso de las funciones
de decisión (discriminantes). Sea x = (x1, x2, ......, xn)T un vector
patrón columna de componentes reales, desde xi es el descriptor i-
esimo de un objeto dado (por ejemplo, el área, la intensidad media, la
longitud del perímetro). Dadas M clases de objetos, representadas
por w1, w2, ......, wM, el problema básico del patrón de reconocimiento
de decisión teórica es la identificación de las M funciones de
decisión, d1,(x), d2(x),......, dM(x), con la propiedad de que se cumpla
la siguiente relación para cualquier vector patrón x* perteneciente a
la clase wi:
di(x*) > dj(x*) j = 1,2,........., M; j ≠ i.
18
El uso predominante de las funciones de decisión en sistemas de
visión industrial se da en la comparación del objeto a reconocer con
patrones tipo.
ü Métodos estructurales, las técnicas vistas con anterioridad usan
patrones de carácter cuantitativo, ignorando todas las relaciones
geométricas inherentes a la forma del objeto. Los métodos
estructurales, por el contrario, realizan la discriminación de objetos
utilizando estas relaciones. El principio del reconocimiento estructural
es la descomposición de un objeto en patrones básicos. Esta idea se
comprenderá mejor con la ayuda de la FIGURA 2. La parte a) de
esta figura muestra la frontera de un objeto simple, y la parte b)
muestra un conjunto de elementos básicos con una longitud y una
dirección determinada. Comenzando por la parte superior izquierda,
recorriendo las fronteras en el sentido de las agujas del reloj e
identificando las apariciones de estos elementos básicos, obtenemos
la frontera codificada mostrada en la parte c) de la figura.
Básicamente, lo que hemos hecho es representar la frontera
mediante la cadena aaabcbbbcdddcd. La longitud y la dirección de
estos elementos básicos, junto con el orden en que aparecen,
establecen la estructura del objeto en términos de esta
representación en particular.
19
FIGURA 2. a) Frontera de objeto. b) Elementos básicos. c) Frontera
codificada en términos de elementos básicos. Fuente: Libro de Robótica, por:
K.S. Fu y R.C. González.
4.- APRENDIZAJE Y RECONOCIMIENTO DE PATRONES.
El Reconocimiento de Patrones puede considerarse, de forma genérica,
como una disciplina de la Inteligencia Artificial. Veamos las razones de esta
afirmación desde el punto de vista de la Inteligencia Artificial.
• Adquisición y representación del conocimiento, en Inteligencia
Artificial, la adquisición del conocimiento consiste en la transferencia y
transformación de conocimientos de una o más fuentes (libros,
manuales, expertos, etc.) a un sistema informático y representarlo
(expresarlo) de forma útil para la máquina con vista a un tratamiento
a) b) c)
a b c d
20
posterior. En Reconocimiento de Formas se interpreta como la
adquisición de patrones de clase conocida y su almacenamiento para
establecer el patrón prototipo de cada clase.
• Aprendizaje, El aprendizaje implica cambios en el sistema que se
adapta para permitir llevar a cabo la misma tarea a partir de las
mismas condiciones de un modo más eficiente y eficaz cada vez. En
un sistema de Reconocimiento de Formas, y dependiendo del método
de aprendizaje se trata de calcular el patrón prototipo o el conjunto de
patrones prototipo que caracterizan cada una de las clases a
discriminar. Usualmente se utiliza un modelo de aprendizaje inductivo
que se puede formular como sigue: una vez establecida la manera de
representar el conocimiento y extraído éste, se calcula a partir de un
conjunto de entrenamiento el patrón (o conjunto de patrones) prototipo
utilizando un algoritmo de aprendizaje. Es necesario un esquema de
evaluación que proporciona una medida de bondad del sistema.
• Clasificación, consiste en proporcionar nuevos prototipos al sistema,
independientes de los utilizados en el aprendizaje para que éste los
etiquete utilizando el conjunto de clases disponibles.
• Evaluación, toda clasificación lleva aparejada una medida de error,
bondad o confianza. Deben proporcionarse mecanismos para evaluar
21
esta bondad. Normalmente se utiliza un conjunto de patrones
etiquetados por expertos y no usados en el aprendizaje.
5.- CICLO DE DESARROLLO DE UN SISTEMA DE RECONOCIMIENTO. Para el desarrollo de un sistema de reconocimiento, se aplican las
siguientes fases expuestas por autores reconocidos, como lo son José M.
Angulo (1991) y Brian Blum (1984), cuya información se obtuvo mediante la
búsqueda en libros que aplican dichas fases: Robótica Practica por José
Maria Angulo en el año de 1984, Todo El Poder de Multimedia por Tay
Vaughan en el año de 1995, entre otros.
FASE 1. Definición de las especificaciones.
En esta fase se define con precisión el funcionamiento del sistema a
desarrollar. Por tal razón, sólo debe establecerse los estímulos de entrada y
de salida, sin detenerse a explicar las razones. Debe especificarse el que y
no el porque.
FASE 2. Ordinograma General.
Se establece el diagrama de flujo que se estima será el que regirá el
funcionamiento del circuito. Porque su propósito es el de servir como base
para el desarrollo del software, el cual esta sujeto a modificación. Este se
realiza en forma general pero que ilustre el funcionamiento del sistema.
22
FASE 3. Análisis.
Esta fase comprende un estudio preliminar de la factibilidad en cuanto a
costo e inversión del proyecto, además estudian los diferentes factores que
pueden tener incidencia de una u otra forma en el desarrollo y
funcionamiento del software; por otra parte se analizarán los requerimientos
y plataforma necesaria para la construcción del mismo, a su vez se trabajará
con la comprensión del tipo de público que interactúan con el sistema.
• Análisis del Publico, es la primera actividad a desarrollar en la fase de
análisis, tiene como finalidad estudiar a los diferentes usuarios hacia los
cuales está dirigido el software, dicha actividad permite prevenir
posibles altercados que puedan surgir posterior al desarrollo del
sistema.
• Análisis del Ambiente, esta actividad esta orientada al análisis de la
plataforma en la cual funcionara el software, dicho estudio involucra la
exploración del sistema en el cual será implementado el proyecto, para
de esta manera buscar las diferentes herramientas que sean necesarias
para la construcción del software en cuestión.
• Análisis del contenido, En dicha fase se analiza el contenido de la
información que ha de manejar el sistema, para de esta forma
conseguir la manera más efectiva de manejar la información.
23
• Análisis del Sistema, Se basa en la exploración de los requerimientos
de Hardware, además de revisar que otro tipo de necesidades formula
el Software para su funcionamiento.
FASE 4. Diseño interactivo.
En esta se expone el proceso de interacción entre los usuarios y el
sistema, se comienza por los requerimientos básicos orientados al software
hasta llegar al prototipo de trabajo.
• Requerimientos funcionales, se definen los elementos de hardware y
software necesarios para el desarrollo del proyecto.
• Metáforas y paradigmas, se toma la decisión en cuanto a la forma de
presentar la información.
• Diseño de interfaces, en esta actividad se comienza a diseñar la
interfaz que le permitirá al usuario interactuar con el sistema; es
necesario acotar que dicha interfaz debe ser agradable a la vista y fácil
de manejar.
FASE 5. Ordinogramas modulares y codificación de programas.
En esta fase, cada uno de los diferentes bloques generales del diagrama
de flujo se codifica individualmente, asegurándose de que cada parte realice
el trabajo en forma eficiente y segura. Esto se hace codificando el programa
directamente en el lenguaje seleccionado para tal fin.
24
FASE 6. Depuración del Software.
El programa se prueba y se depura hasta que su funcionamiento sea el
adecuado. Es imperativo probar todas y cada una de las diferentes
bifurcaciones del programa en forma exhaustiva, incluso, se debe determinar
su funcionamiento bajo condiciones extremas, hasta obtener un máximo
rendimiento y un óptimo funcionamiento, donde la posibilidad de errores sea
muy mínima, para así garantizar su correcto funcionamiento.
FASE 7. Mantenimiento de Software.
Después de la fase de prueba se entrega el sistema al Usuario y se inicia
un gran periodo de mantenimiento.
6.- VISIÓN ARTIFICIAL. Desde la aparición de los primeros ordenadores digitales hacia los años
sesenta se puso claramente de manifiesto la gran potencialidad de estos
para el tratamiento de información especial en campos de aplicación
directamente relacionados con el estudio de propiedades del sistema de
visión humana.
El primer problema importante que se trato de resolver fue el de la
determinación de los saltos o discontinuidades presentes en una imagen.
Pero dada la enorme complejidad mostrado por el sistema de visión
humana y como consecuencia el lento avance de las teorías y algoritmos que
25
explican su funcionamiento y propiedades se intentó abordar estos
problemas de formas más directas a partir de tres enfoques distintos.
Un primer enfoque, comandado por las ideas de Azrel Rosenfeld (1991),
comenzó el desarrollo de técnicas empíricas basadas en criterio, de tipo
matemático que aproximaban estos problemas de estimación de bordes y
Líneas usando distintos enteros. De esta primera aproximación nacieron
algunas ideas interesantes como el uso simultaneo de operadores
de distintos tamaños, pero tuvo el gran inconveniente de no poder proponer
métodos para la evaluación de los distintos algoritmos. De cualquier manera
esta aproximación ha seguido su desarrollo hasta con notables éxitos en
algunos casos.
El segundo enfoque consistió en profundizar en el problema reduciendo su
alcance a un mundo de juguete, es decir, un mundo de bloques blancos
iluminados sobre fondo negro. Los bloques podían tener cualquier forma,
siempre que todas sus superficies fuesen planas y todos sus bordes rectos.
Este modelo funcionó razonablemente bien permitiendo que trabajos como
los de Waltz(1975) y Mack worth(1973) permitieran resolver la
de dibujos lineales; calculados a partir de imágenes de prismas sólidas. Por
supuesto que la simplificación impuesta en el modelo se había hecho con la
esperanza de que un conocimiento profundo del problema en un mundo
simplificado permitiera más tarde extrapolar dichos conocimientos a mundos
más complejos. Pero desafortunadamente esto no ocurrió así y hubo que
estrechar un nuevo enfoque.
26
Dentro del tercer enfoque se han de destacar los trabajos pioneros de
Horn (1975-1977) sobre la formación de la imagen. En ellos; Horn, establece
modelos de calculo que expresan la formación de la imagen a través de
ecuaciones diferenciales que relacionan los valores de intensidad de la
imagen con la geometría de la superficie tras estudiar con gran detalle el
modo en que la iluminación, la geometría, la reflectancia de la superficie y el
punto de vista del observador actuaban de forma conjunta para crear los
valores de intensidad medidos en la imagen. Las ideas subyacentes a esta
tercera aproximación eran que debe existir un nivel adicional de comprensión
en el que el carácter de las tareas de procesamiento de la información
llevadas a cabo durante la percepción se analicen y comprendan de modo
independiente a los mecanismos y estructuras particulares que los
implementan en el cerebro.
Aunque el enfoque dado por Horn (1975-1977) en sus trabajos era el
adecuado para abordar los problemas de calculo asociado a los mecanismos
de visión, que daba aún por determinar de qué manera se implementaban los
distintos modelos de cálculo dentro del sistema de visión humano. En este
sentido los trabajos de Juesz (1975) a partir de estereográmas aleatorios en
los que demostraba por ejemplo que los mecanismos de la visión
estereoscópica son realizados en la retina en una etapa muy previa del
proceso de visión, que el mecanismo de visión humana tiene la posibilidad
de interpretar imagen en 3 dimensiones cuando solamente las informaciones
sobre profundidad, distancia y textura, fueron el detonante para el
27
establecimiento de nuevas teorías de tipo modular, en las que se realiza el
proceso de visión como una sucesión de transformaciones que a partir de las
imágenes del mundo externo produce una descripción que es útil, al
observador y no esta ensombrecida por información irrelevante (Marr, 1976;
Marr & Nishihara,1978).
Queda pues establecido un hecho básico del estudio de las técnicas de
Visión Artificial y es la necesidad absoluta de contar con modelos de cálculo
que expliquen los mecanismos básicos y propiedades de lo que esta
estudiando así como son algoritmos e implementación que permitan
experimentar los resultados de la teoría. Como consecuencia de esto, las
técnicas asociadas al estudio de los sistemas de visión artificial son
considerados de la inteligencia artificial es cuanto a que modelizan
actividades del cerebro Humano.
7.- FUNCIONAMIENTO DEL SISTEMA DE VISIÓN ARTIFICAL.
Para K.S.FU (1994), la utilización del Sistema de Visión artificial tiene tres
fases: Calibración, Aprendizaje y Trabajo:
üü Fase de Calibración, está destinada a establecer la
correspondencia entre el sistema de coordenadas del mundo físico y
el sistema visual y el robot. Se lleva a cabo utilizando una serie de
Programas que permiten realizarlo de forma casi totalmente
automatizado.
28
üü Fase de Aprendizaje, el operador le indica al computador el nombre
de cada una de los objetos que tiene que reconocer. Para ello coloca
ante la cámara, uno tras otro, un representante X de cada clase de
objeto (ck) que el sistema visual deberá después reconocer, la
imagen de cada uno es sometida al mismo análisis que se va a
describir para la fase de trabajo y, básicamente consiste en
determinar sus rasgos especifico de ese objeto (rk); a continuación
se establece la correspondencia entre el vector de rasgos y el
nombre del objeto (nk), que el operador introduce a través del
teclado. Como resultado de la fase de Aprendizaje queda en la
memoria del computador una sucesión de vectores, rk (k=1, 2,...,p) a
cada uno de los cuales queda asociado una etiqueta con el nombre
de la clase a la que representa. Después de la obtención y
almacenamiento de los vectores de rasgos, se determinan los
parámetros de las funciones discriminatorias que van a permitir
identificar los objetos.
üü Fase de Trabajo, se desencadena una secuencia de procesos,
entre los que se pueden mencionar:
1.- Digitalización de una instancia de la escena, que genera una
matriz entera i.
2.- Binarización; a partir de la matriz precedente se genera una
nueva matriz binaria B, utilizando un único Umbral que se determina
29
automáticamente en función de los valores contenidos en 1.
Usualmente aparecerán unos (1) sobre la parte de la imagen
ocupada y ceros (0) sobre las regiones del fondo.
3.- Código y cadena: a partir de la matriz B se genera una sucesión
de listas numéricas o cadenas, que representan las líneas de la
escena sobre las cuales se producen las transcripciones 1/0 en la
citada matriz.
4.- Eliminación del ruido: se eliminan aquellas cadenas que por su
escasa longitud u otras características puede suponerse que no
corresponden a contornos de objetos.
5.- Calculo del vector característico: a partir de cada cadena se
calcula una serie de estadísticos asociados a la misma que
debidamente ordenados pasan a integrar el vector de características,
r.
6.- Clasificación: se calcula la distancia Euclidea del vector r con
cada uno de los p vectores modelos registrados durante la fase de
aprendizaje para establecer cual es el más próximo.
7.- Circulo de la posición: a partir de la cadena se puede determinar
su centro de coordenadas de la función y mediante la transformación
que se haya establecido durante la fase de calibración, se derivan las
coordenadas físicas del objeto cuyo contorno viene representado por
la citada cadena.
30
8.- TÉCNICAS DE ILUMINACIÓN.
Para K.S. Fu (1994, pag. 315), la iluminación de la imágen es un factor
importante que suele afectar a la complejidad de los algoritmos de visión. La
iluminación arbitraria del entorno no suele ser aceptable ya que se obtienen
imágenes con bajo contraste, reflexiones especulares, sombras y detalles
espúreos. Un sistema de luces bien diseñado ilumina una imagen de forma
que la complejidad del gráfico que se obtiene sea mínima, aumentándose a
su vez la información necesaria para la detección y extracción del objeto.
En la FIGURA 3 se muestran cuatro de las principales técnicas usadas
para iluminar el área de trabajo del robot. El uso de la iluminación difusa
presentado en la parte a) se puede utilizar para objetos caracterizados por
superficies suaves y regulares. Esta forma de iluminación se suele emplear
en aplicaciones donde las características de la superficie son importantes. La
iluminación desde la parte posterior del objeto, mostrado en la parte b),
produce imágenes en blanco y negro (sin matices). Esta técnica se adapta
muy bien a aplicaciones en las cuales las siluetas de los objetos son
suficientes para el reconocimiento u otras medidas.
La técnica de iluminación estructural que se muestra en la parte c) se
sirve de la proyección de puntos, franjas o rejillas sobre la superficie de
trabajo. Con esta técnica tenemos dos ventajas importantes. En primer lugar
establece un patrón de luz conocido sobre la superficie de trabajo y las
diferencias con este patrón indican la presencia de un objeto, simplificándose
31
así el problema de detección del objeto. En segundo lugar, analizando la
forma en que el patrón de luz es distorsionado, es posible obtener
información de las características tridimensionales del objeto. La técnica de
iluminación direccional mostrada en la parte d) de la figura es útil, en
principio, para la inspección de la superficie de los objetos. Los defectos en
la superficie, tales como hoyos y arañazos, pueden ser detectados usando
un haz de luz altamente direccional (por ejemplo un haz láser) y medir el
grado de dispersión. Para superficies sin desperfectos se difumina un poco
de luz en dirección hacia la cámara. Por otro lado, la presencia de un
desperfecto suele incrementar la cantidad de luz dispersada hacia la cámara,
facilitando así la detección del defecto.
FIGURA 3. Cuatro sistemas de iluminación básicos. Fuente: Libro de
Robótica, por: K.S. Fu y R.C. González.
32
II.- REDES NEURONALES ARTIFICIALES.
Estas, forman parte de un conjunto de teorías desarrolladas dentro del
campo de la inteligencia artificial, como son: los Algoritmos Genéticos, Lógica
difusa, Teoría del Aprendizaje, entre otros.
Obidol, P.(1997, p.53) señala que, son sistemas que procesan información
y están formadas por una cantidad de unidades o nodos. Ninguno de estos
nodos tiene un especial protagonismo en el funcionamiento global del
conjunto, pero los nexos o enlaces que se crean entre ellos codifican la futura
respuesta del sistema. Una característica importante es su capacidad de
emular el conocimiento y razonamiento humano para dar soluciones a
problemas que son difícilmente descritos por algoritmos tradicionales.
Atencio, F. (1992), una Red Neuronal Artificial es un conjunto de unidades
procesadoras o neuronas artificiales altamente interconectadas en la red; de
igual forma, Hilera y Martínez (1995), señalan que son una combinación de
nodos interconectados entre sí, operando en forma paralela, alcanzando
resolver problemas relacionados con el reconocimiento de patrones y formas,
predicción, codificación, clasificación, control y optimización.
Por otra parte, Dimitar, F. (1993) Indica que las Redes Neuronales
Artificiales “son técnicas de computación emergente que tratan de emular el
sistema biológico Neural”, basándose de esta manera en un simple principio
básico de la eficiencia sináptica y aprendizaje, donde señala que si una
neurona recibe una señal de entrada proveniente de otra neurona (estímulo),
33
y si ambas están activas simultáneamente, entonces, debe incrementar la
eficiencia sináptica entre ambas neuronas(respuesta).
Emulando esta hipótesis, se estructura computacionalmente una serie de
algoritmos a los que se les presenta un conjunto de datos extraídos del
mundo real, patrones de entrada con su respectivo componente de salida, con
la finalidad de buscar una configuración de peso (conexiones sinápticas) que
presente o aproxime todos los patrones de entrada (estimulo) a sus
respectivos componentes de salida (respuesta).
Una red artificial es un sistema de procesamiento de información
compuesto por un gran número de elementos procesadores interconectados.
Cada elemento o unidad de proceso computa su actividad localmente,
basándose en las actividades de las unidades a las cuales están conectadas
y a la fuerza de sus conexiones con estas unidades.
Estas unidades procesadoras en red mantiene sólo una parte de la
información dinámica, capaz de ejecutar solo pequeñas operaciones de
calculo (sumar entradas, calcular un nuevo nivel de activación, o comparar
entradas con un valor umbral). La salida de una unidad procesadora, es
calculada por el nivel de activación, enviada a la unidad procesadora
receptora, mediante la conexión de las dos unidades procesadoras. De esta
manera, las neuronas artificiales representan tanto características
funcionales, como configuraciones topológicas de las neuronas en el cerebro.
La finalidad del estudio de la neurona biológica, no es la creación de un
modelo capaz de interactuar como lo haría un cerebro orgánico, sino de
34
reconocer y tratar datos tal y como lo harían las neuronas, como por ejemplo
imágenes, sonidos, habla o escritura, entre otros, para lo cual, las tecnologías
digitales no parece la forma más convenientes.
Por lo tanto, las redes neuronales se basan en dar soluciones a problemas
de la realidad, utilizando para ello la capacidad de manejar las impresiones,
incertidumbres y reacciones del humano ofreciendo así, alternativas de fácil
compresión e implementación, demostrando la habilidad para proporcionar
soluciones poderosas en áreas donde la computación tradicional ha tenido
dificultad durante años.
Obidol, P. (1997,p.57), señala que los últimos avances tecnológicos de las
RNA son aprovechados en aplicaciones que necesitan desarrollar modelos
para pronosticar situaciones complejas, como en el caso de la aplicación a
ciertas tarjetas de crédito, donde comprueba posibles fraudes a través del
control y verificación que se lleva en uso de las mismas, donde cada
transacción es registrada para constituir los datos históricos del usuario. El
control Neural, es utilizado en las torres de control de los aeropuertos más
modernos para facilitar el trabajo de los operadores, al igual que su empleo en
el reconocimiento de patrones por satélites artificiales y estaciones
meteorológicas para el procesamiento de la voz. Por, otro lado las RNA son
usadas en los VHS para corregir las imágenes defectuosas y poderlas
transmitir con nitidez.
En el campo de la Biología, se emplea RNA para realizar, modelos de
retina ocular, el cerebro y otros sistemas. En las empresas son usadas para
35
evaluar formaciones geológicas y petrolíferas; también son utilizadas en
finanzas, cuando se identifican firmas falsas, al igual que en algunas
industrias cuando utilizan los sistemas de control y robots automatizados con
visión artificial y reconocimientos de patrones, y otros tipos de censores
también son alimentados por sistemas neutrales.
En el campo de la medicina hacen uso de esta tecnología para lectores de
rayos x, monitorización en cirugías y predicciones de reacciones adversas a
diferentes fármacos; En la milicia, las RNA son aplicadas para la clasificación
en señales de radal y para la creación de armamentos inteligentes que se
incorporan en aviones y barcos de guerra.
1.- EL CEREBRO HUMANO: Modelo Biológico para las Redes
Neuronales Artificiales.
Desde el siglo XIX han aparecido diferentes métodos para estudiar la
operación del cerebro humano en forma sistemática. La neuropsicología esta
basada en el método de análisis de las relaciones entre las características del
cerebro con aspectos del comportamiento humano. Usando tal método fue
demostrado que las funciones motoras que coordina el cerebro y sus
correspondientes sentido está localizado con precisión dentro de su
estructura.
Raw, J, (1989), señala que, los sistemas sensoriales del cuerpo humano
convierten los estímulos que recibe del medio en impulsos nerviosos,
36
constituido por neuronas, las cuales están controladas por el cerebro (órgano
más complejo del cuerpo humano).
De esta manera, sé comenzó a estudiar profundamente el funcionamiento
del cerebro y su estructura, generando esquemas muy similares al
funcionamiento de las neuronas, ello originó la posibilidad de crear sistemas
que emulen este comportamiento, dentro de las cuales se encuentra las
redes neuronales.
Para el referido autor, el desarrollo de las redes neuronales artificiales se
inspiró básicamente en la estructura y funcionamiento de los sistemas
nerviosos, específicamente en el estudio de las neuronas como elemento
principal del sistema nervioso central, estas son células nerviosas capaces
de recibir señales provenientes de otras neuronas, procesar estas señales,
generar pulsos nerviosos, conducir estos pulsos y transmitirlo a otras
neuronas. Morfológicamente hablando una neurona es una célula que posee
un cuerpo en forma piramidal o esférica que contiene el núcleo.
Las neuronas se diferencian de otras células del cuerpo, por su capacidad
de comunicación. Estas envían mensajes a cientos o miles de neuronas, y a
la vez reciben mensajes de un número igualmente elevado de ellas.
Reconoce especialistas en el área que, el sistema nervioso humano, es de
una complejidad desconcertante. Un ejemplo de ello es que un estímulo de
10 a las once neuronas participa quizás en 10 a las 15 interconexiones sobre
rutas de transmisión que pueden tener alcance de un (1) metro o más. Cada
neurona comparte muchas características con otras células en el cuerpo,
37
pero tiene capacidades únicas para recibir, procesar y transmitir señales
electroquímicas sobre las rutas Neurales que comprenden el sistema de
comunicación del cerebro.
La neurona transmite la información a través de un conjunto de elementos
que la conforman, el cuerpo celular, las dendritas constituidas por un
conjunto de extensiones tubulares que reciben la información y un único
axón, que difiere de las dendritas en su forma, pero que la constituye la
conexión de salida usada por la neurona para emitir señales, como se ilustra
a continuación:
FIGURA 4. Estructura de la Neurona Biológica. Fuente: www.geocities.com
/silicomvalley/campus/9756/rna.htm
En la FIGURA 4 se muestra cómo es la estructura de una neurona
biológica típica. Las dendritas se extienden desde el cuerpo de la célula a
otras neuronas donde ellas reciben señales a un punto de conexión llamado
38
sinapsis, entendido, como el intercambio de información entre neuronas, así
como también, el punto de unión en el cual la información es transferida de
una célula a otra. La sinapsis es hecha frecuentemente entre el axón de una
célula y las dendritas de otra, sin embargo, hay otro tipo de uniones
sinápticas entre axón y axón, entre dendrita y dendritas y el cuerpo de una
célula.
Una neurona típica puede tener de 1.000 a 10.000 sinapsis y pueden
recibir información de aproximadamente 1.000 neuronas.
En una sinapsis, el axón generalmente se ensancha para formar un botón
terminal, siendo ésta la parte de unión donde se distribuye la información.
Este contiene estructuras espirales mínimas llamadas vesículas sinápticas.
Cada vesícula sinápticas puede contener miles de moléculas de un
transmisor químico que al llegar un impulso nervioso al botón terminal,
algunas de las vesículas descargan su contenido en la hendidura estrecha
que separa el botón de la membrana de la dendrita de otra célula, la cual es
designada para recibir el mensaje químico y de esta manera forma la
información que es despachada de una neurona a otra. La activación de una
neurona en la generación de impulsos nerviosos, refleja la activación de
cientos de sinapsis incidiendo en la neurona.
En general, una neurona envía su salida a otras por su axón. El axón lleva
la información por medio de diferencias de potencial, u ondas de corriente,
que depende del potencial de la neurona. Este proceso es a menudo
modelado, como una regla de propagación. La neurona recoge las señales
39
por su sinapsis sumando todas las influencias excitadoras e inhibitorias. Si
las influencias positivas dominan, entonces la neurona da una señal positiva
y manda este mensaje a otras neuronas por su sinapsis de salida. En este
sentido la neurona puede ser modelada como una simple función escalón o
puede ser interpretada como un fenómeno eléctrico.
Este contorno funcional básico tiene muchas complejidades y
excepciones, sin embargo, la mayoría de las Redes Neuronales Artificiales
modelan estas simple características. Bajo este enfoque las mismas
representan copias análogas de las neuronas biológicas para tratar de imitar
y reproducir las características del pensamiento humano basado en la
actividad cerebral. A partir de los dispositivos básicos de proceso o neuronas
se puede generar el funcionamiento neurobiológico, que representa la base
elemental de las redes neuronales artificiales.
2.- LA NEURONA ARTIFICIAL.
Siguiendo a Raw J. (1989), la neurona artificial fue diseñada para imitar
las características de primer orden de la neurona biológica. Donde, una serie
de entrada es aplicada a cada una, representando la salida de otra neurona.
Cada entrada es multiplicada por un peso correspondiente, análogo a una
fuerza sináptica, donde todas las entradas son pesadas y luego sumadas
para determinar el nivel de activación de la neurona.
Dentro de la diversidad de los paradigmas de redes, casi todas están
basadas en esta configuración. En esta se presentan una serie de entradas
40
denominadas X1, X2,...,Xn, estas son aplicadas a la neurona artificial. Ellas,
colectivamente referenciadas como un vector X corresponden a las señales
en la sinapsis de una neurona biológica. Cada señal es multiplicada por un
peso asociado W1, W2, ...Wn, antes de que sea aplicada al bloque de
sumarización, correspondiendo a la fuerza de una simple conexión biológica
sináptica (el conjunto de pesos es referenciados colectivamente como un
vector W).
El bloque de sumarización, corresponde aproximadamente al cuerpo de la
célula biológica, suma todas las entradas pesadas algebraicamente,
produciendo una salida NET. Esta puede ser expresada en notación de
vector como sigue:
Ecuación #1 NET=X*W
Esta descripción representa el modelo diseñado en 1957, por el psicólogo
Frank Rosenblatt, llamado El Perceptrón. Donde luego de llegar aprender
una serie de patrones, era capaz de reconocer otros similares aunque no se
le hubiera presentado anteriormente. Sin embargo, presentaba limitaciones,
la mas conocida era su incapacidad para resolver el problema de la función
OR exclusiva, que luego fue superado con la creación de los Perceptrones
Multicapas.
3.- COMPONENTES DE UNA RED NEURONAL ARTIFICIAL.
Los componentes de una neurona artificial según Atencio F. Con apoyo de
la teoría aportada por Hilera y Martínez (1995) son:
41
3.1.- UNIDADES PROCESADORAS. Estas unidades procesadoras pueden representar:
üü Un concepto especifico, tal como características, letras y
palabras.
üü Una parte indescriptible de un largo concepto (el subpatrón),
la idea es que varias unidades juntas pueden ser iguales o
representar un concepto.
El trabajo principal de cada unidad procesadora es recibir entradas desde
sus unidades más cercanas (las cuales se encuentran en la capa anterior
más cercana), calcular una salida y enviar esa salida a las unidades de la
próxima capa.
Las unidades procesadoras en RNA pueden ser clasificadas como uno de
los siguientes tipos:
üü Unidades de entrada, reciben las características fuentes del patrón,
calculan sus salidas con una función de activación, y transmiten
estas salidas a las unidades de la siguiente capa más cercana.
üü Unidades de salida, son las receptoras finales de entradas, calculan
y transmiten sus salidas a receptores externos (manipuladores, otras
redes, sistemas expertos, etc.)
üü Unidades internas u Ocultas, no tienen contacto con el exterior,
sólo reciben entradas desde capas anteriores, calculan sus salidas y
42
las envían a unidades receptoras de la siguiente capa de la Red
Neuronal Artificial.
3.2.-ESTADO DE ACTIVACION. Cada unidad procesadora tiene un nivel de activación, la cual es
representada con una cantidad continua de valores entre 0 y 1, esto es, el
nivel de activación de cada una de las unidades, las cuales representa el
estado de la red:
üü El nivel de activación de las unidades de entrada representa la actual
entrada externa a la red.
üü El nivel de activación de las unidades de salida representa la salida
actual transmitida por receptores externos.
üü Las unidades internas en una red representan las características con
el cual son representados los patrones de entrada e influyen sobre
los patrones de salida producidos por la red.
3.3.- FUNCIÓN DE SALIDA. Cada unidad procesadora transmite su salida a cada neurona de la
siguiente capa más cercana. Esta salida, es un valor escalar, generalmente
entre 0 y 1, este es determinado desde el nivel de activación de la unidad
procesadora. Asociada con cada unidad procesadora, esta función (F), la
cual es definida como el valor de salida de la unidad. Por lo tanto, la relación
43
entre el nivel de activación y el valor de salida para cualquier unidad
procesadora puede ser representada matemáticamente de la siguiente
forma:
Ecuación #2 OUTj= Fj (aj)
En algunos modelos de RNA, la función de salida, Fj, es unitaria. En otros
modelos la función de salida es umbral o función de activación. Teniendo una
función de salida calculando umbrales lógicos, previene a la red de hacer
“suposiciones falsas” cuando los patrones de entrada presentados no tienen
realmente alguna de las características o subcaracterísticas parecidas que
en la red tiene que “aprender”.
3.4.- PATRON DE CONECTIVIDAD ENTRE LAS UNIDADES
PROCESADORAS.
Cada unidad procesadora esta conectada por un peso a cada una de las
unidades de la capa siguiente, excepto en la capa de salida. Este patrón de
conectividad y la fuerza de su conexión (peso), influyen sobre la respuesta
de la red.
üü Es positivo, la conexión es llamada excitatoria. La unidad i activa a
la j.
üü Es cero, la conexión es llamada inactiva. La unidad i no afecta la
activación de la j.
44
üü Es negativo, la conexión es llamada inhibitoria. La unidad i
desconecta la activación de la unidad j. El valor absoluto del Peso,
(Wij), representa la fuerza con la cual la unidad i excita o inhibe la
unidad j.
3.5.- REGLA DE PROPAGACIÓN.
Se describe como la entrada a una unidad, multiplicada por (la entrada es
la salida calculada en otra unidad de la capa anterior) la fuerza de conexión
(peso), es combinada para calcular la entrada NET (N), a la unidad
procesadora.
Descrito, en la forma matemática:
Ecuación #3 Nj=WijOj
3.6.- FUNCION DE ACTIVACION.
La señal NET es además, usualmente procesada por una Función de
Activación (F) para producir la señal de salida de la neurona, OUT, O. Esta
puede ser una simple función lineal,
Ecuación #4 OUT=K(NET)
Donde K es una constante, una función de entrada,
Ecuación #5 OUT= sí NET mayor que t
Ecuación #6 OUT = 0 de otra manera.
45
Donde (t) es un valor constante de umbral, o una función que exactamente
simula la característica de transferencia no lineal de la neurona biológica y
permite funciones de redes más generales.
Si tenemos un bloque (F) que afecta la salida NET y produce la señal
OUT, entonces, el bloque de procesamiento (F) comprime el rango de NET,
de manera que OUT nunca exceda algún limite bajo a pesar de los valores
de NET, entonces (F) es llamada una función cuadrática. Esta función es
frecuentemente la función logística o “Signoide” (significa forma de S). Esta
función es expresada matemáticamente como:
Ecuación #7 F(X)=1/(1+e-x),
De esta manera, si x es la entrada total,
Ecuación #8 OUT=1/(1+e-x),
Por analogías a los sistemas eléctricos se habla de una función de
activación definiendo una ganancia no lineal para la neurona Artifical. Esta
ganancia es calculada encontrando el radio del cambio en OUT a un
pequeño cambio en NET, así, la ganancia es el declive de la curva a un nivel
de excitación especifico.
Estos varia desde un valor bajo de grandes excitaciones negativas (la
curva es casi horizontal) a un valor alto de excitación cero, y esta decae otra
vez de manera que la excitación llega a ser grande y positiva.
Entonces, se puede decir que la función de activación a partir del estado
que existía en la combinación con las entradas de los pesos de las
46
conexiones. Las funciones más comunes son la función rampa p signoidal y
gaussiana.
3.7.- REGLA DE APRENDIZAJE. La regla de aprendizaje define como la red es modificada en respuesta a
experiencia (casos de entrenamientos presentados al sistema). Los pesos de
las conexiones entre las neuronas representan el conocimiento de las redes
neuronales, es por ello que la red aprende modificando los valores de sus
pesos; donde cada modelo neuronal utiliza sus propias técnicas de
aprendizaje. Actualmente la forma más usada para modificar la red es la de
actualizar los pesos, basados sobre las reglas de aprendizaje Hebianas.
4.- TOPOLOGÍA DE LAS REDES NEURONALES ARTIFICIALES. Hilera y Martínez (1995), es la organización y disposición de las neuronas,
las cuales forman capas situadas dentro de las estructuras de la misma,
conectadas a las respectivas entradas y salidas. Las capas, conocidas
también como niveles, representan el grupo conformado por neuronas o
nodos que reciben información de una misma fuente y sus salidas se dirigen
a cada neurona de la siguiente capa.
Las RNA Multicapas están formadas por un número variable de capas
ocultas o de proceso, al igual que los nodos en cada capa, y su
comunicación se realiza cuando la salida de una capa provee la entrada a la
47
capa siguiente, además, estas son redes complejas y por ello ofrecen más
capacidades computacionales.
Villaquiran, A. (1992, p.59), señala que las RNA con al menos una capa
oculta pertenecen a este tipo de redes, las cuales deben incluir una función
de activación, entre capas para poder tener mayor poder de computación o
reconocimiento. Igualmente se puede decir, que un número elevado de
capas es improductivo, ya que aumenta el tiempo de entrenamiento y el
número de iteraciones realizadas. En general, una red de tres capas es
suficiente para la mayoría de las aplicaciones.
Los aspectos más característicos de las RNA son la estructura de
conexión, el tamaño de la red y la elección entre ACON y OCON.
4.1.- ESTRUCTURAS DE CONEXIÓN DE ATRÁS HACIA DELANTE.
Una red neuronal se determina por la neurona y la matriz de pesos. El
comportamiento de la red depende en gran medida del comportamiento de
la matriz de pesos. Hay tres capas de neuronas: la de Entrada, las ocultas y
la de salida. Entre dos capas de neuronas existe una red de pesos de
conexión, que puede ser de los siguientes tipos: Hacia delante, hacia atrás,
lateral y de retardo, como se muestra en la siguiente figura:
48
FIGURA 5. Estructuras de Conexión. Fuente: www.gc.ssr.upm.es/inves/
neural/ann2/concepts/structnn.htm
üü Conexiones hacia Delante, para todos los modelos neuronales, los
datos de las neuronas de una capa inferior son propagados hacia las
neuronas de la capa superior por medio de las redes de conexiones
hacia delante.
üü Conexiones hacia atrás, estas conexiones llevan los datos de las
neuronas de una capa superior a otras de la capa inferior.
üü Conexiones laterales, un ejemplo típico de este tipo es el circuito “el
ganador toma todo” (winner-takes-all), que cumple un papel
importante en la elección del ganador.
üü Conexiones con retardo, estos elementos se incorporan en las
conexiones para implementar modelos dinámicos y temporales, es
decir, modelos que precisan la memoria.
49
Las conexiones sinápticas pueden ser total o parcialmente
interconectadas. También, es posible que las redes sean de una capa con el
modelo de pesos hacia atrás o bien el modelo multicapa hacia delante. Así
mismo, se pueden conectar varias redes de una sola capa para dar lugar a
redes más grandes.
Hilera y Martínez (1995), afirman que, las conexiones de las redes
multicapa se denominan hacia delante, feedforward o no recurrentes, cuando
las neuronas de una capa reciben señales de entrada de la capa anterior y
las envían a las capas más cercanas a la salida de la red, y ninguna de las
neuronas es entrada de neuronas de la misma capa.
Villaquiran (1992) señala que, en las redes recurrentes o propagación
hacia atrás (feedback) las salidas de las neuronas pueden ser conectadas de
alguna manera a la entrada de la propia neurona (auto recurrente) o a la
entrada de otras neuronas ubicadas en capas previas; Hilera y Martínez,
añaden que las redes que tienen la capacidad de circular información hacia
delante y hacia atrás, en el proceso de funcionamiento de la red, se
denominan conexiones hacia delante / conexiones hacia atrás
(feedforward/feedback).
4.2.- TAMAÑO DE LAS REDES NEURONALES. En una red multicapa de propagación hacia delante, puede haber una o
más capas ocultas entre las capas de entrada y salida. El tamaño de las
50
redes depende del número de capas y del número de neuronas ocultas por
capa.
Números de capas: en una red multicapa hay una o más capas de
neuronas ocultas entre la entrada y la salida. El número de capas se cuenta
a menudo a partir del número de capas de pesos (en vez de las capas de
neuronas).
Números de unidades ocultas: Está directamente relacionado con las
capacidades de la red. Para que el comportamiento de la red sea correcto
(esto es, generalización), se tiene que determinar apropiadamente el número
de neuronas de la capa oculta.
4.3.- APROXIMACIONES ACON FRENTE A OCON. El problema de cuántas redes son necesarias para la clasificación en
multicategorias. Típicamente, cada nodo de salida se usa para representar
una clase. Por ejemplo, en un problema de reconocimiento alfanumérico, hay
36 clases; así que en total habrá 36 nodos de salida. Dado un patrón de
entrada en la fase de prueba, el ganador (i.e., la clase que gana) es
normalmente el nodo que tiene el valor más alto a la salida.
Dos posibles tipos de arquitectura son “All-Class-in-One-Network”
(OCON), esto es, una red para cada clase. En la aproximación ACON, todas
las clases son reconocidas dentro de una única súper red. En algunos casos
es ventajoso descomponer esta macro red en varias subredes más
pequeñas. Por ejemplo, una red de 36 salidas se puede decomponer en 12
51
subredes, cada una responsable de tres salidas. La descomposición más
extrema es la llamada OCON, donde una subred se dedica para una sola
clase. Aunque el número de subredes en la estructura OCON es
relativamente largo, cada subred individual tiene un tamaño menor que la red
ACOM. Esto se muestra con las siguientes figuras:
FIGURA 6. La Red Entera.
FIGURA 7. Varias subredes.
-+
Fuente: www.gc.ssr.upm.es/inves/neural/ann2/concepts/structnn.htm
52
5.- CARACTERÍSTICAS DE LAS REDES NEURONALES ARTIFICIALES.
Estas han permitido que las mismas sirvan como herramienta tecnológica
para la solución de muchos problemas donde otras tecnologías no pueden
ser usadas.
Las características más nobles asociadas a las Redes Neuronales
Artificiales pueden resumirse en las siguientes:
üü Pueden Aprender, durante la etapa de entrenamiento la red
modifica la fuerza de conexión (los pesos), entre sus neuronas hasta
producir una salida adecuada. Este proceso de aprendizaje es
realizado mediante un algoritmo de entrenamiento, el cual le
permitirá poder reconocer o clasificar patrones.
üü Generalizan, una vez aprendiendo un par de patrones de entrada, tal
vez asociado con una salida, ante la presencia de un patrón
distorsionado del patrón de entrada original, es capaz de reproducir
el patrón de salida aprendiendo el cual fue entrenado. Una vez
entrenada la red, la respuesta de esta puede ser, hasta cierto grado
insensible a variaciones menores en la entrada, lo cual les da la
habilidad de poder ver a través del ruido y la distorsión.
üü Pueden hacer Abstracción, algunas Redes Neuronales pueden
sacar a partir de un conjunto de patrones de entrada, un conjunto de
patrones ideales como salida, en este caso se realiza un proceso de
53
auto-organización, ya que la red no se le muestran los patrones de
salida deseados.
6.- APLICACIONES.
Con el fin de llegar el entendimiento global de las ANNs, adoptamos la
siguiente perspectiva, llamada top-down que empieza por la aplicación se
pasa al algoritmo y de aquí a la arquitectura: (Como se observa en la
FIGURA 8).
Esta aproximación a las ANNS está motivada por la aplicación, basada en
la teoría y orientada hacia la implementación. Las principales aplicaciones
son para el procesado de señal y el reconocimiento de patrones. La primera
etapa algorítmica representa una combinación de la teoría matemática y la
fundamentación heurística por los modelos Neurales. El fin último de ésta
aproximación es la construcción de neurocomputadores digitales, con la
ayuda de las tecnologías VLSI y el procesado adaptivo, digital y paralelo.
54
FIGURA 8. Metodología Aplicada. Fuente: www.gc.ssr.upm.es/inves/neural
/ann2/concepts/app.htm
Desde el punto de vista de las aplicaciones, La ventaja de la RNA reside
en el procesado paralelo, adaptivo y no lineal. Las RNA han encontrado
muchas aplicaciones con éxito en la visión Artifical, en el procesado de
señales e imágenes, reconocimiento del habla y de caracteres, sistemas
expertos, análisis de imágenes médicas, control remoto, control de robots,
inspección industrial y exploración científica. El dominio de aplicación de las
RNA se puede clasificar de la siguiente forma: Asociación y clasificación,
regeneración de patrones, regresión y generalización, y optimización.
üü Asociación y clasificación, en esta aplicación, los patrones de
entrada estáticos o sánelas temporales deben ser clasificadas o
reconocidas. Idealmente, un clasificador debería ser entrenado para
que cuando se le presente una versión distorsionada ligeramente del
55
patrón, pueda ser reconocida correctamente sin problemas. De la
misma manera, la red debería presentar cierta inmunidad contra el
ruido, siendo ser capaz de recuperar una señal “limpia” de ambientes
o canales ruidosos. Esto, es fundamental en las aplicaciones
holográficas, asociativas o regenerativas.
üü Asociación, de especial interés son las dos clases de asociación:
auto asociación y heteroasociación. El problema de la auto
asociación es recuperar un patrón enteramente, dada una
información parcial del patrón deseado. La heteroasociación es
recuperar un conjunto de patrones B, dado un patrón de ese
conjunto. Los pesos en las redes asociativas son a menudo
predeterminados basados en la regla de Hebb. Normalmente, la
auto correlación del conjunto de patrones almacenado determina los
pesos en las redes auto asociativas. Por otro lado, la correlación
cruzada de muchas parejas de patrones se usa para determinar los
pesos de la red de Heteroasociación.
üü Clasificación no Supervisada, para esta aplicación, los pesos
sinápticos de la red son entrenados por la regla de aprendizaje no
supervisado, esto es, la red adapta los pesos y verifica el resultado
basándose en los patrones de entrada.
üü Clasificación supervisada, esta clasificación adopta algunas formas
del criterio de interpolación o aproximación. En muchas aplicaciones
56
de clasificación, por ejemplo, reconocimiento de voz, los datos de
entrenamiento consisten de pares de patrones de entrada y salida,
siendo en este caso conveniente, adoptar las redes Supervisadas,
como las bien conocidas estudiadas redes de retropropagación. Este
tipo de redes son apropiadas para las aplicaciones que tienen una
gran cantidad de clases con limites de separación complejos.
üü Completar los Patrones, en muchos problemas de clasificación, una
cuestión a solucionar es la recuperación de información, esto es
recuperar el patrón original dada sola una información parcial. Hay
dos clases de problemas: temporales y estáticos. El uso apropiado
de la información contextual es la llave para tener éxito en el
reconocimiento.
üü Generalización, se puede extender a un problema de interpolación.
El sistema es entrenado por un gran conjunto de muestras de
entrenamiento basados en un procedimiento de aprendizaje
supervisado. Una red se considera que está entrenada con éxito si
puede aproximar los valores de los patrones de entrenamiento y
puede dar interpolaciones “suaves” para el espacio de datos no
entrenado. El objetivo de la Generalización es dar una respuesta
correcta a la salida para un estímulo de entrada que no ha sido
entrenado con anterioridad. El sistema debe inducir la característica
saliente del estímulo a la entrada y detectar la regularidad. Tal
57
habilidad para el descubrimiento de esa regularidad es crítica en
muchas aplicaciones. Esto hace que el sistema funcione eficazmente
en todo el espacio, incluso ha sido entrenado por un conjunto
limitado de ejemplos. Esto se observa en la siguiente figura:
FIGURA 9. Generalización. Fuente: www.gc.ssr.upm.es/inves/neural/ann2/
concepts/app.htm
üü Optimización, las RNA es una herramienta interesante para la
optimización de aplicaciones, que normalmente implican la
búsqueda del mínimo absoluto de una función de energía. Una vez
que se define la función de energía, entonces la determinación de
los pesos sinápticos se hace rápidamente. Para algunas
58
aplicaciones, la función de energía es fácilmente deducible. En otras,
sin embargo, esta función de energía se obtiene de criterios de costo
y limitaciones especiales. El mayor problema asociado al problema
de optimización es la alta posibilidad de converger hacia un mínimo
local, en ves del mínimo absoluto. Para combatir este problema se
utilizan algunas propuestas estadísticas, como por ejemplo
procedimientos estocásticos. (ver GRAFICO 1)
GRAFICO 1. Optimización. Fuente: ww.gc.ssr.upm.es/inves/neural/ann2/
concepts/app.htm
59
7.- PARADIGMAS NEURALES.
Se denomina así los diferentes núcleos o métodos que han sido
propuestos, por diferentes investigadores, para entrenar y resolver diferentes
tipos de problemas a través de las Redes Neurales artificiales.
Existen actualmente diferentes tipos de Paradigmas Neurales o modelos
de Redes Neuronales Artificiales, los cuales se diferencian por la
arquitectura de la red, el tipo de aprendizaje y el método o algoritmo usado
para entrenar la red.
El algoritmo mas utilizado es el de Retropropagación, esto se debe a que
permite ser utilizado para resolver casi todo tipo de problema que pueda
resolverse con Redes Neuronales Artificiales. Para una referencia global de
estos paradigmas puede observarse en la TABLA 1 donde se muestran en
forma general las características más resaltantes de los mismos.
TABLA 1. Paradigmas Neuronales.
Paradigmas Creador Arquitectura Aprendizaje Aplicación Perceptrón (Monocapa)
Rosenblatt (1957-60)
Monocapa
Supervisado
Reconocimiento de Patrones
Perceptrón (Multicapas)
Widrow y Hoff (1960)
Heteroasociativa
Supervisado
Reconocimiento de patrones
LMS (Least MeanSquare)
Widrow y Hoff(1960)
Monocapa
Supervisado
Clasificación
Hopfield
Teuvo Kohonen (1980-84)
Recurrente (Monocapa)
Supervisado
Reconocimiento de patrones
Kohonen Rumelhart,Hinton y Willians.
(986)
Heteroasociativa (Monocapa)
No Supervisada
Reconocimiento de Patrones
retropropagación (Backpropagation)
Rumelhart, hinton y Willians.
Multicapas Supervisado Reconocimiento de Patrones
60
(1986) Counter-
Propagation Robert Hecht
(1987) Multicapas Supervisado
y no supervisado
Comprimir data para visualizar
imágenes Memoria
Asociativa Bidireccional
(BAM)
Varios (1982-1987)
Heteroasociativa Supervisado Reconocimiento de patrones, y clasificación
Cognitron/ Neocognitron
Fukushima (1975-1987)
Multicapas
No Supervisado
Reconocimiento de patrones e
imágenes Teoría de
Resonancia Adaptiva
(ART)
Carpenter, Grossberg (1986-87)
Multicapas
No supervisado
Reconocimiento de patrones y clasificación.
8. ENTRENAMIENTO DE LAS REDES NEURONALES ARTIFICIALES.
De todas las características interesantes de las RNA, ninguna sorprende
tanto como su habilidad para aprender. Su entrenamiento muestra mucho
paralelismo al desarrollo intelectual del ser humano, que puede ser visto
como si hubiésemos alcanzado el entendimiento fundamental de este
proceso. Una red es entrenada para que la aplicación de un conjunto de
entradas produzca la serie de salidas deseada (o al menos consistente).
Cada serie de entrada (o salida) es referenciada como un vector. El
entrenamiento se realiza secuencialmente aplicando vectores de entrada,
mientras se ajustan los pesos de la red gradualmente convergen a valores
tales que cada vector de entrada produce el vector de salida deseado.
61
Colina, E, (1996,p.15) sostiene que los métodos de aprendizaje para las
RNA están agrupados en dos categorías: los mecanismos o métodos de
aprendizaje supervisados y los no supervisados. Paralelamente Hilera y
Martínez (1995) definen el aprendizaje supervisado como aquel que se
realiza mediante un entrenamiento controlado por un supervisor externo que
dictamina el resultado y deberá proporcionar la red después de procesar los
datos de entrada, lo que se denomina salida deseada. A su vez, Atencio, F
(1992) expresa que en el entrenamiento supervisado necesita agrupar cada
entrada con su salida deseada, para así formar lo que se conoce como
pares de entrenamiento; pero difiere, añadiendo que el concepto de
aprendizaje supervisado no puede ser aplicado a los modelos biológicos del
cerebro humano.
Simultáneamente, Villarquiran (1992) afirma que el entrenamiento
supervisado se realiza a través de una serie de ensayos sobre un conjunto
de patrones de entrenamiento en forma de datos con los cuales la red es
alimentada. Usualmente un vector de entrada es aplicado, la salida de la red
es calculada y comparada al vector destino correspondiente, y la diferencia
(error) es retroalimentada a través de la red y sus pesos son cambiados de
acuerdo a un algoritmo que tiende a minimizar el error. Los vectores del
conjunto de entrenamiento son aplicados secuencialmente, se calculan los
errores y los pesos ajustados para cada vector, hasta que el error para cada
conjunto de entrenamiento completo sea de un nivel bajo aceptable.
62
En general luego de cada intento donde la red compara su salida con la
salida deseada, se corrige cualquier diferencia y se intenta nuevamente,
calculando o iterando, hasta que la salida alcanza un error de nivel mínimo o
aceptable.
En cuanto al aprendizaje no supervisado, Atencio, F. Señala que este fue
desarrollado por Kohonen en 1984 y no requiere de un destino para las
salidas, por lo tanto no compara una respuesta ideal predeterminada, de
esta forma, la serie de entrenamiento sólo consiste en vectores o datos de
entrada, con lo cual coincide Villaquiran, al sostener que este aprendizaje no
requiere una respuesta o en su defecto una evaluación del desempeño de la
red, además añade que la red se organiza a si misma de tal manera que
determina su propio modo de clasificar las entradas.
Por otra parte, este algoritmo de entrenamiento modifica los pesos de la
red para producir vectores de salida que son consistentes, esto es, ambas
aplicaciones de los vectores de entrenamiento o aplicación de un vector que
es suficientemente similar a este, producirán los mismos patrones de salida.
El proceso de entrenamiento, por lo tanto extraerá las propiedades
estadísticas de una serie de entrenamiento y agrupara vectores similares en
clases. Es por ello, que Hilera y Martínez mencionan que este tipo de
aprendizaje, también sé le conoce como auto supervisado, ya que no
necesitan de la influencia externa que ajuste los pesos de las conexiones
entre sus nodos.
63
9.- FASES DE DESARROLLO DE LA RNA.
Existen dos fases en toda aplicación de las redes neuronales, según lo
afirma Atencio, F (1992): La fase de aprendizaje o entrenamiento y la fase
de prueba, En la fase de entrenamiento, se usa un conjunto de datos o
patrones de entrenamiento para determinar los pesos (parámetros de
diseño) que definen el modelo neuronal. Una vez entrenado este modelo, se
usará en la llamada fase de prueba o funcionamiento directo, en la que se
procesan los patrones de prueba que constituyen la entrada habitual de la
red, analizándose de esta manera las prestaciones definitivas de la red.
üü Fase de prueba: Los parámetros de diseño de la red neuronal se
han obtenido a partir de unos patrones representativos de las
entradas que se denominan patrones de entrenamiento. Los
resultados pueden ser tanto calculados de una vez como adaptados
interactivamente, según el tipo de red neuronal, en función de las
ecuaciones dinámicas de prueba. Una vez calculados los pesos de
la red, los valores de las neuronas de la última capa, se comparan
con la salida deseada para determinar la validez del diseño.
üü Fase de aprendizaje: Una característica de las redes neuronales es
su capacidad de aprender. Aprenden por la actualización o cambio
de los pesos sinápticos que caracterizan a las conexiones. Los
pesos son adaptados de acuerdo a la información extraída de los
64
patrones de entrenamiento nuevos que se van presentando.
Normalmente, los pesos se obtienen optimizando (minimizando o
maximizando) alguna “función de energía”. Por ejemplo, un criterio
popular en el entrenamiento supervisado es minimizar el least-
square-error (error cuadrático medio) entre el valor del maestro y el
valor de salida actual.
Las aplicaciones del mundo real deben acometer dos tipos diferentes de
requisitos en el procesado. En un caso, la prueba en tiempo real pero el
entrenamiento ha de realizarse “fuera de línea”. En otras ocasiones, los dos
procesos (el de prueba y entrenamiento en tiempo real). Estos dos requisitos
implican velocidades de proceso muy diferentes, que afectan a los
algoritmos y hardware.
10.- METODOLOGÍA PARA DESARROLLAR REDES NEURONALES
ARTIFICIALES.
Para explotar o conocer más a fondo todo el recurso disponible en las
Redes Neuronales Artificiales es necesario hacer uso de una metodología
para el desarrollo de las mismas.
Siguiendo una metodología se acelera la aceptación general de las Redes
Neuronales como un importante recurso en las nuevas herramientas
computarizadas, y así, los análisis de sistemas y usuarios podrán entender
con mayor claridad las capacidades y limitaciones de la tecnología de las
Redes Neuronales Artificiales.
65
Esta parte del capitulo estará dedicado a presentar un conjunto de fases,
que permitirán servir de guía básica para optimizar el desarrollo de
aplicaciones basadas en Redes Neuronales Artificiales y para construir RNA
haciendo uso de aplicaciones existentes.
El objetivo, es proponer una metodología para el desarrollo de Redes
Neuronales Artificiales, la cual consiste en presentar actividades
identificables para un proceso que necesita estructuración y organización.
Obvios beneficios incluye el uso de metodología como el control costos,
incremento de exactitud y consistencia, eficiente uso de recursos,
incremento en la administración confidencial y altas satisfacciones al
usuario.
Muchas de las metodologías propuestas para el desarrollo de Redes
Neuronales presenta un fuerte énfasis en la experimentación y desarrollo
simultáneo de múltiples vías, y comienzo con soluciones generales y
estrechamiento del conjunto de enfoques factibles. El esquema operativo
para la construcción de la red, consta de las siguientes fases:
Fase 1.- Selección de los patrones de entrenamiento.
Se seleccionan un conjunto de patrones de entrada (x0,x1,......,Xn-1) y sus
correspondientes salidas deseadas (d0,d1,....,dm-1). Este conjunto de
patrones disponibles se divide en un conjunto de entrenamiento y un
conjunto de test.
66
Fase 2.- Aplicar iterativamente el algoritmo de entrenamiento
("BACK-PROPAGATION") a todos los patrones:
Se aplica el algoritmo de entrenamiento a cada uno de los patrones del
conjunto de entrenamiento. Una vez pasado el algoritmo a todos los patrones
del conjunto de entrenamiento, se calcula el error total correspondiente a esa
iteración para el conjunto de entrenamiento. El proceso de iteración se repite
hasta que el error total de una iteración es menor que una cantidad prefijada,
o hasta que este se estabiliza. En este momento se salvan los pesos.
Con los pesos obtenidos en el paso anterior se aplica la red al conjunto de
patrones que reservamos como conjunto de test. Si el error cometido al
aplicar la red al conjunto de test es del orden del que obtuvimos al aplicar el
algoritmo de entrenamiento al conjunto de patrones de entrenamiento, se
considera que la red tiene un comportamiento adecuado. Si no, fuese
necesario repetir el proceso variando la topología, la función de activación, el
algoritmo de entrenamiento o el tipo de red.
11.- ALGORITMOS NEURONALES.
Estos son usados para el desarrollo de esta investigación se explican a
continuación:
67
11.1.- El PERCEPTRÓN.
El Perceptrón fue uno de los primeros modelos de redes neuronales. Un
Perceptrón imita una neurona tomando la suma ponderada de sus entradas
y enviando a la salida un (1) si la suma es más grande que algún valor
umbral ajustable (si ocurre de otro modo, devuelve 0). En un Perceptrón las
conexiones son unidireccionales.
En el proceso de entrenamiento de las redes de este tipo, se utilizan
patrones conocidos y ya clasificados. Dentro de las redes con entrenamiento
supervisado, la más utilizada es el Perceptrón Multicapa (ver FIGURA 10)
usando en el entrenamiento un algoritmo de retropropagación.
Consta de una capa de entrada, una o varias capas escondidas y una
capa de salida. El número de neuronas que constituyen cada capa debe
adaptarse a cada problema.
FIGURA 10. Diagrama de la topología del Perceptrón Multicapa. Fuente: www.uam.es/adarraga/studs/xerxes/pays.html.
68
Las entradas (X1,X2,...,Xn) y los pesos de conexión (W1, W2,...Wn) de la
figura #11, son valores normalmente reales que pueden ser positivos o
negativos (ver FIGURA 11), si la presencia de alguna característica Xi tiende
a causar la activación del Perceptrón, el peso Wi será positivo; si la
característica Xi inhibe al Perceptrón, entonces el peso Wi será negativo.
FIGURA 11. El Perceptrón. Fuente: www.adi.uam.es/nadarraga/studs
/xerxes/pais.html
El Perceptrón en sí mismo se compone de los pesos, el procesador de
sumas y el procesador del umbral ajustable. El aprendizaje es un proceso en
el cual se modifican los valores de los pesos y del umbral. Resulta
conveniente considerar el umbral exactamente como otro peso Wo. Se
puede ver este peso como la propensión a que se dispare el Perceptrón
independientemente de sus entradas.
69
Un Perceptrón calcula una función binaria de su entrada. Este sistema, se
puede combinar para calcular funciones más complejas.
En ese caso, grupos de Perceptrones se pueden entrenar mediante pares
de entrada / salida, hasta que aprendan calcular la función correcta. Pero la
propiedad que resulta verdaderamente interesante del aprendizaje del
Perceptrón es cualquiera que sea el calculo que un Perceptrón pueda llevar
a cabo ¡ Puede aprender a calcularlo!.
Nos centramos en lo que un único Perceptrón puede aprender a hacer.
Considérese el problema de clasificación de patrones. Este problema es
linealmente separable, ya que se puede dibujar una recta que separe una
clase de la otra. Dando valores para X1 y X2, se quiere entrenar un
Perceptrón para que produzca salida (1) si piensa que la entrada pertenece a
la clase de los puntos blancos, y (0) si piensa que pertenece a la clase de
los puntos negros. La clasificación de patrones es muy similar al aprendizaje
de conceptos.
No existe una regla explicita para guiarnos; se debe introducir una regla a
partir de un conjunto de ejemplos de entrenamiento. Ahora ya se sabe como
los Perceptrones deben aprender a solucionar dichos problemas.
11.1.1.- TIPOS DE PERCEPTRÓN
El Perceptrón básico de dos capas (entrada con neuronas lineales,
analógicas, y la de salida con función de activación de tipo escalón, digital)
70
solo pude establecer dos regiones separadas por una frontera lineal en el
espacio de patrones de entrada, donde se tendría un hiperplano.
Un Perceptrón con tres niveles de neuronas puede formar cualquier región
convexa en este espacio. Las regiones convexas se forman mediante la
intelección entre las regiones formadas por cada neurona de la segunda
capa, cada uno de estos elementos se comporta como un Perceptrón simple,
activándose su salida para los patrones de un lado del hiperplano.
Un Perceptrón con cuatro capas puede generar regiones de decisión
arbitrariamente complejas. El proceso de separación en clases que se lleva a
cabo consiste en la partición de la región deseada en pequeños hipercubos.
Cada hipercubo requiere 2n neuronas en la segunda capa (siendo n el
numero de entradas a la red), una por cada lado del hipercubo, y otra en la
tercera capa, que lleva a cabo el and lógico de la salida de los nodos del
nivel anterior. La salida de los nodos de este tercer nivel se activaran solo
para las entradas de cada hipercubo. Los hipercubos se asignan a la región
de decisión adecuada mediante la conexión de la salida de cada nodo del
tercer nivel solo con la neurona de salida (cuarta capa) correspondiente a la
región de decisión en la que este comprendido el hipercubo llevándose a
cabo una operación lógica Or en cada nodo de salida.
En teoría, el Perceptrón de 4 capas puede resuelve una gran variedad de
problemas cuyas entradas sean analógicas, la salida sea digital y sea
linealmente separable. El problema práctico radica en el numero de
neuronas, en el numero idóneo de capas ocultas, la extensión de la función
71
de activación, el tiempo de entrenamiento de la red, las implicaciones en la
generación de ruido (al tener un numero excesivo de neuronas) en
contraparte con la ventaja de tener un sistema tolerante a fallas al tener un
numero de neuronas redundante.
11.1.2.- APLICACIONES DEL PERCEPTRÓN
El rango de tareas que el Perceptrón puede manejar es mucho mayor que
simples decisiones y reconocimiento de patrones. Por ejemplo, se puede
entrenar una red para formar el tiempo pasado de los verbos en inglés, leer
texto en inglés y manuscrito. El Perceptrón multicapa (MLP) puede ser
usado para la predicción de una serie de datos en el tiempo; tal a sido su
éxito en la medición de la demanda de gas y electricidad, además de la
predicción de cambios en el valor de los instrumentos financieros.
Predicción de mercados financieros, diagnósticos médicos, el Perceptrón
como una red codificadora, el Perceptrón aprende a sumar enteros.
NETtalk es un Perceptrón que es capaz de transformar texto en ingles en
sonido individual (representaciones fonéticas) y la pronunciación con la
utilización de un sintetizador de voz; cuenta con aproximadamente 300
nodos de neuronas (siendo 80 en la capa escondida) y 20,000 conexiones
individuales.
72
11.2.- REDES DE PROPAGACIÓN HACIA ATRÁS
(BACKPROPAGATION)
Este tipo de red, tiene la capacidad de entrenar redes multicapa,
entrenamiento muy importante para la construcción de máquinas inteligentes
con componentes similares a las neuronas.
La red de propagación hacia atrás, se caracteriza por calcular cualquier
cosa. Dado un conjunto de entradas se pueden utilizar unidades de suma y
umbral simples como puertas And, Or y not seleccionando apropiadamente
el umbral y los pesos de conexión. Se puede construir un circuito
combinacional cualquiera, constituido por dichas unidades lógicas básicas.
De hecho, si se permitiera utilizar lazos de realimentación se podría llegar a
construir un ordenador de propósito general con ellos.
El principal problema es el aprendizaje. El sistema para la representación
del conocimiento empleado por las redes neuronales es bastante opaco, ya
que las redes deben aprender sus propias representaciones puesto que
programarlas a mano es imposible. Los Perceptrones tienen la curiosa
propiedad de que cualquiera que sea lo que tengan que calcular pueden
aprender a hacerlo. Ahora esto se extiende a redes multicapa. La
propagación hacia atrás, es un paso que lleva a esta dirección.
73
11.2.1.-ALGORITMO DE ENTRENAMIENTO (BACKPROPAGATION).
El algoritmo de aprendizaje proporciona una forma de entrenar una red
multicapa con alimentación hacia delante.
El algoritmo de entrenamiento por retropropagación, es un algoritmo
iterativo por descenso del gradiente diseñado para minimizar el error
cuadrático medio entre la salida real del Perceptrón Multicapa y la salida
deseada. Consta de los siguientes pasos (asumiremos una función de
activación sigmoide binaria que simplifica el cálculo de las derivadas):
Paso 1: Inicializar Pesos y Umbrales.
Todos los pesos y umbrales de los nodos sé inicializan con valores
aleatorios pequeños.
Paso 2: Presentar la entrada y las salidas deseadas.
Se presenta un vector de entrada (x0,x1,......,Xn-1) y la salida deseada
(d0,d1,....,dm-1). Si la red se usa como un clasificador, todas las
componentes de cada vector salida son 0 excepto la componente (o
componentes) que corresponde al patrón de entrada que se fija a 1.
Paso 3: Cálculo de las salidas reales.
Usando las funciones sigmoides para cada neurona y a través de la
topología de la red se calculan las salidas (y0,y1,.....,ym-1).
74
Paso 4: Adaptación de los pesos.
Se utiliza un algoritmo recursivo empezando en los nodos de salida y
trabajando hacia atrás hasta llegar a la primera capa escondida.
Se ajustan los pesos mediante la siguiente fórmula (descenso del
gradiente):
Rough Equation
w SUB {ij}(t+1)=w SUB {ij}(t)+ eta delta SUB {j}x SUB {i} SUP {,}
donde:
wij(t): es el peso desde el nodo i-ésimo escondido en el instante t (o el peso
desde una entrada) al nodo j-ésimo.
xj': es la salida del nodo i-ésimo (o es una entrada)
.: es un término de ganancia comprendido entre 0 y 1. Normalmente se usan
valores pequeños, siendo conveniente hacer pruebas de convergencia y
estabilidad con varios valores.
.j: es un término de error para el nodo j:
a) Si el nodo j es un nodo de salida, entonces:
Rough Equation
delta SUB {j}=y SUB {j} CDOT(1-y SUB {j}) CDOT(d SUB {j}-y SUB {j})
75
donde dj es la salida deseada del nodo j e yj es la salida real obtenida por la
red. En la fórmula [8] yj(1-yj) es la derivada de la función de activación, si se
desea emplear otra función de activación sería necesario sustituir este factor
por la derivada de la función de activación empleada. El uso de funciones
como la sigmoide, en las cuales el valor de la función y su derivada están
relacionados, permite acelerar el algoritmo de entrenamiento evitando hacer
cálculos adicionales.
b) Si el nodo j es un nodo interno escondido, entonces:
Rough Equation
delta SUB {j}=x SUB {j} ' CDOT (1-x SUB {j} ' ) SUM FROM {k} delta SUB {k}
w SUB {jk}
donde k es el índice que recorre todos los nodos de la capa por encima del
nodo j.
Cuando hay problemas de convergencia es conveniente añadir un término de
momento (efecto de memoria del cambio en el paso anterior) que evite que el
proceso quede atrapado en algún mínimo local de la función de error. En
este caso la actualización de los pesos se realiza mediante la fórmula:
Rough Equation
w SUB {ij}(t+1)=w SUB {ij}(t)+ eta delta SUB {j}x SUB {i} SUP {,}+ alpha (w
SUB {ij}(t)-w SUB {ij}(t-1))
donde 0<.<1.
76
Paso 5: Repetir el proceso desde el paso 2 hasta que el error o los
cambios en los pesos sean despreciables.
12.- MATLAB. Para Javier Bastidas (1999), es un sistema interactivo que utiliza Matrices
como elemento básico de datos, con capacidad para resolver muchos
problemas numéricos sin necesidad de construir programas complejos.
El lenguaje de programación Matlab posee aplicaciones que se
denominan Toolboxes y estas permiten realizar, de una forma relativamente
sencilla, complicados diseños y cálculos. Algunos de los Toolboxes
existentes son: estadística, control de procesos, lógica difusa, redes
neuronales, identificación de sistemas, simulación dinámica de procesos
(Simulink), procesamiento de señales, entre otros.
Además Matlab proporciona una serie de comandos que permiten escribir
instrucciones tal como se usan en el lenguaje matemático corriente,
permitiendo también visualizar los resultados mediante sencillas y poderosas
herramientas de graficación.
Son diversas las aplicaciones usadas bajo este entorno, las cuales se
encuentran vinculadas con la creación de vectores, matrices, funciones,
entre otras; cuya utilización se dará a conocer a continuación.
77
12.1.- VECTORES.
Para la creación de vectores se debe introducir cada elemento del vector
(separado por un espacio) entre corchetes y asignarlo a una variable. Por
ejemplo, para crear el vector a, introducir en la ventana de instrucciones de
Matlab (para hacerlo más fácil puede "copiar" y "pegar" desde el navegador a
Matlab): a = [1 2 3 4 5 6 9 8 7].
Matlab debería devolver: a = 1 2 3 4 5 6 9 8 7
Si se desea crear un vector con elementos entre 0 y 20 separados a
incrementos de 2 (este método se usa frecuentemente para crear un vector
de tiempo):
t = 0:2:20
t = 0 2 4 6 8 10 12 14 16 18 20
Manipular vectores es casi tan fácil como crearlos. Primero, supongamos
que desea añadir 2 a cada elemento del vector 'a'. La instrucción que realiza
este cálculo es:
b = a + 2
b = 3 4 5 6 7 8 11 10 9
Suponiendo ahora que, desea sumar dos vectores. Si los dos vectores
tienen la misma dimensión es fácil. Sencillamente sume los dos vectores
como se indica a continuación:
c = a + b
c = 4 6 8 10 12 14 20 18 16
78
Restar vectores de la misma longitud funciona exactamente igual. 12.2.- FUNCIONES.
Para facilitar las cosas Matlab incluye muchas funciones estándar. Cada
función es un bloque de código que desempeña una tarea específica. Matlab
incorpora todas las funciones estándar tales como seno (sin), coseno (cos),
logaritmo (log), exponencial (exp), raíz cuadrada (sqrt), así como muchas
otras. También incorpora constantes tales como pi e i o j para la raíz
cuadrada de -1.
sin(pi/4)
ans = 0.7071
Para averiguar cómo se usa una función escriba help [nombre de función]
en la ventana de instrucciones de Matlab.
Matlab incluso le permite escribir sus propias funciones con la instrucción
"function".
12.3.- GRÁFICOS.
También es muy sencillo crear gráficos en Matlab. Suponga que desea
crear la gráfica de un seno en función del tiempo (ver GRAFICO 2). Primero
cree un vector de tiempo (el punto y coma al final de una instrucción le indica
a Matlab que no muestre la respuesta) y evalúe el seno para cada uno de
esos valores de tiempo.
79
t=0:0.25:7;
y = sin(t);
plot(t,y)
GRAFICO 2. Onda del seno. Fuente: CHACIN y PORTILLO (2001).
El gráfico contiene aproximadamente un periodo de una onda seno. Los
fundamentos de las representaciones gráficas en Matlab son muy sencillos y
la función plot proporciona ciertas características adicionales.
12.4.- POLINOMIOS.
En Matlab un polinomio se representa como un vector. Para crear un
polinomio en Matlab simplemente introduzca cada coeficiente del polinomio
en un vector en orden descendente. Por ejemplo, digamos que tenemos el
siguiente polinomio:
80
Para introducirlo en Matlab basta con crear un vector de la siguiente
manera
x = [1 3 -15 -2 9]
x = 1 3 -15 -2 9
Matlab interpreta un vector de longitud n+1 como un polinomio de orden n.
Así, si un polinomio no posee algún coeficiente es preciso introducir un cero
en el lugar apropiado del vector que lo representa. Por ejemplo,
se representa en Matlab como:
y = [1 0 0 0 1]
Se puede evaluar el polinomio usando la función polyval. Por ejemplo para
hallar el valor del polinomio anterior en s=2,
z = polyval([1 0 0 0 1],2)
z = 17
También se pueden hallar las raíces de un polinomio. Esto es muy útil
cuando se tiene un polinomio de orden superior como
Hallar las raíces es tan sencillo como introducir la siguiente instrucción:
roots([1 3 -15 -2 9])
ans = -5.5745
2.5836
-0.7951
0.7860
81
Cuando se desea multiplicar dos polinomios. El producto de dos
polinomios se calcula realizando la convolución de sus coeficientes. Matlab
dispone de a función conv para realizar esta tarea.
x = [1 2];
y = [1 4 8];
z = conv(x,y)
z = 1 6 16 16
Dividir dos polinomios es igual de sencillo. La función deconv devuelve el
cociente y el resto. Así, al dividir z entre y obtendremos de nuevo x.
[xx, R] = deconv(z,y)
xx = 1 2
R = 0 0 0 0
Como se puede ver, se obtiene el mismo polinomio / vector x anterior,
si el polinomio y no fuese un múltiplo de x, el vector correspondiente al
polinomio resto contendría algo diferente a cero.
Si desea sumar dos polinomios del mismo orden basta con z=x+y (los
vectores x e y deben tener la misma longitud). En el caso más general puede
usarse la función definida por el usuario "polyadd". Para usar polyadd copie
la función en un archivo de instrucciones y úsela como si fuese cualquier otra
función Matlab. Se dispone de la función polyadd almacenada en un archivo
de instrucciones y desea sumar dos polinomios cualesquiera x e y puede
realizar esta operación escribiendo la siguiente instrucción:
z = polyadd(x,y)
82
x = 1 2
y = 1 4 8
z = 1 5 10
12.5.- MATRICES
Introducir matrices en Matlab es igual que introducir vectores excepto en
que cada fila de elementos se separa de otra con un punto y coma o con un
salto de línea:
B = [1 2 3 4;5 6 7 8;9 10 11 12]
B = 1 2 3 4
5 6 7 8
9 10 11 12
B = [ 1 2 3 4
5 6 7 8
9 10 11 12]
B = 1 2 3 4
5 6 7 8
9 10 11 12
Las matrices en Matlab se pueden manipular de muchas maneras. Por
ejemplo, se puede obtener la traspuesta de una matriz utilizando la tecla de
apróstofo.
C = B'
83
C = 1 5 9
2 6 10
3 7 11
4 8 12
Se debe hacer notar que si C hubiese sido compleja, el apóstrofo
realmente hubiese dado la matriz compleja conjugada traspuesta.
Se pueden multiplicar las dos matrices B y C. Recuerde que el orden de
las matrices afecta al resultado del producto.
D = B * C
D = 30 70 110
70 174 278
110 278 446
D = C * B
D = 107 122 137 152
122 140 158 176
137 158 179 200
152 176 200 224
También es posible multiplicar dos matrices elemento a elemento
utilizando el operador* (las dos matrices deben tener el mismo tamaño.
E = [1 2;3 4]
E = 1 2
3 4
F = [2 3;4 5]
84
F = 2 3
4 5
G = E * F
G = 2 6
12 20
Una matriz cuadrada, como la matriz E, puede multiplicarse por ella misma
tantas veces como se quiera elevando la matriz a una potencia dada.
E^3
ans = 37 54
81 118
Si se desea elevar al cubo cada elemento de la matriz basta con usar el
operador potencia elemento a elemento.
E.^3
ans = 1 8
27 64
También puede hallarse el inverso de una matriz:
X = inv(E)
X = -2.0000 1.0000
1.5000 -0.5000
o sus autovalores:
eig(E)
ans = -0.3723
5.3723
85
Incluso existe una función que calcula los coeficientes del polinomio
característico de una matriz. La función "poly" crea un vector que contiene los
coeficientes del polinomio característico.
p = poly(E)
p = 1.0000 -5.0000 -2.0000
Recuerde que los autovalores de una matriz son las raíces de su
polinomio característico:
roots(p)
ans = 5.3723
-0.3723
C.- SISTEMA DE VARIABLES
La presente investigación se propone considerar sus variables de objeto
de estudio desde un doble punto de vista: conceptual y operacionalmente,
siendo ellas:
ü Sistemas de reconocimiento de patrones.
ü Redes neuronales. SISTEMAS DE RECONOCIMIENTO DE PATRONES
En vista a los esfuerzos realizados por conseguir información que
permitiera definir la variable en su totalidad como: “Sistema de
Reconocimiento de patrones”, resultando estos infructuosos hubo necesidad
de dividir la variable a partir de sus componentes para de esta manera
86
aproximar una definición conceptual y operacional de la misma, separando
Sistema, de Reconocimiento de Patrones.
Al efecto se expone:
SISTEMA
Conceptualmente es, “ Una combinación de componentes que actúan
conjuntamente y cumplen determinado objetivo, no está limitado a los
objetivos físicos, puede ser aplicado a fenómenos abstractos y dinámicos.
Además, es un acto mediante el cual se selecciona, de un numero infinito de
relaciones entre cosas, un conjunto de elementos que indican cierta
coherencia y unidad de propósito y, que permitan la interpretación de
hechos”. (Ogata; 1980; p.32)
Operacionalmente es, un conjunto de datos de entrada y salida
procesados mediante una secuencia de funciones y procedimientos, dando
como resultado las respuestas esperadas.
En un sistema, se procesan variables hasta obtener óptimos resultados
con un mínimo margen de error.
RECONOCIMIENTO DE PATRONES
Conceptualmente es, “ Un proceso de etiquetado; esto es, la función de
los algoritmos de Reconocimiento es identificar a cada objeto segmentado
de una escena, y asignarle una etiqueta (llave inglés, obturador, tornillo, por
ejemplo). En la mayoría de los sistemas de visión, los niveles de
87
reconocimiento trabajan sobre objetos que supone han sido segmentados
como unidades. Otra limitación común es que las imágenes se deben tomar
con una geometría de visión conocida (a menudo perpendicular al espacio de
trabajo). Esto hace que disminuya la diversidad de características de forma y
simplifica la segmentación y la descripción, reduciendo las posibilidades de
ocultación. Representan las variaciones en la orientación de los objetos se
solventa eligiendo descriptores invariantes a la rotación, o usando el eje
principal del objeto para orientarle en una dirección predefinida. ( K.S. Fu;
1994, p. 440)
Operacionalmente es, Un proceso mediante el cual, se manejan los
vectores de entrada forzando al sistema a identificar apropiadamente las
figuras, tomando en cuenta la variación en la orientación de las imágenes
(con ruido) , obteniendo de esta forma un mínimo margen de error. El
proceso de segmentación se lleva a cabo mediante el uso de matrices que
contienen en números binarios el contenido de la figura obteniendo el
etiquetado que se menciona en la definición conceptual.
REDES NEURONALES ARTIFICIALES
Conceptualmente es, “ Conjunto de unidades procesadoras o neuronas
artificiales altamente interconectadas en la red. Cada unidad procesadora de
la red mantiene solo una parte de la información dinámica y es capaz de
ejecutar solo pequeñas operaciones de calculo (sumar entradas, calcular un
nuevo nivel de activación, o comparar entradas con un valor umbral). La
88
salida de una unidad procesadora el cual es calculado de un nivel de
activación, es enviada a una unidad procesadora receptora, mediante la
conexión de las dos unidades procesadoras”.(Atencio, 1996, p.58).
Los algoritmos basados en redes neuronales están constituidos por un
grupo de elementos simples, que están interconectados masivamente en
paralelo, con una organización jerárquica que interactúan con los objetos del
mundo real del mismo modo que lo hace el sistema nervioso biológico.
(Lepore y Viloria, 1998).
Operacionalmente, los algoritmos basados en redes neuronales son el
grupo de sentencias e instrucciones que en forma general representan la
lógica de programación para las estructuras y los componentes matemáticos
que constituyen el programa neuronal, con el cual se le proporciona a los
sistemas de reconocimiento otra perspectiva en cuanto a la obtención de
datos. La ventaja que se obtiene al emplear las redes neuronales, es que
una vez entrenadas pueden predecir el resultado de la variable de estudio,
con una diferencia mínima de error.
Las redes neuronales muestran muchas aplicaciones, debido a la gran
diversidad de características que se le otorgan, en esta investigación se
enfoca en el procesamiento de la información derivada de un objeto tomado
por una cámara de video, por el cual se entrena para su posterior
reconocimiento.
89
D. DEFINICIÓN DE TÉRMINOS BÁSICOS.
• Adaptativos (Adaptación), modificación de la estructura, para poder
subsistir ante los cambios de las condiciones del ambiente. (Jackson,
W. 1976, P63)
• Algoritmo, conjunto Ordenado y finito de operación que permiten
hallar la solución de un problema. Método y notación en las distintas
formas del calculo. (Salvat, 1985 P13)
• Cámara de video, es un aparato que captura imágenes en
movimiento y las descompone en una serie de imágenes obtenidas
con una frecuencia dada para ser enviada a un equipo que
posteriormente las procesará.
• Inteligencia artificial, es el campo de la ciencia de la computación
dedicado a analizar y desarrollar sistemas que produzcan y emitan
los procesos de pensamiento y razonamiento del hombre.
(http:/www.laguia.com)
• Patrón, 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. es razonable que los patrones
pertenecientes a una misma clase estén cercanos en el espacio de
90
representación mientras que aquellos que pertenezcan a clases
diferentes deberían estar en diferentes regiones del espacio de
representación.
• Píxel, punto perteneciente a un área de visión, cuyas coordenadas
en el espacio bidimensional son X, Y que posee una intensidad de
luz que se define como F(x,y).
• Reconocimiento, es un proceso de identificar a cada objeto
segmentado de una escena y asignarle una etiqueta.
• Redes, son tres ó más componentes interconectados, que
comparten componentes, data e impresoras entre sí. (Manual de
Computación Unidata, 1993. P8)
• Redes Neuronales (Neural Networks), son programas de I. A. Que
son capaces de simular alguna de las funciones de aprendizaje del
ser Humano. Sin reglas convencionales, una Red Neuronal obtiene
experiencia analizando automaticamente y sistematicamente una
cantidad de datos, para determinar reglas de comportamiento. Sobre
las bases de estas reglas, puede realizar predicciones sobre nuevos
casos. Esta tecnica se aplica a problemas de clasificación y series de
tiempo y ofrecen el potencial de identificar conexiones que otras
tecnicas no pueden, porque utiliza relaciones lineales y no lineales
91
entre los datos, puede trabajar con cualquier tipo de distribución y
maneja datos con redundancia y/o inconsistencia de la información.
(http:/www.laguia.com.ar/aaia.htm).
• Sistemas, es una combinación de componentes que actúan
conjuntamente y cumplen un determinado objetivo. (Ogata, 1993,
p.3).