SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

82
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

Transcript of SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

Page 1: 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

Page 2: 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

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

Page 3: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

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

Page 4: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

Especialmente a nuestras

Familias

Page 5: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

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.

 

 

 

 

 

 

 

 

 

Page 6: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

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

Page 7: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

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

Page 8: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

CONTENIDO DE TABLAS Pág.

1 Redes Neuronales Monocapa…..………………………………………………… 15

2 Redes Neuronales Multicapa.........………………………………………………. 17

Page 9: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

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

Page 10: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

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

Page 11: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

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:

Page 12: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

• 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.

Page 13: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

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

Page 14: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

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.

Page 15: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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 

Page 16: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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.

Page 17: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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.

Page 18: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

 

Page 19: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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.

Page 20: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

 

Page 21: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

 

Page 22: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 23: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 24: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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  

Page 25: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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  

Page 26: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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  

Page 27: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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  

Page 28: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 29: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 30: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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/

Page 31: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 32: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 33: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 34: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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 

Page 35: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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>  

Page 36: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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>  

Page 37: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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>

Page 38: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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  

Page 39: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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. 

Page 40: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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  

Page 41: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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  

Page 42: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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. 

Page 43: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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  

Page 44: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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í

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

Page 45: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

31  

⎪⎪⎪

⎪⎪⎪

−≤

−>>+

+≥

=

210

21

21

211

)(

v

vv

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í

                                                            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

Page 46: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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.  

Page 47: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 48: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

 

Page 49: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 50: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

 

Page 51: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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>  

Page 52: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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> 

 

Page 53: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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> 

Page 54: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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> 

Page 55: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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>  

Page 56: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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)

Page 57: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 58: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 59: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 60: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 61: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 62: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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.

Page 63: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 64: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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.

Page 65: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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  

 

 

Page 66: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 67: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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.

Page 68: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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.

Page 69: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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.

Page 70: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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.

Page 71: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

57  

ANEXOS

Page 72: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

58  

(ANEXO 1) – DIAGRAMA DE GANNT 

Page 73: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

59  

Page 74: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 75: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 76: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 77: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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"

Page 78: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 79: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 80: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 81: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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

Page 82: SISTEMA PERCEPTRÓN SIMPLE PARA EVADIR OBSTÁCULOS …

 

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