SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …
Transcript of SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …
SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS GENERADOS EN UN AMBIENTE CONTROLADO DE DOS DIMENSIONES (2D),
UTILIZANDO APRENDIZAJE SUPERVISADO CON ADAPTACIÓN DE ALGORITMO DE CORRECCIÓN DE ERROR
DOCUMENTADORES ANCHIQUE LEAL LEONARDO ANDRES CARDENAS CARVAJAL JUAN CARLOS
FAGUA HUSGAME EDITH NATALIA MENDIVELSO AYALA JUAN GABRIEL MUÑOZ CHACON SANDRA PATRICIA
TIQUE TIQUE DAGOBERTO
ASISTENTE DE INVESTIGACION RODRIGUEZ ERICK MANOLO
DIRECTORA DE INVESTIGACIÓN
ING. HOLGUÍN ONTIVEROS ERIKA PAOLA
FUNDACION UNIVERSITARIA PANAMERICANA FACULTAD DE INGENIERÍA INGENIERÍA DE SISTEMAS
BOGOTÁ, D. C. 2008
SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS GENERADOS EN UN AMBIENTE CONTROLADO DE DOS DIMENSIONES (2D),
UTILIZANDO APRENDIZAJE SUPERVISADO CON ADAPTACIÓN DE ALGORITMO DE CORRECCIÓN DE ERROR
DOCUMENTADORES ANCHIQUE LEAL LEONARDO ANDRES CARDENAS CARVAJAL JUAN CARLOS
FAGUA HUSGAME EDITH NATALIA MENDIVELSO AYALA JUAN GABRIEL MUÑOZ CHACON SANDRA PATRICIA
TIQUE TIQUE DAGOBERTO
ASISTENTE DE INVESTIGACION RODRIGUEZ ERICK MANOLO
PROYECTO TRABAJO DE GRADO PARA OPTAR AL TÍTULO
INGENIERÍA DE SISTEMAS
DIRECTORA DE INVESTIGACIÓN ING. HOLGUÍN ONTIVEROS ERIKA PAOLA
FUNDACION UNIVERSITARIA PANAMERICANA FACULTAD DE INGENIERÍA INGENIERÍA DE SISTEMAS
BOGOTÁ, D. C. 2008
ACEPTACION LEONARDO ANDRES ANCHIQUE LEAL ________________________
JUAN CARLOS CARDENAS ________________________
EDITH NATALIA FAGUA HUSGAME ________________________
JUAN GABRIEL MENDIVELSO AYALA ________________________
SANDRA P MUÑOZ CHACON ________________________
DAGOBERTO TIQUE TIQUE ________________________
ERIKA PAOLA HOLGUIN ONTIVEROS
Directora ________________________
INGENIERO/A
Jurado ________________________
MARGARITA POSADA LECOMPTE
Directora de investigación FUP ________________________
ANDRÉS NUÑEZ
Rector ________________________
Bogotá, 2008
Especialmente a nuestras
Familias
AGRADECIMIENTOS
Los documentadores del proyecto expresan sus agradecimientos:
En primer lugar agradecemos el apoyo y guía brindada por parte
de la directora e Ing. Erika Paola Holguín Ontiveros para la correcta
ejecución del proyecto
Por otro lado al Asistente de Investigación Erick Manolo Rodríguez,
En la parte académica a la Fundación Universitaria Panamericana
y el Jefe de programa Pablo Emilio Cuenca
por su colaboración absoluta.
CONTENIDO Pág.
RESUMEN INTRODUCCION………………………………………………………………................... 1
1 REDES NEURONALES BIOLOGICAS ARTIFICIALES E INTELIGENCIA
ARTIFICIAL…………………………………………………………………………….... 4
1.1 Redes Neuronales Biológicas……………………………………………….. 4
1.2 Redes Neuronales Artificiales (RNA)……………………………………… 7
1.3 Historia de las Redes Neuronales Artificiales……………………………. 9
1.4 Arquitectura de las Redes Neuronales Artificiales………………………. 14
1.4.1 Topología Redes Neuronales, Redes Monocapa, Multicapa………… 15
1.4.2. Perceptrón simple……………………………………………………………… 18
1.4.3 Perceptrón Multicapa………………………………………………………….. 19
1.5 Aprendizaje………………………………………………………………………. 19
1.5.1 Paradigmas de Aprendizaje………………………………………………….. 21
1.5.2 Aprendizaje Supervisado……………………………………………………... 21
1.5.3 Aprendizaje por Refuerzo……………………………………………………. 21
1.5.4 Aprendizaje No Supervisado………………………………………………… 22
1.6 Algoritmos de Aprendizaje…….……………………………………….......... 23
1.6.1 Algoritmo de corrección de error……………………………………………. 23
1.6.2 Aprendizaje tipo Boltzman……………………………………………………. 25
1.6.3 Regla de Hebb (Delta)……………………………………………………….... 26
1.6.4 Algoritmo competitivo………………………………………………………….. 27
1.7 Teoría Matemática de las Redes Neuronales Artificiales…………....... 29
1.8 Funciones de Activación………………………………................................. 30
1.8.1 Función Escalar o umbral…………………………………………………….. 30
1.8.2 Función Lineal a Tramos……….…………………………………………….. 30
1.8.3 Función Sigmoidal…………………………………………………….............. 31
1.8.4 Función Signo…………………………………………………………………... 31
1.9 Inteligencia Artificial a partir de Redes Neuronales Artificiales………. 33
1.9.1 Memoria Inteligencia Artificial vs Redes Neuronales………………….... 35
1.9.2 Perspectivas futuras de la inteligencia artificial y RNA……………….. 35 2. AMBIENTES GRÁFICOS EN DOS DIMENSIONES………….……………… 37
3 METODOLOGIA…………………………………………………………………. 42
3.1 Planear….………………………………………………………………………… 42
3.1.1 Presupuesto……………………………………………………………………… 42
3.2 Hacer……………………………………………………………………………... 43
3.3 Verificar…………………………………………………………………………... 45
3.3.1 Análisis de la grafica que tiene relacionadas las tasas de aprendizaje 0.1, 0.2 y 0.3…………………………………………………
45
3.3.2 Análisis de la grafica que tiene relacionadas las tasas de aprendizaje 0.6, y 0.1; con 8 obstáculos……………………………….
49
3.4 Actuar……………………………………………………………………………... 52
4 CONCLUSIONES.……………………........................................................... 53 5 RECOMENDACIONES………………………………………………………….. 54
BIBLIOGRAFIA
ANEXOS
CONTENIDO DE TABLAS Pág.
1 Redes Neuronales Monocapa…..………………………………………………… 15
2 Redes Neuronales Multicapa.........………………………………………………. 17
CONTENIDO DE FIGURAS
Pág. 1 Modelo Neurona Biológica…………………………………………………. 5
2 Modelo Red Neuronal……………………………………………………….. 8
3 Modelo Red Neuronal……………………………………………………….. 14
4 Redes Neuronales Monocapa………………..…………………………… 16
5 Redes Neuronales Multicapa…………………….………..………………. 17
6 Modelo Perceptrón Simple……………………………………………… 18 7 Modelo Perceptrón Multicapa……………………………………………... 19
8 Algoritmo Corrección de Error…………………………………………….. 24
9 Estructura de una red neuronal…………………………………………… 28
10 Componentes aprendizaje supervisado………………………………… 30
11 Función Sigmoidal…………………………………………………………… 31
12 Función Signo………………………………………………………………… 32
13 Proyección sobre el plano………………………………………………….. 39
14 Proyección sobre el plano imagen……………………………………….. 40
15 Componentes de una imagen……………………………………………... 41
16 Casos de Uso…………………………………………………………………. 43
17 Diagrama de Clase………………………………………………………….. 44
18 Evasión de un obstáculo con una tasa de aprendizaje 0,1………... 45
19 Evasión de un obstáculo con una tasa de aprendizaje 0,2.……….. 46
20 Evasión de un obstáculo con una tasa de aprendizaje 0,3.……….. 47
21 Rendimiento Aprendizaje Red Neuronal con Tasas de aprendizaje
0.1, 0.2, 0.3 En Un Escenario horizontal...........………...………...…..
48
22 Rendimiento Aprendizaje Red Neuronal Con Tasa De Aprendizaje
0.6 en un escenario Horizontal con 8 obstáculos……………………
49
23 Rendimiento Aprendizaje Red Neuronal Con Tasa De Aprendizaje
0.1 en un escenario Horizontal con 8 obstáculos……………………
50
24 Rendimiento Aprendizaje Red Neuronal Con Tasas De Aprendizaje 0.6 y 0.1 En Un Escenario Horizontal…………………
51
RESUMEN
El presente proyecto documenta y toma las RNA como tema central debido a la
habilidad de ejecutar tareas basadas en aprendizaje. Esta fase de aprendizaje
posee varias interconexiones entre neuronas y unidades de procesos que
permiten el aprendizaje a partir de ejemplos específicos, por tal motivo no son
programables ni necesitan de poderosos procesadores para cumplir la tarea
asignada.
Además las RNA son totalmente diferentes a los sistemas computacionales ya que
esta clase de sistemas por computadora necesitan de un programador para cada
paso de ejecución que realice, donde el factor humano y el tiempo son
indispensable. A diferencia de los sistemas computacionales las RNA no necesitan
de programación ni factor humano.
Como resultado final se obtuvo un software que permite visualizar como un agente
evade obstáculos generados en un ambiente controlado de dos dimensiones (2D),
adaptando un algoritmo de corrección de error.
Para la creación de dicho programa se utilizo la herramienta Visual Studio 2005 y
la tecnología .NET con un lenguaje de programación Visual Basic. Sin embargo
más adelante se trabajo en Visual Studio 2008 gracias a unos complementos que
permitieron de una forma más sencilla crear la grafica "Tasa de aprendizaje vs
Tiempo de aprendizaje".
El software a medida que se fue desarrollando, también fue evolucionando, por tal
motivo se generaron cuatro versiones. A continuación se describen:
• V1 creaba los obstáculos y se movía el agente, sin embargo no mostraba el
camino para llegar a la salida deseada.
• Versión 2 agrego trazado (línea pintada) la cual mostraba el camino
recorrido por el agente hasta llegar a la salida deseada. En esta misma
versión se modifico la GUI (interfaz grafica de usuario) agregando iconos de
acceso directo a las opciones del menú.
• V3 esta versión contaba con un menú de configuración que permitía al
usuario cambiar la tasa de aprendizaje y los pesos sinápticos. Se
desarrollo en Visual Basic Studio(2005),
• La actual y última versión (v4) cuenta con una grafica donde aparece "Tasa
de aprendizaje vs Tiempo de aprendizaje". Con el fin de verificar el cambio
de aprendizaje dependiendo de la tasa de aprendizaje. La implementación
de la grafica se desarrollo en Visual Basic 2008.
• Dentro del programa el algoritmo de corrección utiliza la función de
activación sigmoide.
PALABRAS CLAVES
Redes Neuronales Artificiales (RNA), Red Neuronal Biológica (RNB), Neurona,
Perceptrón Simple, Paradigmas de Aprendizaje, Perceptrón Multicapa,
Aprendizaje Supervisado, Aprendizaje por Refuerzo, Aprendizaje no supervisado,
Algoritmos de aprendizaje, Algoritmo de corrección de error, Algoritmo
Competitivo, Función de Activación Sigmoide.
ABSTRACT
The present project documents and takes the RNA as a central topic due the
executing skill of tasks based on learning. This learning phase have several
interconnections between neurons and processes units that allowed the learning
from specific examples, for this cause those not be programmable or need
powerful processors to fulfill the assigned task.
Besides the RNA is totally different from the computer systems since this class of
systems for computer need a programmer for every execution step to realizes,
where the human work and time are indispensable. Different of the computer
systems, the RNA didn’t needs programming or human factor.
Since final proved there was obtained a software that allows to visualize like an
agent it’s evades generated obstacles in a controlled environment of two
dimensions (2D), adapting with an algorithm of alteration of mistake.
For the creation of this program, used the Visual Studio 2005 tool and .NET
technology with a Visual Basic programming language. Nevertheless more ahead
work in Visual Studio 2008 help to complements that allowed one more simpler
form to graphic creation “Rate of learning versus Time of learning"
In the time the software was developing, also was evolving, and whish reason was
generated four versions. In the following are described:
• V1 was creating obstacles and the agent moved, nevertheless didn’t show
the way to arrive on the desired exit.
• Version 2 adding a drawing up (lines) which showed the way crossed by the
agent until arriving when coming the desired exit. In this same version
modify the GUI (graphic interface of user) adding icons of direct access to
the menu options.
• V3 this version counted on a configuration menu that allowed the user to
change the rate of learning and the synaptic weights. Develop in Visual
Basic Studio (2005),
• The present and last version (v4) counts on a graphic when appears "Rate
of learning versus Time of learning". With the purpose of verify the learning
change following the rate of learning. The implementation of graphic the
develop in Visual BASIC 2008
• Within the correction algorithm program uses the function of sigmoid
activation.
KEY WORDS
Artificial Neural Network (RNA), Biologic Neural Network (RNB), Neuron, Simple
Perceptrón, Paradigms of the Learning, Multi-layer Perceptrón, Supervised
Learning, Learning by Reinforcement, Learning no Supervised, Algorithms of the
Learning, Algorithm of Correction of Error, Competitive Algorithm, Function of
Activity Sigmoid.
1
INTRODUCCIÓN
Las redes neuronales biológicas son sistemas inteligentes que tienen la capacidad
de aprender, teniendo en cuenta el entorno, la experiencia del individuo y la
interacción cerebral. Dichas redes han constituido el modelo base para la
construcción de las redes neuronales artificiales, que a través de modelos
matemáticos demuestran la simulación del cerebro humano. La adaptación de
tales modelos matemáticos en el campo de la inteligencia artificial ha permito que
se logren objetivos cada vez más cercanos a las capacidades que tiene el ser
humano.
Uno de los métodos que tienen relación con los principales conceptos de la
Inteligencia Artificial es el de redes neuronales artificiales, ya que permiten
identificar problemas donde se evidencia aprendizaje y toma de decisiones en
problemas no lineales y dinámicos que se abstraen del mundo real, donde existen
actividades que normalmente crecen y decrecen sin interrupciones de tiempo. Un
ejemplo real se cita en el artículo del autor Miguel Roca:
www.xeix.org/IMG/pdf_UIB.pdf , que describe un “Sistema de Interacción Natural
Avanzado que servirá para que los ordenadores reconozcan mediante una cámara
y un micrófono a cada usuario, moviendo la cabeza y utilizando la voz, puedan
acceder a los distintos contenidos, sin tener que usar el ratón y el teclado, sólo
diciendo ´click´”.1 La idea es facilitar el acceso de los discapacitados a las nuevas
tecnologías y propiciar así su independencia e integración.
El problema a solucionar en el presente proyecto es la adaptación de un modelo
matemático en una red neuronal artificial que admita manejar entornos dinámicos,
donde se demuestre cómo un agente adquiere aprendizaje para superar
obstáculos en ambientes cambiantes.
1 Miguel Roca. http://www.xeix.org/IMG/pdf_UIB.pdf
2
El objetivo general planteado es diseñar, modelar e implementar un sistema
perceptrón simple para evadir obstáculos generados en un ambiente grafico de
dos (2) dimensiones, utilizando aprendizaje supervisado con adaptación de
algoritmo de corrección de error.
El sistema perceptrón simple, para evadir obstáculos generados en un ambiente
controlado de dos dimensiones (2D), utilizando aprendizaje supervisado con
adaptación de algoritmo de corrección de error, está enfocado específicamente a
la aplicación de una red neuronal artificial que por medio de un agente tiene la
capacidad de aprender, tomar decisiones y adquirir experiencia para realizar su
propio desplazamiento desde un punto inicial a un punto final, dado en ambiente
controlado de dos (2) dimensiones donde se presentan tres (3) escenarios,
vertical que maneja una cantidad específica de obstáculos (entre uno (1) y ocho
(8)), horizontal con una cantidad de obstáculos (entre uno (1) y diez (10)) y
laberinto con una cantidad de obstáculos (entre uno (1) y doce (12)), los cuales
debe evadir para alcanzar su objetivo.
El aprendizaje del agente es simulado mediante un software de computador
(Visual Studio.Net), el cual utiliza un modelo supervisado conocido como
perceptrón simple, que bajo una regla de aprendizaje basada en corrección de
error logra la superación de obstáculos dados por el usuario; tal modelo recibe
como entradas valores discretos y su función de activación es de tipo sigmoidal;
en el caso descrito se utilizan valores lógicos para las entradas y los pesos
sinápticos que puedan dar como resultado una salida deseada.
Uno de los objetivos específicos de este proyecto es consultar la bibliografía
correspondiente a redes neuronales e inteligencia artificial para realizar un modelo
perceptrón simple, donde se calculen los pesos sinápticos y la función de
activación, que permita demostrar la realidad del problema de evasión de
obstáculos en un ambiente grafico controlado de dos (2) dimensiones.
3
Otros objetivos específicos a lograr son:
1. Realizar el análisis de un plano cartesiano en dos (2) dimensiones (x, y),
para la simulación de obstáculos con una longitud especifica, cuya
pendiente es (0) cero.
2. Calcular la distancia entre los obstáculos que admita que el agente se
ubique en una posición vectorial media entre ellos.
3. Emplear el algoritmo de aprendizaje por corrección de error para resolver
problemas no lineales, como la evasión de obstáculos en un plano vectorial
en dos (2) dimensiones.
4. Delimitar las entradas que abstraigan la interacción del agente con el
ambiente grafico de dos (2) dimensiones.
5. Calcular los pesos sinápticos que controlen la convergencia de aprendizaje
de la red neuronal.
6. Analizar un lenguaje de programación bajo la plataforma .Net que permita
demostrar la simulación del agente.
7. Adaptar el algoritmo de corrección de error al lenguaje de programación
Visual Basic.Net.
8. Verificar el adecuado funcionamiento del software que demuestre el
aprendizaje del agente en una red neuronal artificial.
En la Fundación Universitaria Panamericana no se han realizado investigaciones
que promuevan el estudio de la inteligencia artificial a partir de las redes
neuronales artificiales para proponer algoritmos de solución dinámica. Este
proyecto constituirá un primer paso para incentivar la búsqueda de nuevas
investigaciones de inteligencia artificial. Las futuras generaciones de estudiantes
deben buscar, a partir de los conceptos que se desarrollan en el cuerpo del trabajo
la implementación de aplicaciones que puedan servir de ayuda a seres humanos
discapacitados, especialmente en el campo perceptivo donde se pueden crear
dispositivos para la visión y el habla, aplicaciones que pueden abrir posibilidades
para conocer y acceder mejor al mundo que les rodea.
4
1. REDES NEURONALES BIOLOGICAS ARTIFICIALES E INTELIGENCIA ARTIFICIAL
El proyecto, como se ha mencionado con anterioridad se basará en la aplicación
del concepto de redes neuronales artificiales, por tal motivo es necesario explicar
el entorno teórico referente a la evolución y desarrollo del tema.
A continuación se hará una descripción de algunos temas relacionados con las
redes neuronales: redes Neuronales Biológicas, Redes Neuronales Artificiales
(RNA), historia de las RNA, clasificación de las RNA, paradigmas de aprendizaje,
algoritmos de aprendizaje, teoría matemática de las RNA, modelo matemático del
perceptrón simple, algoritmo de corrección de error, funciones de activación e
Inteligencia Artificial (IA) enfocada a las Redes Neuronales
Además de los temas ya mencionados se hará una breve introducción al ambiente
2D, que es finalmente el contexto grafico en el cual se mostrara el software a
desarrollar.
1.1 REDES NEURONALES BIOLÓGICAS Con el pasar del tiempo la ciencia y tecnología han ido avanzando, generando así
interés en desarrollar sistemas inteligentes capaces de aprender, desarrollar o
resolver problemas específicos por sí mismos. Las redes neuronales biológicas
junto con las redes neuronales artificiales son herramientas que permiten el
desarrollo de dichos sistemas inteligentes. 2
2 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
5
Las neuronas biológicas, ubicadas en el aparato de comunicación del ser humano,
están formadas por el sistema nervioso y hormonal y ellas a la vez, están en
continua conexión con los órganos efectores y de los sentidos.
Los órganos efectores como los músculos o glándulas, junto con los órganos de
los sentidos se encargan de agrupar, transmitir, almacenar y enviar información
elaborada, que los receptores de las neuronas congregan en forma de impulsos.
Los receptores están ubicados en las células sensoriales donde se almacena
información, enviada en forma de estímulos por el medio ambiente exterior o
interior del organismo, que dentro del sistema nervioso almacena y envía a los
diferentes órganos efectores o zonas del sistema, para ser interpretados en
acciones hormonales, sensoriales, motoras, entre otras.3
3 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
Figura No.1 Modelo Neurona Biológica Tomado de: http://www.psi-anjen.blogia.com.
6
Las neuronas dentro del sistema de comunicación neuronal son los elementos
más importantes, debido a que transmiten información a distintas neuronas a
través de prolongaciones, utilizando los productos de secreción creados por ellas
mismas. Las prolongaciones forman redes en donde se elabora y almacena
información que llega desde el exterior o interior del organismo; los encargados de
tal función son conocidos como receptores.
Una de las prolongaciones se encarga de enviar impulsos desde la neurona a
otras células nerviosas, tal elemento es conocido como axón, el cual detecta la
información que ha sido enviada en forma de órdenes hasta los efectores, que al
estar cerca o hacer contacto con otras células efectoras o neuronas, sin
fusionarse, se ramifica generando así una zona de contacto conocida como
sinapsis. En pocas palabras el axón es una ramificación de salida de la neurona,
por donde se transmiten una serie de impulsos entre las células efectoras que
están más o menos cerca.
Además de las ramificaciones del axón, se encuentran otras ramificaciones
encargadas de propagar la señal o los elementos entrantes de otras neuronas al
ambiente interior del organismo: las dendritas.4
Las dendritas al propagar la señal en la neurona recogen información de las
células vecinas con respecto a la célula en cuestión, haciendo un contacto entre
las diferentes neuronas (sinapsis), en tal momento el núcleo desempeña su
función: procesar la información enviada para generar una respuesta que sea
propagada por el axón. Después la señal (respuesta) propagada por el axón se
ramifica llegando a las dendritas de otras células; de nuevo se produce sinapsis
gracias a la unión de elementos tanto de las dendritas como del axón, generando
4 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
7
líquido que posee concentraciones de elementos ionizados de sodio y potasio, de
modo que dicho espacio tenga propiedades de conductividad que pueden activar o
impedir el paso de los impulsos eléctricos. Por tal motivo, la sinapsis puede ser
potenciador o inhibidor, aislante o amplificador de las señales propagadas por el
axón. 5
Finalmente, se puede decir que el funcionamiento de la Red Neuronal Biológica es
el de una malla o red gigante, que propaga señales provenientes del medio
ambiente, interno o externo, de unas células a otras que permiten el perfecto
funcionamiento del cerebro humano.
1.2 REDES NEURONALES ARTIFICIALES (RNA) Las redes neuronales artificiales son aquellas que pretenden imitar la forma en
que el cerebro humano funciona, por tal razón se utiliza un esquema muy similar al
de una red neuronal biológica donde son de vital importancia las conexiones y
actualizaciones de las mismas.
Las RNA tienen la capacidad de adaptarse a medios cambiantes, esto quiere decir
que los programas basados en esta área son desarrollados por métodos de
aprendizaje que permite a la red neuronal, mediante ejemplos, entrenarse hasta
aprender a solucionar el problema para el cual ha sido designado. Tales ejemplos
generalmente se representan de forma vectorial.
Las RNA a diferencia de los sistemas de computación no necesitan ser
programados gracias a los ejemplos de entrada y salida, proporcionándole de esta
forma la habilidad de aprendizaje con el fin de producir la salida correcta para
cada entrada.
5 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
8
A continuación se mostrará una figura que permite ver el esquema de una red
neuronal o artificial.
La red neuronal está constituida por entradas que para el caso de la neurona
biológica serian los impulsos. En cada entrada se encuentra un peso sináptico
representado por la letra w, dichas entradas son producto de los impulsos, que al
combinarse dentro del nodo con algún impulso de mayor importancia generan los
impulsos de salidas. A estos impulsos de salida se les conoce como pesos
deseados y son los que finalmente almacenan la información de la red.
Las RNA constantemente reciben señales de un ambiente cambiante, ya sea
interno o externo a la red a la cual está conectada; como las neuronas reciben
diferentes señales la función del nivel de activación cambia; dicha función ahora
se llamará función de transición de estado o función de activación. Este nivel de
activación depende o cambia de acuerdo a las entradas recibidas y los valores
sinápticos actualizados, no depende de los estados de activación anteriores
dentro de la Red Neurona Artificial. 6
6 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
Figura No.2 Modelo Red Neuronal Tomado de: http://www.iac.es/sieinvens/SINFIN/Sie_Courses_PDFs/NNets/confiac.pdf
9
1.3 HISTORIA DE LAS REDES NEURONALES ARTIFICIALES (RNA)
El concepto de redes neuronales artificiales se comienza a manejar con la
implementación de un dispositivo hidráulico descrito por Russell a principio del
siglo XIX. Aunque dicho dispositivo dio inicio al estudio de las RNA, no fue sino
hasta la década de los 40, en pleno siglo XX y aun en el siglo XXI que el auge de
las redes neuronales artificiales tomó fuerza.
Las primeras investigaciones conocidas sobre las RNA se deben a los científicos
Warren McCulloch y Walter Pitts, quienes afirmaron que las neuronas trabajan
mediante impulsos binarios, usando una función de paso por el Umbral. Esta
afirmación, además de ser adoptada por otros científicos como Hopfield7 y
Kosko8 dio pie para crear el primer modelo matemático de las redes neuronales
artificiales: el modelo neuronal de McCulloch-Pitt. Dicho modelo generó gran
interés debido al manejo de cálculos sencillos, comportamiento sofisticado y a la
gran capacidad de aprendizaje, factor clave de este modelo.
Posteriormente al modelo McCulloch-Pitt, se dio a conocer el paradigma de
aprendizaje hebbiano9, desarrollado por el científico Donald Hebb. Los conceptos
de este paradigma junto con el modelo de McCulloch-Pitt se hicieron prácticos al
desarrollar una maquina con 40 neuronas interconectadas entre sí. Las
conexiones de tales neuronas se ajustaban de acuerdo a las situaciones de un
ambiente cambiante, donde se pudo observó y modeló el comportamiento de una
rata al buscar comida en un laberinto. Este experimento fue desarrollado en el año
de 1954 por Marvin Minsky.10
7Creación del modelo de las RNA discretas de HOPFIELD 8 Implementación de la memoria asociativa bidireccional discreta 9 Aprendizaje en un ambiente cambiante 10 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
10
Para el año 1956 los avances en las RNA no se hicieron esperar, por tal motivo se
desarrollaron nuevos paradigmas de aprendizaje, al mismo tiempo que una
maquina de informes: un separador lineal que utilizo el concepto de entropía de
Shannon para ajustar los parámetros de entrada. Dicha máquina fue creada por
Albert Uttley y se dice que aun es usada en diferentes ámbitos como el
reconocimiento adaptivo de patrones y la simulación de fenómenos atmosféricos,
entre otros.
Como se ha mencionado el modelo neuronal matemático de McCulloch-Pitt fue
adoptado por diferentes científicos, uno de ellos el señor Frank Rosenblatt, quien
basado en tal modelo y añadiéndole aprendizaje a este género, creó modelo
llamado PERCEPTRON. Rosenblatt entonces en el año 1957 dio a conocer un
PERCEPTRON de dos niveles que ajustaba los pesos de las conexiones de
entrada y de salida, en proporción al error entre la salida deseada y la salida
obtenida. Ya para el año 1959 Bernard Widrow diseño una RNA conocida como
ADALINE, que al igual que el PERCEPTRON consta de dos niveles y ajusta los
pesos sinápticos entre los niveles de entrada y salida, en función del error entre el
valor esperado de salida y el obtenido. Aunque la diferencia entre ADALINE y
PERCEPTRON son mínimas, lo que realmente las diferencia son las aplicaciones
en que se destacan cada una. Por otro lado ADALINE y PERCEPTRON tienen un
problema matemático: el problema de la separabilidad lineal. Dicho problema fue
descubierto en el año de 1960 por Widrow y Marcian Hoff, quienes demostraron
que matemáticamente el error entre la salida deseada y la obtenida se puede
minimizar hasta un límite deseado. 11
Siguiendo con la historia de las RNA, en la década de los 60, para ser más
exactos entre los años 1961 a 1963, Steinbuch desarrolló métodos de
11 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
11
codificación de información en redes de neuronas. Tal desarrollo se aplicó en
diferentes tareas, como el reconocimiento de escritura a mano distorsionada,
control de múltiples procesos en producción, etc.
Un año después Stephen Grossberg realizó estudios sobre procesos y fenómenos
psicológicos (mente) y biológicos (cerebro), con el fin de investigar cómo el ser
humano procesa toda la información que diariamente adquiere, además intentó
crear una teoría unificada del cerebro y mente humana. Grossberg además de
haber realizado las investigaciones ya mencionadas, también escribió algunos
análisis matemáticos que permitirían la creación de nuevos paradigmas de
aprendizaje en las RNA.
A finales de la década de los 60 y a principio de la década de los 70 se destacaron
las investigaciones que se atan a continuación:
• Shun-Ichi Amari combinó la actividad de las redes neuronales biológicas
con modelos matemáticos, solucionando así el problema de la asignación
de créditos.
• Shun-Ichi Amari incluyó estudios en el tratamiento de RNA dinámicas y
aleatoriamente conectadas, estudios de aprendizaje competitivo y análisis
matemáticos de memorias asociativas
• James Anderson trabajó con un modelo de memoria basado en la
asociación de actividades de la sinapsis de memoria, realizando un modelo
de memoria asociativa lineal, basado en las investigaciones de Hebb.
Realizó un nuevo modelo llamado Brain-state-in-a-box (BSB), dicho modelo
emplea corrección de error y sustituye la función umbral lineal por otra en
rampa12.
12 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
12
• En 1968 en la universidad de Edimburgo descubrió que la relación entre
hologramas y memoria asociativa esta dada por la obtención de un patrón a
partir de unas pocas pistas.
• Longuet y Higgins crearon un sistema de ecuaciones codificadas para
almacenar y recuperar una secuencia de señales
• Willshaw y Buneman junto con Longuet y Higgins (1969), introdujeron los
principios holográficos, como un posible mecanismo de procesos en la
memoria humana
• En la Universidad de Edimburgo surgió un modelo temporal de RNA
llamado Holophone (1970), creado bajo un paradigma que almacena
señales de entrada y puede obtener una señal completa solo con un parte
de ella.
• Kunihiko Fukushima (1969) empezó a estudiar las RNA a partir de modelos
espaciales “espacio-temporales” para sistemas de visión y del cerebro. Su
trabajo fundamental, la creación de un paradigma de RNA multicapa para
visión tiene dos versiones, la primera el COGNITRON y la segunda
mejorada llamada NEOCOGNITRON
• A. Harry Klopf (1969) investigo las relaciones entre la psicología (mente) y
la biología (el cerebro). Generando un sistema adaptivo, donde la neurona
es un componente del cerebro que se mueve con el fin de llegar a cumplir
alguna meta. 13.
Aunque en la década de los 60 se hicieron grandes aportes, en los años 70’s y
80’s, las investigaciones y los nuevos paradigmas no se hicieron esperar; por
ejemplo Teuvo Kohonen (1971) inició sus estudios sobre RNA con paradigmas de
conexiones aleatorias. Además de los anteriores estudios Kohonen (1974) realizó
trabajos que se centraron en memorias asociativas y matrices de correlación. Más
13 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
13
tarde Kohonen y Ruohonen (1977) crearon un nuevo modelo de memoria
asociativa lineal llamado Asociador Optimo de Memoria Lineal (OLAM)
Otras investigaciones que se destacaron entre los años de 1973 a 1979 fueron las
de Leon Cooper y Charles Elbaum, quienes trabajaron en redes neuronales
artificiales y formaron a su vez un grupo llamado Nestor Associates. Tal grupo
tuvo éxito en el desarrollo comercial de algunos sistemas basados en las RNA
como la red RCE (Reduced Coulomb Energy) que estaba implementada con su
propio sistema de aprendizaje NSL (Nestor Learning System).
Además de las investigaciones ya descritas, una de las más grandes
contribuciones que tuvo las décadas de los 70 y 80 fue la del señor Terence
Senjnowski (quien trabajo con modelos matemáticos y biológicos) junto con Geoff
Hinton, quienes descubrieron el algoritmo de aprendizaje para una red de tres
niveles y para la maquina de Boltzman (1986).
Otras dos contribuciones importantes fueron las de John Hopfield (1982) y Bart
Kosko (1987). Hopfield analizó el período estable de una red auto asociativa e
introdujo una función de energía en sus estudios sobre sistemas de ecuaciones no
lineales. Este estudio le permitió demostrar que se puede construir una ecuación
de energía que describa la actividad de una RNA monocapa, en tiempo discreto.
Por su lado Kosko generó una familia de paradigmas de aprendizaje en RNA,
llamadas memorias asociativas bidimensionales (BAM). Estas memorias están
basadas en los estudios de Hebb y se extienden a las auto asociaciones de un
nivel a dos niveles utilizando aprendizaje sin supervisión.14
14 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
14
1.4 ARQUITECTURA DE LAS REDES NEURONALES
Las redes neuronales artificiales se caracterizan por tener diferentes elementos
conectados y organizados unos entre otros; dichos elementos generalmente están
asociados en grupos, niveles o capas que contribuyen a la formación y distribución
de las neuronas en una red. A continuación se describirá los tres tipos de capas
que constituyen una red neuronal:
• Capa de entrada o receptora: capa encargada de recibir la información
que proviene de un ambiente externo a la red.
• Capas Ocultas: son aquellas que se encuentran entre las capas de entrada
y salida, por consiguiente no tienen ningún tipo de contacto con fuentes
externas a la red. El número de capas puede variar de cero hasta un
número elevado y sus conexiones dependen de las tipologías manejadas
en la red neuronal artificial.
• Capas de Salida o emisora: después de ser recibida y procesada la
información en la red neuronal la capa de salida se encarga de transferir la
información de dicha red al ambiente externo.15
15 HILERA GONZALEZ, José R y MARTINEZ HERNANDO, Víctor J. Redes Neuronales Artificiales. Fundamento, Modelos y Aplicaciones. México, D.F: Alfaomega Ra-Ma, 2000
Figura No.3 Modelo Red neuronal Tomado de: www.virtual.unal.edu.co
15
Como se puede apreciar en la Figura No. 3, se ejemplifican las entradas, las
capas o niveles, y las salidas de una red con topología multicapa.
A continuación se explican las redes neuronales artificiales monocapa y multicapa.
1.4.1 Topología de las Redes Neuronales
La topología de las redes neuronales es la estructura física de la red. Consiste en
la agrupación de neuronas que están más o menos lejos de la entrada o salida de
la red. Dicha agrupación de las neuronas genera una red ya sea monocapa o
multicapa, dependiendo de su estructura.
• Redes Neuronales Monocapa
La red neuronal monocapa es la que conecta lateralmente las neuronas
pertenecientes a la única capa que constituye la red. A continuación se muestran
una tabla con los tipos de conexiones y modelos de las redes monocapa:16
TIPOS DE CONEXIÓN MODELO DE RED
CONEXIONES BRAIN‐SATATE‐IN‐A‐BOX CONEXIONES AUTORRE‐ ADDITIVE GROSSBERG (AG) CURRENTES SHUNTING GROSSBERG (SG)
LATERALES OPTIMAL LINEAR ASOCIATIVE MEMORY
EXPLICITAS NO AUTO‐
HOPFIELD BOLTZMANN MACHINE
RECURRENTES CAUCHY MACHINE
CROSSBAR LEARNING MATRIX (LM)
16 HILERA GONZALEZ, José R y MARTINEZ HERNANDO, Víctor J. Redes Neuronales Artificiales. Fundamento, Modelos y Aplicaciones. México, D.F: Alfaomega Ra-Ma, 2000
Tabla No.1 Redes Neuronales Monocapa Tomado de: GONZALEZ, José R y MARTINEZ HERNANDO, Víctor J. 2000
16
• Conexiones Autorrecurrentes: son aquellas conexiones que se encargan
de transferir la salida de una neurona conectada a su propia entrada.
• Conexiones Crossbar: es una topología de red monocapa que consiste en
una matriz de terminales de entrada y salida o barras que se cruzan en
algunos puntos a los que se les asigna un peso (BRICEÑO, 2004)
• Redes Neuronales Multicapa
Se distinguen por tener una o más capas de neuronas ocultas donde las neuronas
están conectadas a todos los nodos de la siguiente capa. Para reconocer a que
capa corresponde cada neurona se debe distinguir el origen de las señales de
entrada y el destino de las señales de salida.17
17 HILERA GONZALEZ, José R y MARTINEZ HERNANDO, Víctor J. Redes Neuronales Artificiales. Fundamento, Modelos y Aplicaciones. México, D.F: Alfaomega Ra-Ma, 2000
Figura No.4 Redes Neuronales Monocapa Tomado de: http://upload.wikimedia.org/
17
• Conexión hacia adelante o ‘feedforward’: las neuronas de una capa
reciben las señales de entrada de otra capa inferior cercana a la entrada de
la red y envía las señales de salida a una capa superior que esté más cerca
a la salida de la red18
18 HILERA GONZALEZ, José R y MARTINEZ HERNANDO, Víctor J. Redes Neuronales Artificiales. Fundamento, Modelos y Aplicaciones. México, D.F: Alfaomega Ra-Ma, 2000
Tabla No.2 Redes Neuronales Multicapa Tomado de: HILERA GONZALEZ, José R y MARTINEZ HERNANDO, Víctor J. 2000
Figura No.5 Redes Neuronales Multicapa Tomado de: http:// www.lcc.uma.es
N° DECAPAS
N
CONEXIONES HACIA ADELANTE BACK‐PROPAGATION (BPN)FEEDFORWARD ‐ FEEDBACK (JERARQUIA DE NIVELES DE CAPAS
BIDIMENSIONALES COGNTTRON/NEOCOGNITRON
(FEEDFORWARD)
CONEXIONES ADELANTE/ATRÁS Y LATERALES BOLTZMANN/CAUCHY MACHINECONEXIONES HACIA ADELANTE BACK‐PROPAGATION (BPN)3
2 CAPAS
CONEXIONES HACIA ADELANTE ADAPTIVE HEURISTIC CRITIC (AHC)BOLTZMANN/CAUCHY MACHINE
COUNTERPROPAGATIONBOLTZMANN/CAUCHY MACHINE
SIN CONEXIONESLATERALES
CON CONEXIONES LATERALESLATERALES
COMPETITIVE ADAPTIVE BAMADAPTIVE RESONANCE THEORY (ART)
CON CONEXIONES LATERALESY AUTORRECURRENTES
CONEXIÓN. HACIA ADELANTE /ATRÁS
(FEEDFORWARD/FEEDBACK)
BIDIRECTIONAL ASSOC. MEM. (BAM)ADAPTIVE BAM‐
TEMPORAL ASSOC. MEMORY (TAM)FUZZY ASSOCIATIVE MEMORY (FAM)
SIN CONEXIONESLATERALES
OPTIMAL LINEAR ASSOC. MEMDRIVE REINFORCEMENT (DR)LEARNING VECTOR QUANTIZERTOPOLOGY PRESERVING MAP
TPM
CONEXIONES LATERALESIMPLICITAS Y
AUTORRECURRENTES
TIPO DE CONEXIONES MODELO DE REDADALINE/MADALINE
PERCEPTRONLINEAR/ASSOC REWAR PENALTYLINEAR ASSOCIATIVE MEMORYCONEXIONES HACIA ADELANTE
FEEDFORWARD
18
• Conexiones hacia atrás o ‘feedback’: este tipo de conexiones consiste en
conectar las salidas de neuronas de capas posteriores a las entradas de
capas anteriores.
• Redes con conexiones hacia adelante y hacia atrás ‘feedforward/feedback’: Este tipo de conexión consiste en que la
información circula hacia adelante como hacia atrás durante el
funcionamiento de la red. Por consiguiente trabaja con conexiones
feedforward y conexiones feedback entre las neuronas.
1.4.2 Perceptrón Simple
Es la forma más simple de una red neuronal, cuenta con entradas, umbral y una
función de activación de tipo signo.
Sólo sirve para clasificar problemas linealmente separables utilizando señales
binarias, tanto en las entradas como en las salidas de las neuronas. 19
19 HILERA GONZALEZ, José R y MARTINEZ HERNANDO, Víctor J. Redes Neuronales Artificiales. Fundamento, Modelos y Aplicaciones. México, D.F: Alfaomega Ra-Ma, 2000
Figura No.6 Modelo Perceptrón Simple Tomado de: Redes Neuronales Artificiales. Fundamento, Modelos y Aplicaciones
19
1.4.3 Perceptrón Multicapa
Es la red neuronal más popular. Se obtiene añadiendo capas de neuronas con una
arquitectura feedforward (tipo de sistema que reacciona al cambio de su entorno).
Normalmente se emplean neuronas no lineales en la capa oculta con una función
de activación tipo sigmoidal.
1.5 APRENDIZAJE
Es de gran importancia comprender la forma de aprendizaje de una red neuronal
artificial, por lo tanto a continuación se proporcionan las especificaciones que
definen dicho concepto, teniendo en cuenta las teorías de diferentes autores
consultados.
Según Gómez, la parte más importante de una Red neuronal Artificial es el
aprendizaje, ya que tal esquema de una red realmente es lo que determina el tipo
de problemas que será capaz de resolver. Las Redes de Neuronas Artificiales son
sistemas de aprendizaje basados en ejemplos. La capacidad de una red para
Volver un problema estará ligada de forma fundamental al tipo de ejemplos que se
dispone en el proceso de aprendizaje.20
20 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
Figura No.7 Modelo Perceptrón Multicapa Tomado de: www.proton.ucting.udg.mxonales
20
El aprendizaje de una Red Neuronal Artificial consiste en la determinación de los
valores precisos de los pesos para todas las conexiones que la capaciten para la
resolución eficiente de un problema. El proceso general de aprendizaje consiste
en ir introduciendo paulatinamente todos los ejemplos del conjunto de aprendizaje
y de tal forma, modificar los pesos de las conexiones siguiendo un determinado
esquema de aprendizaje. Una vez introducidos todos los ejemplos, se comprueba
si se ha cumplido cierto criterio de convergencia; de no ser así se repite el proceso
y todos los ejemplos del conjunto vuelven a ser introducidos.
El concepto de Gómez se complementa con lo enunciado por ISASI, el cual señala
que el proceso para almacenar la información en los pesos de las conexiones
viene dado por lo que comúnmente se denomina como aprendizaje.
Al contrario que los sistemas expertos donde el conocimiento se da explícitamente
por medio de reglas, las redes neuronales generan sus propias reglas
aprendiendo de ejemplos que le son mostrados. El aprendizaje se consigue a
través de reglas que adaptan o cambian los pesos de las conexiones de la red en
respuesta a los ejemplos de entrada de datos y opcionalmente, a la salida
deseada para esas entradas.
Los conceptos anteriormente planteados, coinciden con lo referido por Haykin, ya
que él refiere que el aprendizaje es un proceso por el cual los parámetros se
adaptan en la interacción continua con su medio y como tal, el proceso de
aprendizaje estaría determinado por la forma en que se realiza tal adaptación;
dicho proceso implica una secuencia de eventos, como se indica:21
• La red neuronal es estimulada por el medio ambiente
• La red neuronal ajusta sus parámetros
• La red neuronal genera una nueva respuesta. 21 ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
21
1.5.1 Paradigmas de Aprendizaje
Se teoriza que los paradigma de aprendizaje son la forma como una Red
Neuronal Artificial se relaciona con el medio ambiente. De acuerdo a la revisión
bibliográfica, se encuentra que los paradigmas se dividen en tres tipos:
• Aprendizaje supervisado
• Aprendizaje por refuerzo
• Aprendizaje no supervisado
1.5.2 Aprendizaje Supervisado
Según ISASI si la salida deseada es proporcionada a la red por un instructor, se
presenta aprendizaje supervisado. Para cada estimulo de entrada, se le enseña a
la red un estímulo de salida deseado y esta se configura a si misma
paulatinamente para acumular a la correspondiente entrada / salida deseada.
De acuerdo a Haykin, el instructor tiene conocimiento del medio ambiente,
representado en un conjunto de modelos de entrada-salida, mientras que el medio
ambiente es inédito para la red neuronal. Los parámetros de la red son ajustados
como función del entrenamiento y de la señal de error.
1.5.3 Aprendizaje por Refuerzo
Este aprendizaje, se da según ISASI, si un instructor externo le da información a
la red, informando únicamente si la respuesta a una entrada es buena o mala. 22
22 Minaya Villasana. Introducción a Las redes Neuronales (Neurales)CO-6612 [online] [citado 17, marzo,2008] Available from World Wide Web: <http://prof.usb.ve/mvillasana>
22
Esta información se complementa con lo dicho por Sánchez y Alanís: si de una
acción de un sistema de aprendizaje resulta un estado satisfactorio, entonces la
tendencia del sistema a reproducir esta señal es reforzada, en caso contrario es
disminuida.
Se hallan dos planteamientos, que son:
• No asociativo: se selecciona una sola acción óptima. La única entrada al
sistema de aprendizaje es el refuerzo (autómatas de aprendizaje).
• Asociativo: El ambiente, además de la señal de refuerzo, provee
información para poder crear un mapa sobre estímulo de acción (control
neuronal).
1.5.4 Aprendizaje No Supervisado
En este aprendizaje los datos del conjunto de aprendizaje solo tienen información
de los ejemplos, y no hay nada que permita guiar en el proceso de aprendizaje. En
este caso, no existe profesor externo que determine el aprendizaje.
En la estructura del paradigma de aprendizaje no supervisado se define una
medida independiente de las tareas, para medir la cantidad de la representación
que el sistema de aprendizaje debe aprender. Los parámetros se ajustan para
optimizar tal medida. Este aprendizaje puede ser implementado por aprendizaje
competitivo. Puede ser más rápido que el aprendizaje supervisado ya que la red
neuronal desarrolla la habilidad para formar representaciones de las
características de las entradas y por lo tanto, crea nuevas clases
automáticamente. 23
23 Minaya Villasana. Introducción a Las redes Neuronales (Neurales)CO-6612 [online] [citado 17, marzo,2008] Available from World Wide Web: <http://prof.usb.ve/mvillasana>
23
1.6 ALGORITMOS DE APRENDIZAJE
Según el profesor Minaya Villasana, se define los algoritmos de aprendizaje como
las técnicas matemáticas o heurísticas bien establecidas a través de las cuales se
obtienen los valores de los pesos sinápticos y el parámetro de sesgo. Tales
algoritmos no modifican la función de activación elegida para el modelo de red
neuronal que se entrena.
Tal información se complementa con lo dicho por Sánchez y Alanís donde los
algoritmos de aprendizaje son el conjunto de reglas para resolver el problema de
aprendizaje.
Los algoritmos de aprendizaje más importantes son:
• Corrección de error
• Boltzman
• Regla de Hebb (Delta)
• Competitivo
1.6.1 Algoritmo de Corrección de Error
Como lo plantea Haykin en el libro Neural Network, el objetivo es minimizar una
función de costo (criterio) que considera este error. Una vez seleccionado el
criterio, el problema de aprendizaje por corrección de error se convierte en uno de
optimización.
Esta definición se complementa con lo dicho por Minaya Villasa en el libro
Introducción a las Redes Neuronales, donde se argumenta que es un aprendizaje
supervisado, en donde se usa el error obtenido en la presentación del estímulo
para establecer el factor de corrección.24
24 Minaya Villasana. Introducción a Las redes Neuronales (Neurales)CO-6612 [online] [citado 17, marzo,2008] Available from World Wide Web: <http://prof.usb.ve/mvillasana>
24
• Modelo matemático algoritmo de corrección error:
ésiman − neurona en la iteración k.
)(kdn respuesta deseada de la neurona n.
ny respuesta de la neurona.
)(kx conjunto de entradas, vector de estimulo.
{ })(),( kdkx n par de entrenamiento.
Por consiguiente se obtiene la formula de la ecuación del error: 25
)()()( kykdke nnn −=
Figura No.8 Algoritmo de corrección de error
Tomado de: Redes Neuronales. Conceptos fundamentales y aplicaciones a control automático
25ALANIS GARCIA, Alma y SANCHEZ CAMPEROS, Edgar. Redes Neuronales. Conceptos fundamentales y aplicaciones a control automático. Madrid, España: Pearson Prentice Hall, 2006
25
1.6.2 Aprendizaje Tipo Boltzman
Se nombra así en homenaje de L. Boltzman. Constituye un aprendizaje
estocástico fundamentado en la teoría de la información y consideraciones
termodinámicas.
La red neuronal con esta regla de aprendizaje contiene una distribución repetida
de operación binaria.
Las neuronas se dividen en dos grupos:
1. Visibles. Interactúan con el ambiente.
2. Ocultas. Operan libremente
Modos de operación
1. Fijo. A las neuronas visibles se les fija un estado determinado por el
ambiente.
2. Libre. Todas las neuronas operan libremente
• Modelo Matemático regla de Boltzman: Constituye una estructura
recurrente con salidas binarias, este aprendizaje se caracteriza por una
función de energía E, cuyo valor está definido por el estado de cada
neurona:
∑∑−=k
jkkjj
xxwE21
kj ≠
xj estado de la neurona j
Se escoge aleatoriamente una neurona para aplicar el aprendizaje y conmutar de
estado26.
26 SANCHEZ, Edgar y ALANIS, Alma, Op. Cit., p.28.
26
( ) TEkk kexxP /1
1∆−+
=−→
KE∆ cambio en la función de energía
)( −+ −=∆ kjkjkj ppw α kj ≠
*p Correlación entre los estados cuando las neuronas están fijas a un estado
Aplicando sucesivamente esta regla se lograra alcanzar un equilibrio térmico
1.6.3 Regla de Hebb (delta)
Es un mecanismo variante en el tiempo, local y altamente interactivo, para
incrementar la eficiencia de la sinapsis como una función de la correlación entre
las actividades pre y postsinapticas.
• Características
a) Variante del tiempo. Depende del tiempo exacto en que ocurran las
actividades pre y postsinapticas.
b) Local. La sinapsis está definida en el espacio y tiempo. Esto es usado en la
regla de Hebb para producir una modificación local.
c) Interactiva. Depende de los niveles de activación pre y postsinápticos.
d) Correlación. Depende de la presencia conjunta de los dos niveles de
activación. 27
e) La regla de Hebb se puede replantear en los siguientes términos:
27 ALANIS GARCIA, Alma y SANCHEZ CAMPEROS, Edgar. Redes Neuronales. Conceptos fundamentales y aplicaciones a control automático. Madrid, España: Pearson Prentice Hall, 2006
27
Si A y B son activadas simultáneamente (sincrónicamente), el peso
sináptico que las une se incrementa.
Si son activadas asincrónicamente, entonces este peso se decrementa o
desaparece.
• Modelo Matemático regla de Hebb
njw = Peso sináptico
jx =Señal Pre sináptica
ny =Señal Post sináptica
• Ajuste de interacción k
))(),(()( kxkyFkw jnnj =∆
• Regla de activación del producto
)()()( kxkykw jnnj η=∆
))()(()1( ( kwkeXkw ijnijij +=+∆ η
Donde η es una constante positiva que determina la razón de aprendizaje.
1.6.4 Algoritmo Competitivo
En este tipo de aprendizaje las neuronas de la capa de la salida compiten entre si,
para ser la única ganadora. Una sola neurona se dispara a cada iteración k. Este
esquema resulta ventajoso para descubrir características importantes en el
reconocimiento de patrones28.
28 ALANIS GARCIA, Alma y SANCHEZ CAMPEROS, Edgar. Redes Neuronales. Conceptos fundamentales y aplicaciones a control automático. Madrid, España: Pearson Prentice Hall, 2006
28
Los principales antecedentes de este aprendizaje son:
• Autoorganización de las células nerviosas sensibles a la orientación
(Malsburg, 1973).
• Cognitron: red neuronal multicapa auto organizada (Fukushima, 1985)
• Mapas topográficos en el cerebro (Durbin, 1989).
Existen tres componentes básicos de la regla de aprendizaje competitivo
(Rumelhart y Zipser, 1985).
• Conjunto de neuronas, con la misma función de activación, pero con pesos
diferentes distribuidos aleatoriamente.
• Un límite en la suma de los pesos de cada neurona (strength).
• Un mecanismo para que cada neurona compita por responder.
La neurona que gana se denomina ganadora toma todo (“winner take it all”).
Cada neurona se especializa en detectar una característica particular. 29
• Modelo Matemático Algoritmo Competitivo
Figura No.9 Estructura de una red neuronal con aprendizaje competitivo
Autor Desconocido
29 SANCHEZ, Edgar y ALANIS, Alma, Op. Cit., p.28.
29
⎩⎨⎧ ≠∀>
=casootroen
kjjvvsíy jk
k 0
,1
Considerando el peso sináptico kjw , estos valores son positivos y limitados a:
kwj
kj ∀=∑ 1
En los pesos se ajusta
⎩⎨⎧ −
=∆PerdedoraNeurona
GanadoraNeuronawxw kjj
kj 0
)(α
Esta regla mueve el vector de pesos sinápticos kjw de la neurona ganadora k
hacia el patrón de entradas x.
1.7 TEORÍA MATEMÁTICA DE LAS REDES NEURONALES ARTIFICIALES
Consiste en el estudio a las RNA cuya aplicación se realiza en el aprendizaje
supervisado y teniendo sus componentes como: el ambiente, entrenador y modelo
de aprendizaje.
Ambiente: Es desconocido para la red neuronal, genera un vector de datos de
entrada )( x .
Entrenador: Tiene el conocimiento del medio ambiente, provee al vector )( y de la
respuesta deseada. 30
• Modelo de aprendizaje: se selecciona los parámetros de la máquina para
ajustarlos a la red, donde W (pesos sinápticos), parámetros o medidas
30 ALANIS GARCIA, Alma y SANCHEZ CAMPEROS, Edgar. Redes Neuronales. Conceptos fundamentales y aplicaciones a control automático. Madrid, España: Pearson Prentice Hall, 2006
30
Figura No.10 Componentes del aprendizaje supervisado
Tomado de: Redes de Neuronas Artificiales. Un Enfoque Práctico.
1.8 FUNCIONES DE ACTIVACIÓN
Son denotadas por )(vϕ , definen las salidas de las neuronas en función del
potencial de activación
1.8.1 Función Escalar o umbral
Presenta intervalos binarios de 0,1
⎩⎨⎧
<≥
=0001
)(vsívsí
vϕ
1.8.2 Función lineal a Tramos
Donde el factor de amplificación de la región de operación se supone igual a la
unidad31
31 ALANIS GARCIA, Alma y SANCHEZ CAMPEROS, Edgar. Redes Neuronales. Conceptos fundamentales y aplicaciones a control automático. Madrid, España: Pearson Prentice Hall, 2006
Maquinas de aprendizaje
Ambiente
Maestro
y= F(x, w)
x1, x2…..…xn
d1, d2…..…dn
31
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
−≤
−>>+
+≥
=
210
21
21
211
)(
v
vv
v
vϕ
1.8.3 Función Sigmoidal
Es la más utilizada en las redes neuronales, es creciente con un comportamiento
asintótico.
avev −+=
11)(ϕ
1.8.4 Función signo
Es aquella donde las funciones de activación toman valores en el intervalo
cerrado [-1,1]. 32
⎪⎩
⎪⎨
⎧
<−=>
=01
0001
)(vsí
vsívsí
vϕ
32 ALANIS GARCIA, Alma y SANCHEZ CAMPEROS, Edgar. Redes Neuronales. Conceptos fundamentales y aplicaciones a control automático. Madrid, España: Pearson Prentice Hall, 2006
Figura No.11 Función Sigmoidal
32
Figura No.12 Función Signo
• Modelo matemático funcion signo:
∑=
=p
iWniXiV
1
síy 1=
""
.
.12
1
ecomprobarsquetienequeConjuntoCexx
x
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
=
11 paray =
22
1
.
.Cex
xx
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
=
La condición es que 1C intersección con 2C sea igual a un conjunto vacío33.
φ=∩ 21 CC
33 Adaptado de la materia Redes Neuronales. Fundación Universitaria Panamericana. Erika Paola Holguín Ontiveros.
33
1.9 INTELIGENCIA ARTIFICIAL A PARTIR DE REDES NEURONALES ARTIFICIALES
Desde hace algunos años, se han desarrollado investigaciones que buscan llegar
a la creación de sistemas artificiales que sean capaces de realizar actividades
propias de los seres humanos, es decir que requieran inteligencia. Dicha disciplina
recibe el nombre de Inteligencia Artificial.
Sin embargo, el desarrollo de la investigación que simule inteligencia ha
presentado dificultades, ya que los sistemas computacionales no poseen
cualidades de análisis e interpretación de la información sino simplemente, se
limitan a procesar datos y entregar resultados que para estos no poseen
significado alguno.
• Características de la Inteligencia Artificial:
1. A diferencia de los métodos numéricos la Inteligencia Artificial, utiliza
símbolos no matemáticos.
2. Los programas de Inteligencia Artificial poseen capacidad para exponer
diferencias entre el programa de razonamiento o motor de inferencia y base
de conocimientos ya que puede distinguirlos.
3. La inteligencia Artificial permite trabajar con problemas con deficiencias en
su estructura y da aplicabilidad a datos.
Teniendo en cuenta que la inteligencia artificial pretende imitar al ser humano en
algunas actividades independientemente de la complejidad de la actividad y que
para ello utiliza el concepto de redes neuronales artificiales, a continuación se
hace una breve explicación de la relación entre estas dos disciplinas34.
34 GRAUBARD, Stephen R. El Nuevo Debate Sobre La Inteligencia Artificial. Sistemas Simbólicos y Redes Neuronales. Barcelona, España: Gedisa S.A, 1993
34
La Inteligencia Artificial busca que máquinas de cómputo posean conductas
inteligentes similares a las humanas y basadas en el funcionamiento de su
cerebro. Para obtener tal fin, se desarrollan los siguientes pasos que hacen parte
del paradigma estándar de la Inteligencia Artificial:
1. Determinación de la lógica de la conducta deseada y descripción del
contexto, (análisis del problema a resolver).
2. Utilización de varios métodos de búsqueda (heurísticas) que se basan en la
información existente especificada por el diseñador.
3. Representación adecuada de los métodos en mención en un lenguaje de
programación.
Con estos pasos se puede determinar que un sistema será exitoso si el diseñador
los utiliza adecuadamente.
Sin embargo al analizar el procedimiento definido con anterioridad, no es seguro
que situaciones en las que cambie el contexto tengan el mismo éxito, por lo que
las redes neuronales empiezan a tener importancia y específicamente, los
perceptrones de capas múltiples. A diferencia del proceso descrito anteriormente,
para diseñar un perceptrón multicapa no se hace necesaria la descripción lógica
específica, sino únicamente “una comprensión de las complejidades de conducta
deseada” para lograr el diseño una red neuronal en forma global y una adecuada
representación lógica.35
Cuando la red neuronal artificial inicia su proceso retrospectivo, genera un
entrenamiento por medio del cálculo de nuevos pesos que lleva a descripción de
la conducta deseada, mejorando el proceso de definición explícita de la lógica que
35 GRAUBARD, Stephen R. El Nuevo Debate Sobre La Inteligencia Artificial. Sistemas Simbólicos y Redes Neuronales. Barcelona, España: Gedisa S.A, 1993
35
requiere un sistema de inteligencia artificial. Sin embargo, aunque a través del
tiempo se demuestre que la solución a problemas complejos por medio de
perceptrones multicapa es muy adecuada, aún se utiliza la inteligencia artificial
con mayor interés. Cuando se logre diseñar la arquitectura global de una red
neuronal que codifique adecuadamente el conocimiento sobre la organización
lógica de una conducta se espera que los perceptrones multicapa puedan definir
con precisión descripciones implícitas de conductas complicadas.
1.9.1 Memoria Inteligencia Artificial vs Redes Neuronales
Un limitante para el desarrollo avanzado de la inteligencia artificial, es el alto costo
de las memorias con la capacidad y velocidad que esta requiere. Al obtener este
tipo de desarrollo y combinarlo con redes neuronales que se puedan entrenar, se
podrán representar en máquinas cuyas conductas sean realmente inteligentes.
1.9.2 Perspectivas Futuras de la Inteligencia Artificial y Redes Neuronales
Aunque se ha avanzado profundamente en los temas de inteligencia artificial y
redes neuronales, aún falta tiempo para lograr verdadera Inteligencia. Todo este
progreso en diseño de la arquitectura de redes para desarrollar labores
inteligentes, se basa en análisis previo del contexto y en la tarea a ejecutar por
parte del diseñador, puesto que es él quien realmente realiza el trabajo que
requiere pensamiento.
Quien diseña da el sentido y el verdadero significado a la labor ejecutada. En 1943
Kenneth J. W Craik expresa sobre la inteligencia artificial que debe ser “el
pensamiento el que reproduce la realidad mediante el simbolismo”, pero para
llegar a este punto, es necesario que el entrenador maneje a profundidad los
procesos de pensamiento que se requieren para dichas reproducciones en
simbolismos.36
36 GRAUBARD, Stephen R. El Nuevo Debate Sobre La Inteligencia Artificial. Sistemas Simbólicos y Redes Neuronales. Barcelona, España: Gedisa S.A, 1993
36
Teniendo en cuenta los diversos ejemplos, modelos y requerimientos que tiene el
trabajo en inteligencia artificial, el progreso eficaz en este tema se logrará hasta
que se llegue a la comprensión de la manera en que las ideas y las intenciones del
cerebro humano toman forma. Para esto se pueden tener en consideración cada
uno de los trabajos en redes neuronales, y más específicamente, en perceptrones
multicapa, que al sincronizarse con el proceso de la inteligencia artificial
alcanzarían finalmente “lo que McCulloch una vez llamo epistemología
experimental: el estudio de la forma en que el conocimiento se encarna en el
cerebro y en las maquinas”. 37
37 GRAUBARD, Stephen R. El Nuevo Debate Sobre La Inteligencia Artificial. Sistemas Simbólicos y Redes Neuronales. Barcelona, España: Gedisa S.A, 1993
37
2. AMBIENTES GRÁFICOS EN DOS DIMENSIONES
Mas del 70% de la información que percibe el ser humano es gracias al sentido de
la visión, ya que esta suele recibir escenas o imágenes tridimensionales (3D).
Dichas escenas tridimensionales son capturadas generalmente en diferentes
dispositivos (cámaras fotográficas o de vídeo, pantallas de rayos X, etc.), pasando
así de ser escenas 3D a ser escenas bidimensionales (2D), las cuales al estar en
una dimensión inferior con respecto a la tridimensional supone una gran pérdida
de información.
El ordenador es uno de los elementos más usados para ver imágenes
tridimensionales, sin embargo capturar objetos o personas que están en continuo
movimiento requiere la interpretación y el análisis de muchas imágenes en
constante cambio. Para dicha tarea es necesario un conocimiento más amplio y
profundo del tema que trata la imagen.
Por consiguiente dependiendo del dispositivo usado para proyectar las
formaciones de escenas, se diferencia varios tipos de imágenes:
• Imágenes formadas mediante la luz visible, ejemplo, la luz cuya longitud de
onda oscila entre 350 y 700 nanómetros, que corresponden a las imágenes
capturadas por una cámara fotográfica, de vídeo o de TV.
• Imágenes formadas por rayos infrarrojos, donde permiten la visión nocturna.
• Imágenes formadas por rayos ultravioleta, como espectrogramas (fotografía de un espectro luminoso obtenida mediante un espectrógrafo,
sobre placa de cristal o película sensible). 38
38 AUTOR Desconocido. Imágenes digitales y sus propiedades; Disponible: < http://www.lcc.uma.es/~munozp/pi_cap1.pdf>
38
• Imágenes formadas a partir de campos magnéticos, como la resonancia magnética utiliza un potente campo magnético para obtener imágenes
detalladas del corazón.
• Imágenes formadas a partir de ultrasonidos, como la ecografía, que forma
una imagen por la reflexión de las ondas sonoras con determinadas partes
del cuerpo. Ejemplo: el ecocardiograma,
• Imágenes formadas a partir de impulsos eléctricos, como el
electrocardiograma, donde se amplifica a los impulsos eléctricos del
corazón y se registran en un papel en movimiento.
Estas imágenes se pueden modelar por una función continua de dos o tres
variables. En el caso de imágenes estáticas los dos argumentos de la función son
las coordenadas (x,y) del plano cartesiano, mientras que en las imágenes
dinámicas (las que van cambiando en el tiempo) se necesita de una tercera
coordenada (t) que especifique el tiempo. Los valores de la función corresponden
a la luminosidad, brillo o intensidad de la radiación de los puntos de la imagen.
Igualmente pueden representar presión, temperatura, distancia al observador, etc.
f
Punto de la imagen ≡ (x, y, t) (x, y, t) ≡ intensidad luminosa
Una función discreta tiene el dominio discreto; Una función continua tiene el
dominio y el rango continuo y la función digital tienen el dominio y el rango
discretos.39
39 AUTOR Desconocido. Imágenes digitales y sus propiedades; Disponible: < http://www.lcc.uma.es/~munozp/pi_cap1.pdf>
39
Una imagen en 2D es el resultado de una proyección de una escena en 3D. Un
punto de la escena 3D aparece representado por su proyección en el plano
imagen. Así, el punto P=(x,y,z) se proyecta en el punto P’=(x’,y’,f) cuyas
coordenadas vienen dadas por las expresiones:
Donde se obtienen directamente del teorema de Thales (ver la figura N° 13)40
Figura No.13 Proyección sobre el plano imagen
Tomado de: http://www.lcc.uma.es/~munozp/pi_cap1.pdf
Para las imágenes el color es una propiedad de información en la percepción
visual humana. El color se asocia con la capacidad de los objetos de reflejar ondas
electromagnéticas de diferente longitud de onda, por consiguiente el ser humano
detecta los colores como combinaciones de tres colores primarios, el azul, el verde
y el rojo, el verde y el azul. Por ejemplo las pantallas de las computadoras suelen
utilizar el modelo RGB (red-green-blue), donde cada píxel está asociado a un
vector tridimensional (r,g,b) que conduce al ser humano a un color determinado; el
40AUTOR Desconocido. Imágenes digitales y sus propiedades; Disponible: < http://www.lcc.uma.es/~munozp/pi_cap1.pdf>
40
vector (0,0,0) es el negro, (L,L,L) es el blanco, (L,0,0) es el rojo “puro”, y así
sucesivamente (ver la figura 14). Esto implica que se tiene L3 Colores diferentes
que no todos serán albergados por el dispositivo, por lo que es común especificar
un subconjunto de estos, llamado paleta de colores.
Figura No.14 Proyección sobre el plano imagen
Tomado de: http://www.lcc.uma.es/~munozp/pi_cap1.p
Los colores rojos, verdes y azules que pertenecen a los vértices del cubo son los
colores primarios de la luz y los colores magenta, cian y amarillo de los otros tres
vértices son los colores secundarios.41
Por otro lado, también hay imágenes de color RGB, dichas imágenes están
definidas por tres matrices del tamaño MxN, donde cada pixel corresponda a una
41AUTOR Desconocido. Imágenes digitales y sus propiedades; Disponible: < http://www.lcc.uma.es/~munozp/pi_cap1.pdf>
41
posición específica de las mismas y tiene incorporado una tripleta de valores, (r, g,
b), que muestran la tonalidad correspondiente a cada uno de los colores42
Figura No.15 Componentes de una imagen en color
Tomado de: http://www.lcc.uma.es/~munozp/pi_cap1.p43
43 AUTOR Desconocido. Imágenes digitales y sus propiedades; Disponible: < http://www.lcc.uma.es/~munozp/pi_cap1.pdf>
42
3. METODOLOGIA
Para el desarrollo del presente proyecto se utilizó la metodología de ciclo PHVA,
(Planear, Hacer, verificar, actuar), debido a que es un modelo y estándar de
evaluación que permite el mejoramiento de procesos en proyectos que tiene como
finalidad desarrollar software.
3.1 PLANEAR
Durante la Planeación se delimitó el tema a desarrollar referente a la detección de
obstáculos con Redes Neuronales Artificiales. Por tal motivo se genero un
ambiente controlado en dos dimensiones (2D) propuesto por la directora Ing. Erika
Paola Holguín Ontiveros.
Los próximos pasos que se llevaron a cabo fueron:
• La consulta preliminar de la bibliografía
• Creación de los objetivos generales y específicos
• Planteamiento del problema y desarrollo de la justificación.
Finalmente se programó un cronograma de actividades teniendo en cuenta el
proceso de planeación. (Ver Anexo (1) - Diagrama Gannt)
3.1.1. PRESUPUESTO
Para el desarrollo del proyecto, se utilizaron herramientas mínimas que sirvieron
de apoyo para el desarrollo de la investigación y la presentación del proyecto. (Ver
Anexo (2) – Presupuesto Estimado)
43
3.2 HACER En esta etapa se desarrolló toda la parte investigativa y de documentación sobre
el tema de redes neuronales con el fin de realizar un marco teórico enriquecido.
Así mismo en esta fase se realizo un proceso de ingeniería directa que permitió
crear los diagramas en StarUML (casos de uso y clase) y la codificación del
software final. (Ver Anexo (3) - Código fuente detección de obstáculos con
corrección de error)
Casos de Uso
Figura No.16 Casos de Uso
Tomado de: Sistema perceptrón simple para evadir obstáculos generados en un ambiente controlado de dos dimensiones (2d), utilizando aprendizaje supervisado con adaptación de algoritmo de corrección de error
44
Diagrama de Clase
Figura No.17 Diagrama de Clase Tomado de: Sistema perceptrón simple para evadir obstáculos generados en un ambiente controlado de dos dimensiones
(2d), utilizando aprendizaje supervisado con adaptación de algoritmo de corrección de error
45
3.3 VERIFICAR En esta etapa se realizo un análisis de gráficos donde se evaluó que sucede
cuando se maneja una tasa de aprendizaje de 0.1, 0.2, 0.3 y 0,6. Todo lo anterior
con el fin de explicar la teoría de las tasas de aprendizaje
3.3.1 Análisis De La Grafica Que Tiene Relacionadas Las Tasas De Aprendizaje 0.1, 0.2 y 0.3.
EVASIÓN DE UN OBSTÁCULO CON UNA TASA DE APRENDIZAJE 0,1
Figura No.18
Evasión de un obstáculo con una tasa de aprendizaje 0,1 Tomado de: Sistema perceptrón simple para evadir obstáculos generados en un ambiente controlado de dos dimensiones
(2d), utilizando aprendizaje supervisado con adaptación de algoritmo de corrección de error
46
En la figura No 18 se puede apreciar que el agente evade un obstáculo horizontal
con una tasa de aprendizaje de 0,1, generando 16783 numero de iteraciones. Esta
figura por sí sola no indica nada por consiguiente se llego a comparar con la figura
No 19 y 20 con el fin de evaluar que sucede cuando se aumenta la tasa de
aprendizaje.
EVASIÓN DE UN OBSTÁCULO CON UNA TASA DE APRENDIZAJE 0,2
Figura No.19
Evasión de un obstáculo con una tasa de aprendizaje 0,2 Tomado de: Sistema perceptrón simple para evadir obstáculos generados en un ambiente controlado de dos dimensiones
(2d), utilizando aprendizaje supervisado con adaptación de algoritmo de corrección de error
47
En la figura No 19 se observa el aprendizaje del agente al evadir un obstáculo
horizontal con una tasa de aprendizaje de 0.2 y un número de iteraciones de
4191. Si se compara la figura No 18 con la figura actual se puede apreciar que el
numero de iteraciones con una tasa de aprendizaje de 0.2 es mucho menor que
con la tasa de aprendizaje de 0,1. Esto indica que al tener una tasa de
aprendizaje alta la neurona aprende con mayor rapidez. Para confirmar dicha
teoría a continuación se mostrara el aprendizaje de la neurona con una tasa de
aprendizaje de 0,3.
EVASIÓN DE UN OBSTÁCULO CON UNA TASA DE APRENDIZAJE 0,3
Figura No.20 Evasión de un obstáculo con una tasa de aprendizaje 0,3
Tomado de: Sistema perceptrón simple para evadir obstáculos generados en un ambiente controlado de dos dimensiones (2d), utilizando aprendizaje supervisado con adaptación de algoritmo de corrección de error
48
Como se puede observar en este escenario la tasa de aprendizaje es de 0.3 y el
número de iteraciones es de 1860 al evadir el único obstáculo horizontal. Al
comparar las figura No 18 y 19 con la figura actual se puede llegar a afirmar que
entre más alta la tasa de aprendizaje más rápido aprende la neurona.
A continuación se presente una grafica que muestra la relación que hay entre las
tasas de aprendizaje 0.1, 0.2 y 0.3 y el tiempo de aprendizaje que la neurona tiene
con el primer obstáculo del escenario horizontal. X es el tiempo (en segundos) que
se demora la neurona al aprender y Y es la tasa de aprendizaje utilizada.
Figura No.21
Rendimiento Aprendizaje Red Neuronal con Tasas de aprendizaje 0.1, 0.2, 0.3 En Un Escenario Horizontal
Tomado de: Sistema perceptrón simple para evadir obstáculos generados en un ambiente controlado de dos dimensiones
(2d), utilizando aprendizaje supervisado con adaptación de algoritmo de corrección de error
La gráfica evidencia lo ya descrito al afirma que el aprendizaje con una tasa de
aprendizaje alta es mucho más rápida que con una tasa de aprendizaje baja.
49
3.3.2. Análisis De La Grafica Que Tiene Relacionadas Las Tasas De Aprendizaje 0.6, y 0.1; Con 8 Obstáculos
EVASIÓN DE OCHO OBSTÁCULO CON UNA TASA DE APRENDIZAJE 0,6
Figura No.22
Rendimiento Aprendizaje Red Neuronal con Tasa de aprendizaje 0.6 En Un Escenario Horizontal con 8 obstáculos
Tomado de: Sistema perceptrón simple para evadir obstáculos generados en un ambiente controlado de dos dimensiones
(2d), utilizando aprendizaje supervisado con adaptación de algoritmo de corrección de error
En la figura No 22 se evidencia un escenario con 8 obstáculos horizontales y una
tasa de aprendizaje de 0,6. Al tratar de evadir el obstáculo No 6 la neurona se
demora, se pierde y finalmente no aprende
50
EVASIÓN DE OCHO OBSTÁCULO CON UNA TASA DE APRENDIZAJE 0,1
Figura No.23 Rendimiento Aprendizaje Red Neuronal con Tasa de aprendizaje 0.1 En Un Escenario Horizontal con 8 obstáculos
Tomado de: Sistema perceptrón simple para evadir obstáculos generados en un ambiente controlado de dos dimensiones
(2d), utilizando aprendizaje supervisado con adaptación de algoritmo de corrección de error
En la figura No 23 se evidencia un escenario con 8 obstáculos horizontales y una
tasa de aprendizaje de 0,1. En este caso la neurona sí aprende y logra superar
todos los obstáculos sin mayor alteración o demora alguna.
51
En la siguiente grafica se muestra la inestabilidad que tiene el agente para
aprender con una tasa de aprendizaje alta.
Figura No.24
Rendimiento Aprendizaje Red Neuronal con Tasas de aprendizaje 0.6, y 0,1 En Un Escenario Horizontal
Tomado de: Sistema perceptrón simple para evadir obstáculos generados en un ambiente controlado de dos dimensiones
(2d), utilizando aprendizaje supervisado con adaptación de algoritmo de corrección de error
Se puede observar que aunque se tiene la tasa de aprendizaje alta (0,6), el tiempo
de espera fue mayor que el de la tasa de aprendizaje baja (0,1). Esto sucede a
que la neurona o agente se pierde y realmente no encuentra una salida, por
consiguiente es inestable y poco confiable usar tasas de aprendizaje demasiado
altas
52
Nota: El software define un rango de iteraciones de 50.000 como máximo, si
se pasa de este rango quiere decir que la neurona se perdió y no aprendió.
Las líneas naranjas demuestran las iteraciones mayores a 25.000
Las líneas rojas demuestran las iteraciones mayores a 40.000
La línea amarilla muestra la salida deseada
3.4 ACTUAR
Se debe tener instalado:
• Manuales (Ver Video en la opción ayuda del software) • SQL SERVER 2005 • .Net Framework 2.0 • Flash para ayuda de video • Tener instalada la base de datos en el servidor de SQL SERVER • Cambiar la cadena de conexión en el archivo APP.CONFIG
53
4. CONCLUSIONES
• Este trabajo coloca a disposición de la Fundación Universitaria
Panamericana una documentación práctica y original de los temas más
relevantes de las RNA con el fin de incentivar investigaciones y
desarrollos tecnológicos que aporten soluciones a problemas
encontrados en la sociedad.
• El presente proyecto es tan solo el primer paso de varios avances que
se pueden desarrollar dentro de la FUP con el área de Redes
Neuronales Artificiales. Con el fin de hacer un aporte a la sociedad dicho
proyecto anhela que futuros investigadores optimicen el software ya
desarrollado y después lo adapten en algún objeto perteneciente a
personas ciegas, con el fin de informarles que camino deben tomar para
dirigirse a un lugar específico sin chocar y evadiendo posibles peligros u
obstáculos.
• Gracias al desarrollo del software se logro hacer un análisis de graficas
que permitió evidenciar la teoría de las tasas de aprendizaje. Dicha
teoría indica que al tener una tasa de aprendizaje baja la neurona se
demora en aprender más pero finalmente aprende. En el caso contrario
al tener una tasa de aprendizaje alta no es seguro que la neurona
aprenda, por consiguiente en el programa la neurona se demora en
aprender o finalmente se pierde.
54
5. RECOMENDACIONES
• Se invita al usuario tener previos conocimientos sobre Redes
Neuronales Artificiales y algoritmo de corrección de error para una
mayor comprensión de los procesos que hace el software
• Se recomienda que mediante el software, se genere nuevos aplicativos
o programas que aporten a los avances en las tecnologías que integran
las Redes Neuronales e Inteligencia Artificial
• Seguir con el proceso de investigación en el tema, con el fin de crear
nuevos aplicativos y tecnologías. Se recomienda explorar los campos de
medicina, finanzas, medio ambiente entre otras.
• Se desea hacer aportes que ayuden y beneficien a poblaciones
especificas (como personas con discapacidades), por tal motivo se
recomienda explorar el campo de la medicina junto con el desarrollo de
software y RNA. Además se recomienda tener en cuenta, que no todas
las personas tienen los mismos recursos por consiguiente deben ser
desarrollos de fácil acceso adquisitivo para toda la población.
55
BIBLIOGRAFIA
BRICEÑO BELTRAN, Carlos O. Redes Neuronales Artificiales. Lógica Difusa.
Geometría de Fractales. Colombia Cali. Publicación Cenicaña Abril 2004
FREEMAN, James A. Redes neuronales: Algoritmos, aplicaciones y técnicas de
programación. Buenos Aire. Addison-Wesley, Diaz de Santos 1993
GRAUBARD, Stephen R. El Nuevo Debate Sobre La Inteligencia Artificial.
Sistemas Simbólicos y Redes Neuronales. Barcelona, España: Gedisa S.A, 1993
HILERA GONZALEZ, José Ramón. Redes neuronales Artificiales. Fundamentos,
modelos y aplicaciones. Wilmington, Addison-Wesley, Iberoamericana, RA-MA,
1995
ISASI VIÑUELA, Pedro y GALVAN LEON, Inés M. Redes de Neuronas
Artificiales. Un Enfoque Práctico. Madrid, España: Pearson Prentice Hall, 2004
INSTITUTO COLOMBIANO DE NORMAS TÉCNICAS Y CERTIFICACIÓN. Compendio de normas Técnicas Colombianas sobre Documentación, tesis y otros
trabajos de grado, Bogotá: ICONTEC, 2004
LOPEZ, F.J. Redes neuronales. Evolución Histórica. En: Mundo electrónico. 1989
MARTÍN DEL BRÍO. Bonifacio. Redes neuronales y sistemas borroso. 2da
edición. Madrid: Alfaomega Grupo editores, 2001
MORLOY ZERPA. Levis. Fundamentos Lógicos de las redes Neuronales.
56
Cuaderno de postgrado N° 28
SANCHEZ EDGAR, Alanís Alma Redes Neuronales Conceptos Fundamentos y
Aplicaciones a Control Automático. Madrid España Pearson Prentice Hall, 2006
STUARTN J. Russell, PETER Norving, Inteligencia Artificial Un Enfoque
Moderno
TABARES O, Héctor. Redes Neuronales Artificiales. Medellín: Editorial
Universidad Pontificia Bolivariana, 2005.
57
ANEXOS
58
(ANEXO 1) – DIAGRAMA DE GANNT
59
60
ANEXO 3
CÓDIGO FUENTE DETECCIÓN DE OBSTÁCULOS CON CORRECCIÓN DE ERROR
Public Class PROYECTO Private Sub EntrenarAgenteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EntrenarAgenteToolStripMenuItem.Click My.Forms.simulacion.entrenar_agente() End Sub Private Sub IniciarAgenteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IniciarAgenteToolStripMenuItem.Click My.Forms.Ayuda.MdiParent = Me My.Forms.crearot.Close() My.Forms.simulacion.Close() My.Forms.Ayuda.Close() My.Forms.Ayuda.Show() End Sub Private Sub SalirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirToolStripMenuItem.Click Me.Close() End Sub Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AcercaDeToolStripMenuItem.Click My.Forms.Acercade.Show() End Sub Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) My.Forms.crearot.MdiParent = Me My.Forms.crearot.Show() End Sub Private Sub ToolStripLabel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripLabel1.Click My.Forms.Ayuda.MdiParent = Me My.Forms.crearot.Close() My.Forms.simulacion.Close() My.Forms.Ayuda.Close() My.Forms.Ayuda.Show() End Sub Private Sub ToolStripButton5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton5.Click Me.Close() End Sub
61
Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton4.Click My.Forms.simulacion.entrenar_agente() End Sub Private Sub ToolStripButton1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click My.Forms.crearot.tipo = 1 My.Forms.crearot.MdiParent = Me My.Forms.crearot.Show() End Sub Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click My.Forms.crearot.tipo = 2 My.Forms.crearot.MdiParent = Me My.Forms.crearot.Show() End Sub Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton3.Click My.Forms.crearot.tipo = 3 My.Forms.crearot.MdiParent = Me My.Forms.crearot.Show() End Sub Private Sub ObstaculosVerticalesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ObstaculosVerticalesToolStripMenuItem.Click My.Forms.crearot.tipo = 1 My.Forms.crearot.MdiParent = Me My.Forms.crearot.Show() End Sub Private Sub ObstaculosVerticalesToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ObstaculosVerticalesToolStripMenuItem1.Click My.Forms.crearot.tipo = 2 My.Forms.crearot.MdiParent = Me My.Forms.crearot.Show() End Sub Private Sub ObstaculosHorizontalesYVerticalesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ObstaculosHorizontalesYVerticalesToolStripMenuItem.Click My.Forms.crearot.tipo = 3 My.Forms.crearot.MdiParent = Me My.Forms.crearot.Show() End Sub Private Sub PROYECTO_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub End Class
62
Public Class simulacion Public n As Integer Public obstaculo As Button Dim tipo As Integer = My.Forms.crearot.tipo Private Sub simulacion_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.WindowState = FormWindowState.Maximized Me.BackColor = Color.Black If tipo = 1 Then horizontal() Else If tipo = 2 Then vertical() Else If tipo = 3 Then laberinto() End If End If End If End Sub Public Sub laberinto() Dim i As Integer = 0 While i < n obstaculo = New Button i = i + 1 Select Case (i) Case 1 obstaculo.Size = New Size(222, 10) obstaculo.Location = New Point(1, 455) obstaculo.Name = "horizontal" Case 2 obstaculo.Size = New Size(347, 10) obstaculo.Location = New Point(298, 455) obstaculo.Name = "horizontal" Case 3 obstaculo.Size = New Size(10, 402) obstaculo.Location = New Point(635, 63) obstaculo.Name = "vertical" Case 4 obstaculo.Size = New Size(211, 10) obstaculo.Location = New Point(335, 382) obstaculo.Name = "horizontal" Case 5 obstaculo.Size = New Size(10, 160) obstaculo.Location = New Point(335, 232) obstaculo.Name = "vertical" Case 6 obstaculo.Size = New Size(168, 10) obstaculo.Location = New Point(84, 375) 5: obstaculo.Name = "horizontal" Case 7 obstaculo.Size = New Size(10, 127) obstaculo.Location = New Point(84, 258) obstaculo.Name = "vertical" Case 8
63
obstaculo.Size = New Size(243, 10) obstaculo.Location = New Point(1, 257) obstaculo.Name = "horizontal" Case 9 obstaculo.Size = New Size(211, 10) obstaculo.Location = New Point(335, 232) obstaculo.Name = "horizontal" Case 10 obstaculo.Size = New Size(459, 10) obstaculo.Location = New Point(1, 167) obstaculo.Name = "horizontal" Case 11 obstaculo.Size = New Size(10, 179) obstaculo.Location = New Point(536, 63) obstaculo.Name = "vertical" Case 12 obstaculo.Size = New Size(544, 10) obstaculo.Location = New Point(1, 63) obstaculo.Name = "horizontal" End Select obstaculo.BackColor = Color.OrangeRed Me.Controls.Add(obstaculo) AddHandler obstaculo.Click, AddressOf btn1click End While End Sub Public Sub horizontal() Dim i As Integer = 0 Dim j As Integer = 1 Dim pasoder As Boolean = False Dim pasoiz As Boolean = False Try While i < n j = j + 1 i = i + 1 If j Mod 2 = 0 Then obstaculo = New Button obstaculo.Name = "iz" If pasoder = False Then obstaculo.Size = New Size(600, 10) pasoder = True Else If j <= 7 Then obstaculo.Size = New Size(j * 100, 10) pasoder = False Else obstaculo.Size = New Size(1300 - (j * 100), 10) pasoder = False End If End If obstaculo.BackColor = Color.OrangeRed obstaculo.Location = New Point(1.5, 60 * i + 1) Me.Controls.Add(obstaculo) AddHandler obstaculo.Click, AddressOf btn1click Else obstaculo = New Button obstaculo.Name = "der"
64
If pasoiz = False Then obstaculo.Size = New Size(600, 10) obstaculo.Location = New Point(200, 60 * i + 1) pasoiz = True Else If j < 7 Then obstaculo.Size = New Size(j * 80, 10) obstaculo.Location = New Point(350, 60 * i + 1) pasoiz = True Else obstaculo.Size = New Size(1300 - (j * 100), 10) obstaculo.Location = New Point(400, 60 * i + 1) pasoiz = True End If End If obstaculo.BackColor = Color.OrangeRed Me.Controls.Add(obstaculo) AddHandler obstaculo.Click, AddressOf btn1click End If End While Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Sub vertical() Dim i As Integer = 0 Dim j As Integer = 1 Dim pasoder As Boolean = False Dim pasoiz As Boolean = False Try While i < n j = j + 1 i = i + 1 If j Mod 2 = 0 Then obstaculo = New Button obstaculo.Name = "iz" If pasoder = False Then obstaculo.Size = New Size(10, 400) pasoder = True Else If j < 7 Then obstaculo.Size = New Size(10, j * 100) pasoder = False Else obstaculo.Size = New Size(10, 1000 - (j * 100)) pasoder = False End If End If obstaculo.Location = New Point(62 * i + 1, 5) obstaculo.BackColor = Color.OrangeRed Me.Controls.Add(obstaculo) AddHandler obstaculo.Click, AddressOf btn1click Else obstaculo = New Button obstaculo.Name = "der" If pasoiz = False Then
65
obstaculo.Size = New Size(10, 400) obstaculo.Location = New Point(62 * i + 1, 200) pasoiz = True Else If j < 7 Then obstaculo.Size = New Size(10, j * 180) obstaculo.Location = New Point(62 * i + 1, 100 - (i * 10)) pasoiz = True Else obstaculo.Size = New Size(10, 1800 - (j * 100)) obstaculo.Location = New Point(62 * i + 1, 180) pasoiz = True End If End If obstaculo.BackColor = Color.OrangeRed Me.Controls.Add(obstaculo) AddHandler obstaculo.Click, AddressOf btn1click End If End While Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Sub btn1click(ByVal sender As Object, ByVal e As System.EventArgs) Try If agente.Visible = False Then MessageBox.Show("Debe seleccionar Iniciar Agente, primero", "SELECCIONAR ENTRENAR AGENTE", MessageBoxButtons.OK, MessageBoxIcon.Error) Else Dim x1, x2 As Double Dim w1, w2, tasadeap, ynx, yny, x, y, movx, movy As Double Dim umbralx, umbraly, sdx, sdy, unx, uny, erx, ery As Double Dim sd, un As Point Dim pase As Boolean = False Dim o As Object = CType(sender, Button) Dim iter As Integer = 0 If tipo = 1 Then If o.Name = "iz" Then sd = New Point((o.Location.X + o.Size.Width - 50), (o.Location.Y + 20)) Else sd = New Point((o.Location.X + 10), (o.Location.Y + 20)) End If Else If tipo = 2 Then If o.Name = "iz" Then sd = New Point((o.Location.X + 20), (o.Size.Height - 50)) Else sd = New Point((o.Location.X + 20), (o.Location.Y + 20)) End If Else If tipo = 3 Then If o.Name = "horizontal" Then sd = New Point((o.Location.X + o.Size.Width - 50), (o.Location.Y + 20)) Else sd = New Point((o.Location.X + 10), (o.Location.Y + 20)) End If
66
End If End If End If x1 = agente.Location.X x2 = agente.Location.Y sdx = sd.X / 1000 sdy = sd.Y / 1000 tasadeap = 0.2 w1 = 0.3 w2 = 0.2 umbralx = 0.2 umbraly = 0.2 x = 1 y = 1 Dim pinta As Graphics = Me.CreateGraphics() Dim lapiz As New Pen(Color.Blue, 2) lapiz.EndCap = Drawing2D.LineCap.ArrowAnchor Dim final As Boolean = False While final = False iter = iter + 1 If iter >= 25000 Then lapiz.Color = Color.OrangeRed End If If iter >= 40000 Then lapiz.Color = Color.Red End If If (iter >= 50000) Then MessageBox.Show("Demasiados intentos para Aprender, intenta con otro obstaculo", "ITERACION MAYOR A 50000", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) x = sd.X y = sd.Y Exit While Else If pase = True Then w1 = Format(w1, "##,##0.000") w1 = w1 + (tasadeap * x1 * erx) w1 = Format(w1, "##,##0.000") w2 = Format(w2, "##,##0.000") w2 = w2 + (tasadeap * x2 * ery) w2 = Format(w2, "##,##0.000") un = New Point(((x1 * w1) + umbralx), ((x2 * w2) + umbraly)) unx = un.X / 1000 unx = Format(unx, "##,##0.000") uny = un.Y / 1000 uny = Format(uny, "##,##0.000") ynx = 1 / (1 + (Math.Pow(2.71828183, ((-1 * tasadeap) * unx)))) yny = 1 / (1 + (Math.Pow(2.71828183, ((-1 * tasadeap) * uny)))) ynx = Format(ynx, "##,##0.000") yny = Format(yny, "##,##0.000") erx = sdx - ynx erx = Format(erx, "##,##0.000") ery = sdy - yny ery = Format(ery, "##,##0.000") If erx >= 0 And erx <= 0.01 Then x = ynx
67
End If If ery >= 0 And ery <= 0.02 Then y = yny End If If x <> 1 And y <> 1 Then final = True x = x * 1000 y = y * 1000 x1 = x x2 = y End If movx = ynx * 1000 movy = yny * 1000 pinta.DrawLine(lapiz, CInt(agente.Location.X), CInt(agente.Location.Y), CInt(movx), CInt(movy)) Else un = New Point(((x1 * w1) + umbralx), ((x2 * w2) + umbraly)) unx = un.X / 1000 unx = Format(unx, "##,##0.000") uny = un.Y / 1000 uny = Format(uny, "##,###0.000") ynx = 1 / (1 + (Math.Pow(2.71828183, ((-1 * tasadeap) * unx)))) yny = 1 / (1 + (Math.Pow(2.71828183, ((-1 * tasadeap) * uny)))) ynx = Format(ynx, "##,###0.000") yny = Format(ynx, "##,###0.000") erx = sdx - ynx erx = Format(erx, "##,##0.000") ery = sdy - yny ery = Format(ery, "##,##0.000") If erx >= 0 And erx <= 0.03 Then x = ynx End If If ery >= 0 And ery <= 0.03 Then y = yny End If If x <> 1 And y <> 1 Then final = True x = x * 1000 y = y * 1000 End If pase = True movx = ynx * 1000 movy = yny * 1000 pinta.DrawLine(lapiz, CInt(agente.Location.X), CInt(agente.Location.Y), CInt(movx), CInt(movy)) End If End If End While MessageBox.Show("El numero de iteraciones o movimientos del agente fue: " & iter, "NUMERO DE ITERACIONES", MessageBoxButtons.OK, MessageBoxIcon.Information) If MessageBoxButtons.OK = MessageBoxButtons.OK Then agente.Location = New Point(x, y) pinta.Clear(Color.Black) End If End If Catch ex As Exception
68
MessageBox.Show(ex.Message) End Try End Sub Sub entrenar_agente() Try If obstaculo Is Nothing Then MessageBox.Show("No hay obstaculos para entrenar el Agente,Debes crearlos primero", "SIN OBSTACULOS", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) Else agente.Location = New Point(10, 20) If tipo = 1 Then agente.Visible = True MessageBox.Show("Para iniciar el entrenamiento Presiona el obstaculo mas cercano al agente o el !que quieras¡", "ENTRENAMIENTO DEL AGENTE", MessageBoxButtons.OK, MessageBoxIcon.Information) Else If tipo = 2 Then agente.Visible = True MessageBox.Show("Para iniciar el entrenamiento Presiona el obstaculo mas cercano al agente o el !que quieras¡", "ENTRENAMIENTO DEL AGENTE", MessageBoxButtons.OK, MessageBoxIcon.Information) Else If tipo = 3 Then agente.Visible = True MessageBox.Show("Para iniciar el entrenamiento Presiona el obstaculo mas cercano al agente o el !que quieras¡", "ENTRENAMIENTO DEL AGENTE", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If End If End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub End Class