WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

60
WNEURORED:SIMULADOR Y ANALIZADOR DE REDES NEURONALES ARTIFICIALES junio / 2000

Transcript of WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Page 1: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

WNEURORED: SIMULADOR Y ANALIZADOR DE REDES NEURONALES ARTIFICIALES

junio / 2000

Page 2: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

INDICE

CAPITULOS PÁGINA

CAPITULO I

i.iNTRODUCCi6N

CAPíTULO I 1

1 1 . 1 JUSTIFICACI~N

11.2 OBJETIVOS

11.3 REQUERIMIENTOS

CAPITULO 1 1 1

WNEURORED: SIMULADOR Y ANALIZADOR DE REDES NEURONALES ARTIFICIALES DE TIPO BIOLOGIC0

11.1 INSTALACIóN DEL PAQUETE 111.2 DESCRIPCIóN DEL PAQUETE 111.3 ANALISIS DEL MÉTODO DE PROGRAMACIóN 111.4 ANALISIS DEL CóDIGO

111.4.1 FORMARED

111.4.2 NEURURED

111.4.3 PUNTOS

111.4.4 MOSAICOS

CAPITULO IV

FAANUAL DE USUARIO DE W NEURORED

;v. 1 NSTALACI 6~ DEL PAQUETE WNEURORED lV.2 USO DEL PAQUETE

IV.2.1 WNEURORED

IV.2.2 FORMARED

3

6 6 6

8 8

12

13 13 17 17 19

23 28 28 28

1

Page 3: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

N.2.3 NEURORED

IV.2.4 EDITOR

IV.2.5 PUNTOS

IV.2.6 MOSAICOS IV.2.7 EJEMPLOS

CAPITULO V

CONCLUSIONES

BIBLIOGRAFIA

APENDICE A

31 32 33 36 38

56 57 58

2

Page 4: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

CAPITULO I Introducción

Cuando nos propusimos la tarea de elaborar este proyecto, pensamos en varios objetivos posibles. Ayudarnos a comprender lo que está sucediendo dentro de las nuevas tecnologías con que nos enfrentamos, no sólo en ia investigación sino en el mundo empresarial. Sabemos que muchas propiedades biológicas de tipo cognoscitivo se tomaron e incorporaron en los sistemas neuronales, por lo que, primeramente estudiamos c6mo funciona el cerebro humano para entender los algoritmos que simulan el proceso de aprendizaje entre neuronas.

El propósito de la computación neuronal es crear sistemas artificiales inteiigentes. Estos sistemas resuelven problemas del cómputo tradicional, como el procesamiento de imágenes y voz, predicción, control y optimización. Las computadoras tradicionales se basan en la arquitectura de Von Neumman, es decir, procesan la información de manera secuencial, en contraste a una red neuronal. ÉSta no ejecuta instrucciones de manera serial sino que responde en paralelo. El conocimiento de una red neuronal no consiste en el almacenamiento de instrucciones, el poder de esta reside en su topología y en los valores de las conexiones antre neuronas. Para entrenar una red neuronal se le presentan de manera sistemática una serie de entradas con sus salidas respectivas con el fin de que aprendan y se auto-organicen. El cerebro humano es robusto y tolerante a fallas, diariamente mueren neuronas sin afsctar su desempeño, es flexible, se ajusta a nuevos ambientes por aprendizaje, es altamente paralelo y puede manejar información difusa, con ruido o inconsistente. Todas estas características son deseables en un sistema artificial. Las redes neuronales procesan información simultánea, utilizando el paralelismo masivo de procesadores elementales ilamados neuronas, asi, con &ta arquitectura, varias neuronas pueden fallar y la red sigue funcionando. En el área de robbtica hay una tendencia fuerte hacia el desarrollo de estos sistemas. Las redes neuronales son un complemento de los sistemas tradicionales, no su reemplazo. Actualmente existen en el mercado circuitos integrados con redes neuronales. iambi6n es posible simular en una computadora una red neuronal, escribiendo un programa que ejecuta secuencialmente simulando la dinámica paralela. Obviamente un programa es menos eficiente ya que la computadora soporta una arquitectura serial. Se han desarrollado sistemas de este tipo debido a los trabajos de investigación en la anatomía de redes neuronales biológicas, demostrando así, que el tejido del cerebro no es una masa continua sino una red de unidades discretas, denominadas neuronas, formadas a su vez por el soma o cuerpo de la célula que contiene el núcleo y está encargado de las actividades metabólicas de toda la neurona, el soma puede recibir información de otras neuronas a través de la sinápsis en su superficie. Las dendritas son estructuras que parten del soma con ramificaciones, éstas se especializan en la recepción de señales de otras células

?

Page 5: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

nerviosas por medio de las conexiones sinápticas. El axón permite enviar impulsos a otras células nerviosas. La sinápsis es una conexión entre dos células nerviosas. Esta conexión puede ser excitativa o inhibitorias según el neurotransmisor que se libere, cada neurona recibe de 1 O O00 a 1 O0 O00 sinápsis y su axón realiza una cantidad de sinápsis. La sinápsis se clasifica según su posición en su posición en la superficie de la neurona receptora, hay tres tipos: axo-somática, axo-dendrítica, axo-axónica. La sinápsis es química pero tiene efectos eléctricos laterales que se pueden medir. Cuando una neurona está en reposo, su membrana externa mantiene una diferencia de potencial de -70 mv (la superficie interior es negativa respecto de la superficie exterior). En reposo la tnembrana es más permeable a los iones de potasio que a los iones de sodio. Cuando se estimula la célula, la permeabilidad al sodio se incrementa, lo cual produce una entrada repentina de cargas de potencial de ia membrana. El impulso se inicia en la unión del cuerpo celular y el axón, y se propaga lejos del cuerpo celular. Cuando el impulso alcanza los terminales del axón de la neurona presináptica, este induce la liberación de moléculas neurotransmisoras. Los transmisores se difunden y alcanzan los receptores de ia membrana postsináptica. La frecuencia de los impulsos descargados por una neurona y la intensidad de la excitaci6n obedecen la siguiente funci6n:

Excitación

\ 1 - -: varlaci6n de ¡a frecuencia de descarga neuronal según la excitación.

Et aprendizaje en las neuronas ocurre por la actividad neuronal coincidente, esto se conoce como la ley de Hebb o aprendizaje Hebbiano, es decir, cuando el axón de una célula A excita la céitiia B y repetidamente torna lugar en su activación, ocurre algún proceso de crecimiento o cambio metabólico en una o ambas células ;ai q~ la eficacia de A, como una de las cjiuias que dispara a S, se incrementa. Según la regla de aprendizaje de Hebb, la actividad coincidente en las neuronas presiniptica y postsináptica es critica para fortaiecer la conexión entre ellas, esto se denomina mecanismo asociativo pre-post. La segunda regla de aprendizaje consiste en que ia conexi6n sináptica entre dos neuronas se pueden fortalecer sin actividad de la célula postsináptica y la tercera neurona iiamada moduiadora, incrementa la iiberación del neurotransmisor de ¡a célula presináptica.

Page 6: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Existen dos categorias de algoritmos de entrenamiento para una neurona o una red neuronal. Los algoritmos supervisados requieren patrones de entrada-salida deseada, esto es, la red necesita un profesor que le muestre las respuestas correctas. La segunda categoría es la de los algoritmos no supervisados y la red neuronal establece su propia organización de los datos de entrada. Los algoritmos de aprendizaje supervisado se dividen en dos tipos: Correcci6n de error y gradiente. Los algoritmos de corrección de error alteran los pesos (sinápsis) de la neurona despues de la presentación de un patrón para corregir el error de salida. Los algoritmos de gradiente modifican los pesos de la neurona después de la presentacibn de un patrón para minimizar el error cuadrático medio sobre todos los patrones. Esto se logra modificando los pesos en dirección opuesta al gradiente de la funci3n de error.

Dentro de los algoritmos de corrección, se encuentra el de ia Regia del Perceptron.

La actualizaci6n del vectcrr de pesm se hace con la expresión siguiente:

Wk+l= ‘m + u ek Xk + p { “vic - LV“, el último término adicional se denomina momentum, es una memoria o inercia y permite que los cambios en ei vector de pesos W sean suaves porque incluyen información sobre el cambio anterior.

i &=+ 1

+ n

error

i e

/ + I I

I

pesos Estos modelos neuronales pueden implementarse en computadoras, autómatas y robots flexibles que simulan aprendizaje e inteligencia.

Page 7: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

CAPITULO II

11.1 JUSTIFICACI~N

La dinámica de desarrollo tanto en hardware como en software, va ligeramente rezagada con respecto a la aparición de nuevas ideas sobre como realizar las tareas. Dentro del ambiente universitario mexicano, un común denominador es la falta de recursos para la estimulación de la investigación que proporcione ese aliciente para lograr un progreso tecnológico más acentuado. Es por eso que cuando se propone un proyecto de desarrollo de software en México para alimentar la falta de impulso en la investigación nacional, generalmente es bien acogido por los universitarios mexicanos. Este es nuestro caso, y nuestro trabajo es el resultado de los esfuerzos conjuntados entre profesorado y estudiantado de la Universidad Nacional Autónoma de México y de la Universidad Autónoma Metropolitana; estos esfuerzos tenían por fin común no sólo el de actualizar, sino desarrollar nuevas metodologías de trabajo en relación con redes neuronales artificiales que se han enlazado naturalmente con otras técnicas de programación evolutiva, algoritmos genéticos, lógica difusa, etc. Como parte de esta evolución se encuentra también el lenguaje de programación utilizado, para este caso Visual Basic, la decisión de utilizar este lenguaje se basó en las siguientes premisas:

Facilidad de uso Alta curva de aprendizaje Facilidad para implantar las técnicas seleccionadas Facilidad para lograr el ambiente gráfico requerido

11.2 OBJETIVOS

Integración del paquete neurored en una plataforma actual y extendida, amigable y con posibilidades de desarrollo. Actualización de programas e implementación de algoritmos en neurored para que el paquete se use con fines didácticos en la ingeniería. Instalación sencilla del paquete neurored con un uso eficiente de recursos. El paquete neurored se adapta a los recursos y capacidades de los sistemas computaciones personales actuales, con la ventaja del aprovechamiento de ellos para obtener una mejor resolución en el uso de tarjetas de video y mayor velocidad en los resultados obtenidos de neurored de cada aplicación. Presentación profesional y confiable capaz de recuperarse de errores, flexible

6

Page 8: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

a la variación de parámetros, para así, agilizar la investigación de las redes neuronales artificiales. Construcción de redes neuronales de modo sencillo y generación de archivos que desplieguen la arquitectura de la red y los trenes de impulsos de neuronas o fibras, en un intervalo especificado

11.3 REQUERIMIENTOS

Configuración mínima requerida

0 Procesador 486 en adelante Windows 95 16 MBytes de RAM Tarjeta de video compatible con Windows capaz de desplegar al menos 256

10 Mbytes libres en disco duro para la instalación 4 MBytes libres en disco duro para funcionamiento propio de WNeurored

Se requiere una impresora compatible con Windows para el caso de que se deseen impresiones en papel. El sistema realiza una gran cantidad de cálculos matemáticos, Io cual en una computadora con las características mencionadas, tendrá un tiempo de respuesta aceptable.

colores

7

Page 9: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

CAPíTULO 111

WNeurored: Simulador y Analizador de Redes Neuronales Artificiales de Tipo Biológico

111.1 INSTALACIóN DEL PAQUETE

La instalación se realiza de forma muy sencilla gracias al programa de instalación y configuración, este es igual a todos los demás programas instaladores de windows, así que en general no se tienen problemas. En el capitulo V se muestra paso a paso el proceso de instalación.

111.2 DESCRIPCION DEL PAQUETE

El paquete se compone en un principio de cuatro módulos:

FormaRed

NeuroRed

Puntos

Mosaicos

En conjunto es una herramienta que permite el análisis de la actividad sináptica de alguna red neuronal, con la elaboración gráfica de la RNA en FormaRed, la simulación de funcionamiento en NeuroRed y análisis con los módulo de Puntos y Mosaicos.

Mostramos a continuación un preambulo del proyecto completo.

8

Page 10: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

h

WNeurored

Esta es la parte inicial del programa, sigue la estructura de la mayoría de los programas de Windows, para que la adaptación al paquete sea Io más rápido posible. De aquí podemos llamar a los demás módulos de Wneurored mediante la simple presión de los botones correspondientes con el apuntador en el menú principal. Gracias a esto podemos tener abiertas y en pantalla dos redes distintas, cada una en una ventana separada.

FormaRed

Este permite graficar las RNAs mediante las funciones integradas en su interface; cada RNA graficada construye un archivo con extensión .red para guardar la información de la red y un archivo con extesión .dat para uso exclusivo de NeuroRed, que puede ser modificado también por el editor integrado a Wneurored.

9

Page 11: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

"I_.__"-____I_-__"-~ __- _I__

jg

Puntos

Despliega de manera gráfica la información del Neurored, en un intervalo de tiempo especificado.

r. R-

et __ 1 ' jLOlllOL ' k I o ( 1 i ' 1 i A" j*r

archivo .sal generado por

10

Page 12: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Mosaicos

Recorre el archivo .sal y muestra en la pantalla la actividad neuronal en cada milisegundo. Cada milisegundo desplegado significa una solución que quizás sea factible pero no óptima.

5-

1 I í ! AL*/ f 1 Mnr connguraclh j tenor ; ecslerlor I !rnDnrnlr Salir 1 i

i NDO 3 "!

En este orden se determina el proceso de elaboración y análisis de una red

11

Page 13: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

111.3 ANALISIS DEL MÉTODO DE PROGRAMACIóN

Como técnica de programación se utilizó la encapsulación de estructuras y funciones dentro de un Tipo de Dato Abstracto (TDA), lo que permite una mejor modularidad, y capacidad de desarrollo. Para guardar la información de la red se utilizó la siguiente estructura:

Type GtRed Identificador As String Nombre As Integer x0 As Long YO As Long X1 As Long Y1 As Long Intensidad As Double

End Type

Para hacer eficiente el uso de memoria se utilizó la idea de los "apuntadores", técnica computacional que permite el reservar y desechar porciones de memoria de acuerdo a los requerimientos del usuario. Como en Visual Basic no se permiten apuntadores, se utilizó una analogía que son los "arreglos dinámicos" y que quedan declarados a continuación:

Public MrP.ed ( Public GtAD ( ) Zublic S t C U ( ) Public GtCA ( ) ?zDi iz G t N ( )

As GtRed As GtRed As GtRed As GtRed As GtRed

Y para complementar el TDA (Tipo de Dato Abstracto) se desarrollaron las siguientes funciones y procedimientos:

P!;bl-c 'unction rInicializaNodo ( 1 As GtEied Z'ublic 31;s Altaobjeto iByRef Red0 As GtRed, Id As String,

Nombre As Integer, - x As Long , Y As Long, Optional XI AS Long, Optional YI AS Long, Optional Intensidad As Double)

Public Sub Sajaobjeto (ByRef Red ( ) As GtRed, Posicion As Integer) Public Function rConsultaObjeto !Red( As GtRed, -

Public Function sObtenIdentificacionObjeto(Nodo As GtRed) As String Public Function iObtenNombreObjeto(Nodo As GtRed) As Integer Public Function iGbtenIntensidadObjeto(N0do As GtRed) As Integer Public Sub ModificaObjeto(ByRef Red0 As GtRed, iNumNodo As Integer, -

-

-

Posicion As Integer) As GtRed

Id As String, Nombre As Integer, - x As Long, Y As Long, Optional XI AS Long, Optional YI AS Long, -

12

Page 14: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Cptianal Intensidad As Double! Public: Function lRegresaXOCbjeto[Nodo As GtRed) As Long ? j~b l ; c 'uxstion lRegresaXlObjeto (Nodo As GtRed) AS Long 2cblie Function lRegresaYOObjeto!Nodo As GtRed) As Long Pcblic ? a c t i o n 12.egresaYlCbjeto (Nodo As GtRed) As Long Pubi;c F " ~ n c t l o n bTieneConexiones(Red() As GtRed, Nodo As GtRed) hblic Function b3extroObjetoiNodo As GtF.ed, x As Single,

Public Function pObtenCentro (Red ( 1 As GtRed, sEsperado As String,

Public Function bValidaNombre (Red ( ) As GtRed,

Y As Single) As Boolean

x As Single, Y As Single) As POINTAPI

Nombre As Integer) As Boolean

-

-

-

111.4 ANALISIS DEL CÓDIGO

111.4.1 FORMARED

Los siguientes extractos de código presentan de manera general el uso de estructuras dinámicas para hacer eficiente el uso de memoria. Las limitaciones del paquete no las impone el método de programación, sino los controles utilizados para desplegar la información en las funciones de impresión adaptadas al paquete, a pesar de esta limitante el número de neuronas y fibras que se pueden manejar satisface las necesidades del usuario.

2rivate S L b pic - XouseDown(1ndex As Integer, Button As Integer, Shift As Integer, x As Single, Y As Single)

Din XlAux As POINTAPI "irn X? As Long 3 ; ~ L i Y1 As Long I f Button = 1 Then

If XbNeuronas Then

'diSuj?rr.os una neurona en caso de no haber nada sobre la zona 'en que dibujaremos I f Not bValidaConexiones (MrRedO I FIBRA, x, Y) L.d

Not bValidaConexiones (MrRed ( ) , NEURONA, x, Y)-Then x1 = x Y1 = Y DibujaNeurona Me.pic(1) I Xl, Y1, 200, MiDesplszamiento MbCambio = Trae ReDim GvParametrcs(5) GvParametros (O) = "frmFormaRed" GvParametros ( 1) = "NombreNeurona" GvParametros (2) = X1 GvParametros (3) = Y1 GvParametros (4) = 200 GvParametros (5) = O Lcad frmPedir frmPedir.Show

Beep Else

13

Page 15: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

zn3 ; f _ . :.-seIf XbFibras Then

c i ~ b u ; 3x0s )lna fibra i_ T ' \ T - b'1alidaConexiones (MrRed ( ) , FIBRA, x, Y) And -

?:3t bValidaConexiones (MrRedO , NEURCNA, x, 'i! Then , , .1 = x y; = 7 DibujaFibra Me.pic ( I ! , XI, Y1 XXambio = True ReDim GvParametros(5) ZvParametros (O) = "frmFormaRed" GvParametros (1) = "NombreFibra" GvParametros (2) = x - MiDesplazamiento ,GvParametros ( 3 ) = Y ' - MiDesplazamiento GvParametros(4) = O 'X + MiOesplazamiento GvParametrss(5) = O 'Y + MiDesplazamiento Load frmPedir fraPedir.Show

Else 3eep

9nd If

'efectuamcs l a conexión de s a fibra hacia una neurona ' e n caso de que el primer objeto seleccionado no sea una fibra

'perrr.lre la conexicn; los n i s m ocurre cuando e1 segundo o b j e t o

' n o sea una necr3na If 5VaiIdaConexiones (NrEied ( ) , FIBRA, x, Y) And MbPrimerClick

ElseIf XbFibraNegrona Then

no se

sz l ecc iQcado

T !? e il XbPrlnerClick = False >l.lbCambm = True :(VFiux = pCbtenCentro i".rrRed() , FIBRA, x, Y) >Jr.I1X1 = XYAux.x !,:.:1Y1 = XYAux .Y

ZlseIf bValidaConexiones (MrRedO , NEURONA, x, Y) And Not ?%L?::x~~C~:L:< Tken

:ibPrm.erClick = True ?.lbCanbio = True X'iAux = pCbtenCentro (MrRed ( ) , NEYJRONA, x, Y) I f ?doc bConexionRepetida iMrRed, Y . I : X l , M l Y l , XYAux. x, XYAux. Y )

DikujaConexion Ne.pic(l), MlX1, MiY1, XYAux.x, XYA1lx.Y Reaim GvParametros ( 5 , SvParametros (O) = " f rmFormaRed" GvParametros ( 1) = "Intensidad" GvParametros (2) = 31x1 SvParametros (3) = MlYl Gvparametros ( 4 ) = XYAux. x GvParametros ( 5 ) = XYAux. Y Load frmPedir frrr.?edir. Show

Else Beep

End If

Beep Zlse

14

Page 16: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

End I f

'efectuamos la zcnexijn cie una neurona hacia m a neurona 'en caso de que el priaer objeto seleccionado zo sea ana

'pernite la ccnexión; l o s n ismo ocurre cuando el segundo objeto

'no sea una neurona If bValldaConexicnes(MrRed0, NEÜRONA, x, Y) And MbPrimerCllck

ElseIf MbNeuronaNeurQna Then

nexrona no s e

seleccionado

Then NbPrLmerClick = False MbCaniDic = True XYAux = pObtenCentro (XrRedO , NEURONA, x, Y) MlXl = XYAux.x M l Y l = XYA0x.Y

ElseIf bValidaConexiones (MrRed ( 1 , NEURONA, x, Y) And Not

MbPrimerClick Then MbPrimerClick = True NbCambio = True XYAux = FOStenCentro {MrRedi), NEURONA, x, Y) I f Not bConexionRepetlda(MrRed, M1X1, M1Y1, XYAux.x, XYAux.Y)

Then DibujaConexion Me.piciO), MlX1, M l Y l , XYAux.x, XYAux.Y ReDim GvParametros(5) GvParametros (O) = "frmFormaRed" GvParametros (1 j = "Intensidad" GvParametros (2) = MlXl 5-JParametros (3) = MlYl GvParametros (4) = XYAux.x GvParametros (5) = XYAux.Y Load frrnPedir frmPedir.Show

Else Beep

End If Else

Seep End If

3orrar x, Y ElseIf MbBaja Then

End If End If

End Sub

Como un agregado a la idea original, se logró que la arquitectura neuronal construida y que se encuentra en memoria, sea impresa en su totalidad con el siguiente procedimiento.

Private Sub Imprimir() Dim iMouse As Integer Dim x As Integer, y As Integer Dim i As Integer, j As Integer, k As Integer

Page 17: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Dim iCopias As Integer Dim iorientacion As Integer Dim nombre As String Const PIXEL = 3

On Error GoTo ErrorImprimir iblouse = Screen.MousePointer Screen.MousePointer = 1 1

cdb.CancelError = True cdb.Flags = O cdb.ShowPrinter Printer.Orientation = 2 Printer Font = ",.\rial" Printer.FontSize = 6 iCopias = cdb.Copies iorientacion = Printer.0rientation Printer.Scale (O, 0)-(pic( l).Width, pic( l).Height) If UBound(MrRed) = O Then Exit Sub For j = 1 To ¡Copias

For i = UBound(MrRed) To O Step - 1 Select Case MrRed(i).Identificador

Case NEURONA nombre = Str(iObtenNombreObjeto(MrRed(i))) k = O x = IRegresaXOObjeto(MrRed(i)) y = IRegresaYOObjeto(MrRed(i)) Do

Printer.Circle (x, y), MiDesplazamiento - k k = k + l

Loop While k <= MiDesplazamiento Printer.CurrentX = x - htilhsplazamiento + 50 Printer.CurrentY = y - MiDesplazamiento + 80 Printer.Print nombre

nombre = Str(iObtenNombreObjeto(MrRed(i))) Y = lRegresaXOObjeto(MrRed(i)) y = lRegresaYOObjeto(MrRed(i)) k = O PSet (x, y) Do

Case FIBRA

Printer.Line (x - k, y - k)-(x f k y - k) Printer.Line (x + k, y - k)-(x f k, y + k) Printer Line (x + k, y + k)-(x - k, y +- k) Printer.Line (x - k, y + k)-(x - k, y - k) k = k + l

Loop While k <= MiDesplazamiento Printer CurrentX = x - MiDesplazamiento + 50 Printer.CurrentY = y - MiDesplazamiento + 50 Printer.Print nombre

Printer.Line (lRegresaXOObjeto(MrRed(i)), IRegresaYOObjeto(MrRed(i)))- -

Printer.CurrentX = (lRegresaXOObjeto(MrRed(i)) + -

Case FIBNEU

(lRegresaXlObjeto(MrRed(i)), Regresay IObjeto(MrRed(i)))

lRegresaXlObjeto(MrRed(i))) - / 2 - MiDesplazamiento

Page 18: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Printer.CurrentY = (lRegresaYOObjeto(MrRed(i)) + - IRegresaY 1 Objeto(MrRed(i))) - / 2 - MiDesplazamiento

Printer.Print Str(iObtenIntensidadObjeto(MrRed(i)))

Printer Line (IRegresaXOObjeto(MrRed(i)), lRegresaYOObjeto(MrRed(i)))- -

Printer.CurrentX = (lRegresaXOObjeto(MrRed(i)) + -

Case NEC'NEU

(lRegresaXlObjeto(MrRed(i)), lRegresaYlObjeto(MrRed(i)))

lRegresaXlObjeto(MrRed(i))) - / 2 - MiDesplazamiento

lRegresaY lObjeto(MrRed(i))) - / 2 - MiDesplazamiento

Printer.CurrentY = (lRegresaYOObjeto(MrRed(i)) + -

Printer.Print Str(iObtenIntensidadObjeto(MrRed(i))) End Select

Next i Printer.EndDoc

Next j

Screen.MousePointer = ¡Mouse Exit Sub

ErrorImprimir: Screen.MousePointer = Mouse Debug.Print Err.Number & " " & ErrDescription Exit Sub

End Sub

111.4.2 NEURORED

El simulador NEURORED es una versión simplificada del simulador SYSTEM!! de MacGregor. Además, es una adaptación para el sistema operativo DOS, y está por escrito en FORTRAN77. Fue desarrollado en la UNAM por el ingeniero Mauro Antonio Alcantara Galindo y el Doctor lsmael Espinosa Espinosa. Durante el desarrollo inicial de este programa las limitaciones estaban dadas no sólo por la computadora, sino también por el tipo de almacenamiento, y para hacerlo más grave, por los programas que hacían uso de él. Actualmente estas limitaciones no existen, es por eso que en estos momentos se puede utilizar Neurored en toda su potencia. El programa fue hecho pensando en DOS, pero actualmente, con las ventajas que se ofrece en los ambientes gráficos (Windows en particular) era necesario crear una interfaz gráfica para efectuar el llamado a Neurored, esta interfaz tiene la ventaja de ser más intuitiva y amigable para la ejecución de Neurored, así como desplegar todas los mensajes propios de Neurored.

111.4.3 PUNTOS

En este módulo para desplegar los trenes de impulso de la RNA diseñada, se crea en el código una matriz dinámica para mostrar esta actividad sináptica como cuadros vacíos y cuadros rellenos que representan O's y 1's de la salida

17

Page 19: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

generada por Neurored. Esta información también puede ser dirigida a la impresora. El siguiente extracto de código nos muestra la rutina utilizada para generar la matriz en memoria.

Private Sab SenerarPuntos ( ) 'ver la opción de puntos en pantalla 9im iNumArch As Integer 3im sR.egistro As String Cin sColumna As String Dim iColumna As Integer Dirn iColMax As Integer 3im iRenglon As Integer Dim iRenMax As Integer Dirn bPrimerRenglon As Boolean Cn Error GoTo Error Generar ' e l renglón del archivo corresponde a la columna de la matriz 'y de igual forma, la columna del.archivo corresponde al renglón de

'sn la matriz tomaremos (x, y) donde x-columna,y-renglón 'iRengion-Renglones del Archivo 'icolumna-Columnas del archivo Erase scuadrado ReDim scuadrado ( O, O) iColumna = O: iRenglon = 1 bPrinerRenglon = False I f Not bPreguntaNorrbreArchivo(5) Then

Ezd If pici?) .Cis iXcx4rch = FreeFiln 'averiguamos cuantos milisegundos Cpen MsNombreArchivo For Input As #iNumArch Whlle N o t EOFiiNumArch)

la natriz

Exit Sub

Line Input #iNumArch, sRegistro I f '/al(sCbtenCaracteres(sRegistro)) > iRenglon Then

izenglon = Val(sObtenCaracteres(sRegistro) ) End if

Wend ;?,?.rXax = iRenglon :4L9englones = iRenMax 4Lcse f#iNulmArch 'gTJardamos la información en memoria iX,mmArch = FreeFile @en NsNombreArchivo For Input As #iNumArch RnDim sCuadrado (iRenglon, iColumna) iColumna = O I f Not_ EOF (iNumArch) Then

n

'la primer línea ziempre trae un 1 al inicio LiRe Input #iNumArch, sRegistro sRegistro = sObtenOls(sRegistro) Do

iColumna = icolumna + 1 I f Not bPrimerRenglon Then

End If ReDim Preserve sCuadradoiiRenglon, iColumna)

18

Page 20: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

sCuadrado(iRenglon, iColumnai = sCbtenCaracteres(sRegistr9) sRegistro = sCbtenOls(sRegistro)

Loop Nhile 'en(sRegistro) > 1 iCoiNax = FColamna XiCalumnas = iC~:lMax

End :f k S'ntii ZOF(iNum9rch)

Line Input #lNumArch, sxegistro I f Val isObtenCaracteres (sRegistro) 1 < 2 Then

DO iCol1Jmna = 1Colu;rJla t 1 I f Not bPrimerRenglon Then

End I f scuadrado (iRenglcn, iColmna) =

sfcegistro = sObtenOls(sRegistro) If 1Columna > iColNax Then iColMax = iColumna

ReDlm Preserve sCuadrado(iRenglon, iColumna)

sObtenCaracteresisRegistro)

Loop While Len(sRegístro) > 1

bPrimerRenglon = True sRegistro = sObten01s(sRegistro) iRengion = iRenglon - 1 iColumna = O Do

Else

iCo1;mna = iC31mna + 1 sCuadrado (iRenglon, iColunna) =

sRegistro = sGbtenOls(sRegistro) sCbtenCaracteres(sReqistrc1

LOOP While Len(sRegistro) > 1 Znd if

Lozp Clcse iiiNumArch Exit Sub

XsgBox Err .Nuder & I' 'I & Err.Description, vbOKOnly, "Error" c x ~ t Sub

Errcr Generar: -

End Sub

111.4.4 MOSAICOS

Este módulo presenta el despliegue de impulsos neuronales de los archivos generados con extensión *.SAL para mostrarlas posteriormente en pantalla. Con MOSAICOS el investigador es apoyado en el análisis de las RNA's construyendo las gráficas de toda la actividad existente en forma de dos capas, en las cuales la primera corresponde a las neuronas y la segunda a las fibras seleccionadas. Una característica importante de este módulo es que maneja memoria dinámica para soportar cualquier diseño realizado en FORMARED. Como en el caso de PUNTOS también se genera una matriz a partir del archivo con extensión *.SAL. Lo siguiente es a partir de esta matriz y con los datos del número de milisegundos a procesar y la información de bases y alturas para cada capa, se crea un arreglo dinámico que guarda toda la información de los mosaicos

19

Page 21: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

(en que lugar se van a dibujar y la actividad sináptica: O's y 1's que se representan como cuadros vacíos y llenos respectivamente). Esta sección se apoya totalmente en el ambiente gráfico y también cuenta con la opción de impresión.

El siguiente extracto de código muestra la formación del arreglo

Public Sub CalculaDivisionesMosaicosO 'este procedimiento calcula los tamaños para hacer los dibujos Dim ITamañoX As Long Dim ITamañoY As Long Dim iColumnas As Integer Dim iRenglones As Integer Dim iCuantosCuadros As Integer Dim iCuadroX As Integer Dim iCuadroY As Integer Dim ¡Cuadro As Integer Dim iVista As Integer Dim iIncremento As Integer Select Case GsPredefinido

iCuantosCuadros = 1 iColumnas = 1 iRenglones = 1

iCuantosCuadros = 2 iColumnas = 2 iRenglones = 1

iCuantosCuadros = 4 iColumnas = 2 iRenglones = 2

iCuantosCuadros = 6 ¡Columnas = 3 ¡Renglones = 2

iCuantosCuadros = 9 iColumnas = 3 iRenglones = 3

Case "div 1 'I

Case "div2"

Case "div4"

Case "div6"

Case "div9"

End Select GiIieuronasPorVista = iCuantosCuadros * (GiBasePrimerCapa * GiAlturaPrimerCapa + -

'obtenemos cuanto mide el área de dibujo 'para dividirlos entre los cuadros

GiBaseSegundaCapa * GiAlturaSegundaCapa)

ITamañoX = LRegresaXlObjeto(GtAD( 1)) / iColumnas 1TamañoY = lRegresaY lObjeto(GtAD( 1)) / iRenglones

ReDim GtCV(0) iCuadro = O ihcremento = 1 O0 For iCuadroY = I TO iRenglones

For iCuadroX = 1 To iColumnas

20

Page 22: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

iCuadro = iCuadro + 1 Altaobjeto GtCU(), "CU", Cuadro, iIncremento + (ITamañoX * (iCuadroX - l)), -

¡Incremento + (ITamañoY * (iCuadroY - l)), - ITamañoX * (iCuadroX) - ¡Incremento, ITamañoY * (iCuadroY) - ilncremento,

Val(Str(iCuantosCuadros)) Next iCuadroX

Next iCuadroY 'obtenemos cuanto mide el área del cuadro 'para dibujar las neuronas Dim iNeurona As Integer ReDim GtN(0) iNeurona = O ITamañoX = (lRegresaXlObjeto(GtCU(1))) \ (GiBasePrimerCapa + GiBaseSegundaCapa + 3 ) If GiAlturaPrimerCapa > GiAlturaSegundaCapa Then

Else

End If

ITamañoY = (Regresay IObjeto(GtCU( I))) \ (GiAlturaPrimerCapa + 2)

lTamaiioY = (1RegresaY lObjeto(GtCU( 1))) \ (GiAlturaSegundaCapa + 2 )

¡Incremento = 15 For ¡Vista = 1 To iObtenNombreObjeto(GtAD( 1 ) )

For iCuadro = I To bBound(GtCU) 'primer capa For iCuadroY = 1 To GiAlturaPrimerCapa

For iCuadroX = 1 To GiBasePrimerCapa ¡Neurona = Neurona + 1 'If iCuadroX > 1 Then ' ihcremento = 40 'Else

' iIncremento = O ' End If Altaobjeto GtN(), -

"CA", - ¡Cuadro, - ilncremento + lRegresaXOObjeto(GtCU(iCuadro)) + (ITamañoX * (iCuadroX - 1)) +

iIncremento + lRegresaYOObjeto(GtCU(iCuadro)) + (ITamañoY * (iCuadroY - 1)) +

lTarnañoX * (iCuadroX + I ) - iIncremento + lRegresaXOObjeto(GtCU(iCuadro)), - 1TamañoY * (iCuadroY + 1 ) - ¡Incremento + lRegresaYOObjeto(GtCU(iCuadro))

ITamañoX, -

ITamañoY, -

Next iCuadroX Next iCuadroY 'segunda capa ¡Incremento = I 5 For iCuadroY = 1 To GiAlturaSegundaCapa

For iCuadroX = 1 To GiBaseSegundaCapa Neurona = iNeurona + 1 'If iCuadroX > 1 Then ' iIncremento = 40

'Else ' ilncremento = 100

'End I f Altaobjeto &N(), -

21

Page 23: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

"CA", - ¡Cuadro, - ¡Incremento + ((GBasePrimerCapa + 2) * ITamañoX) + - lRegresaXOObjeto(GtCU(iCuadro)) + (ITamañoX * (iCuadroX - 1)). - ¡Incremento + IRegresaYOObjeto(GtCU(iCuadro)) + (ITamañoY * (iCuadroY - 1)) +

((GiBasePrimerCapa + 2 ) * ITamañoX) + ITamañoX * (iCuadroX) + - lRegresaXOObjeto(GtCU(iCuadro)) - ¡Incremento, - ITamañoY * (iCuadroY + 1) + lRegresaYOObjeto(GtCU(iCuadro)) - ¡Incremento

ITamañoY, -

Next iCuadroX Next iCuadroY

Next iCuadro Next ¡Vista

End Sub

22

Page 24: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

CAPITULO IV

MANUAL DE USUARIO WNeurored

IV. 1 Instalación de/ paquete WNeurored Para familiarizarnos con el proceso de instalación a continuación se muestra el mismo paso a paso: 1. Ejecutar el programa de Instalación que se encuentra en el disco 1 (Diskl),

buscamos el programa setup.exe y hacemos doble click sobre éI

To& las carpetas Contenido de ~~ . . . . . . . . . . . . . .

+ '3 (C:) A I - .a (D:) I + L3 -mssetup.t

+ ,J accesorios + ;j adamemv3

+ 23 Documentos + neu

'3 Chat

1 - 2 neurored 1 : ' I ,l doc

l i 1 1 I .a Disk3 -J

I I1 f j

;3 lmagenes ,d Proyecto Originat

- 11 setup 3 Disk l .a Disk2

12 Disk4 3 Disk5 !

+, .c;1 pert + Q Personal + fa Proyectos

I

4t .Recy.c!ed- - . . . . .~ .... -3

Nombre ~ A s y c F i l t . d l 1 j ~ _ .......................... " ...... :

4 MSVBW50.dl- 3' OleAut32.dl- 3 OlePro32.dl- &Setup ,a' Setup.lst 3 setup1 .ex- 13 StSunst.ex- '3 StdOle2.tl- 3VBSStKit.dI-

' 10 objeto(s) 1.38MB (Espacio libn en disco: 781MB) ~ ." . . . . . . . . . . . . . . . . . . . . . ". . . . . . . . . .-

23

Page 25: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

2. Aparecerá la pantalla de bienvenida a la instalación damos click en Ok

3. A continuación nos pedirá decidir en qué directorio deseamos instalar Wneurored, si no tenemos problema de espacio escogemos el default y al hacer click sobre el botón con la computadora emDezamos la instalacihn

24

Page 26: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

4. Nos pregunta como deseamos encontrar la instalación en el menú de Inicio Podemos pedirle que la instale dentro del grupo indicado por default o cambiarlo a algún otro

25

Page 27: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

5. En este momento se empiezan a copiar los archivos necesarios para correr Wneurored

26

Page 28: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

7. ." Por - último nos pedirá reiniciar el sistema . " ~ . ~ "" - .. .. "" ~ "" . . - -~ ." - . ._ - "" . ."" "

setrq , .1 .. . . .. ." - " - 2

You must restart Wndows in order to complete setup

Do you want to restart Windows now? Windows andlor your application may not work properly until Windows is restarted.

27

Page 29: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

I v .2 Uso del paquete

El paquete de Wneurored es muy fácil e intuitivo para usarse, gracias a su integración con la plataforma Windows, a continuación damos algunas referencias de su uso. Las imágenes faltantes las mostramos en el capitulo Ill cuando se indique.

IV. 2.1 WNeurored

(Ver la imagen inicial en el capitulo Ill).

El botón Formared lleva a la pantalla para crear, modificar, salvar e imprimir redes neuronales.

El boton Neurored ejecuta el programa de.redes neuronales de MacGregor

El botón Editor nos lleva a una pantalla donde podemos ver los archivos con extensión *.SAL, *.DAT y *.RED, propios de este programa.

El botón Puntos muestra una pantalla para observar trenes de impulsos asociados a una red que puede ser elegida.

El botón Mosaicos nos lleva a una pantalla para visualizar la actividad sináptica de neuronas y fibras que intervienen en una red.

1v.2.2 Formared

i;l tmagenes :_)Proyecto OrlQmal

prueba2 red

i

28

Page 30: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

I i . ~~ I

Nombrar con un identificador a cada neurona Y fibra.

¡entes.

29

Page 31: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Poner la intensidad sináptica de cada conexión en el diagrama, la cual representa el peso de la conectividad.

I !

gfRuored .. ~. - - io! x1 j i 1

7 I I ~

FormaRed I Editor j Puntos bJosatcos ! Salir 1 5 . FormaRecl

- - I_.__. "" __I "- - ! -A! :

Nuevo 1 &brir- 1 Salvar 1 Neurona . j ,

Guardar la red neuronal para poder generar los archivos *.RED necesarios para continuar el análisis de la misma.

u lrnagenes Ij Proyecto Original

prueba1 red 'Aprueba2.red 1

y *.DAT

30

Page 32: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

I í 1 i i

". 1 '?-A---

IV. 2.3 Neurored

- ~ " 2 I." L I

Nos permite ejecutar el algoritmo de McGregor sobre un archivo *.DAT indicado por la ruta dentro de Archivo Origen y ?btener como resultado un archivo con extensión *.SAL, el cuál queda guardado zn la ruta indicada por Archivo Destino

. .

!a-- Í ! i 1 I

-.-

3 1

Page 33: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Nos permite abrir cualquiera de los archivos utilizados por el paquete ya sean estos de extensión *.RED, *.DAT, *.SAL.,

%- . . . . . . . . . . a y . . . . . .

EonaRPd j Neurored 1 Edltor I i u n t m I iosakos 1 Saltr j i - - -

!

j c l ~ c de ~,*mx ~ __--

pusbal

i

."

Una vez abiertos podemos modificarlos o imprimirlos manualmente.

......

3 2

Page 34: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

IV. 2.5 Puntos

(Imagen inicial en el capítulo 111).

El botón de configuración nos permite seleccionar cuántos puertos (neuronas o fibras) serán las que sean despliegadas por pantalla. -1 . " .. ". .................. "" ............... a, . . .

:nnln@Prl t&rlrf- :-it-r f rtls : yns#~eq ' Edil "

. . . . . . . . . . . . . . . . . . . . . . . . . . . . " ~. ~ . - IC1 4

33

Page 35: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

El botón de Abrir nos permite abrir archivos para ser vistos en puntos

abrir

f- Abrir como fÓ10 lectura

34

Page 36: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Con los botones de anterior y posterior podemos podemos navegar entre las pantallas de los trenes de impulsos.

i 1 ebrir"Li;~nE?Ea?orl". ~ ~ 1 _i mpn?!Li" s!!i 1

,i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j .................................................................................................. i

I ................................................................................................... I ................................................ " ......"..........*................. ..... ..... ..... ".- ..... ..... ............... ..... ........ ....." ......" ...... ....... ..... ? ,

........"......"......"......"......"......".. .-. " .............................................. ...................................... ".-. ,

f.............. .. ........ .. .I....".. ........ ...... .. .......... .. ...... .. ......................... . ......................".... 1

i ~l ............................................"................"...... ^........"................................~,..........~

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .L4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

...... "... ." .. ........ .......... ........ .. .. .. ..".. ........ .. - . . I . .. .. ........ .. .. .. ...... ........-.................- ".... 1 1

...,.."."..".-... .."."..I "... ..."... I... ........"...... "......". "......"... ........ L.."."... .................... .. ...... "... .. .". "......". .. ... .." '

........................................................ ...........I........ "t................................ L . l...."..............................."...... " 1

...... .."......I" ...... "...I... ..... ..."... "........"."......".,....". ...... *... ......." ..... ...r ..... "."..........l.. "."...........~.......... .......... ..."....."

."."......"~...."........"... ".".. .... ................................................................................... " ......"....".. ~ i

i 1 8

El botón imprimir permite dar una salida en la impresora de los trenes de impulsos mostrados en pantalla.

I ! r . . -. . . . . . . . . . . . .

1 1 { Configuraclon i 1 !mpnmir 1

..........................................

.......................................... I m p a d

PTqredaden I ... 2

" ....................."... ".".................l....... .......... ..... .,... lwesuapedetwmadaiaca ...............................". "* .... .. ...... .. ............. .............

E . ........ .....,

T p o HP ORda Pro 11 5X i ........... "." ... .." .-... ....._ ..... " .-... "..." ............."."." C o m e d ,- l n p n m en u1 gdno 1

i

lrnpHnr ~ . . . C"". ...... " . . . . . . .

Lib- @TI: . . .................................................. I . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......... ~. ~- ~. . . . .

I

.= 1. 1 ~"- Jj-JJJJ ! .".. ........ .. ...,.*" .. ..".."

.I ! .......... .. ................ .. .. ................ .. .. .....

; ......... . ................................................ .." .̂ ..." * I

I ' LC& Nlbnaadegpc.% m j . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1 I ...............1.........................."."."......"........ " h W . 3 1 C m e b t I j .....

I

r" ..... ........ .... . S k w n

. . I ...... "I...... 1. ......... ..I ....I " ............. 1 .....l.. "I..... 1 ..........*I /

- ;. ....................................... " l___li_

35

Page 37: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

IV.2.6 Mosaicos

(Imagen Inicial en el capitulo Ill).

El botón Abrir permite seleccionar un archivo existente de extensión *.SAL

i

.

El botón configuración nos muestra una pantalla donde podemos elegir una configuración de 1, 2, 4, 6 y 9 vistas para mostrarlas en pantalla.

36

Page 38: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Los botones anterior y posterior permiten navegar entre las diferentes vistas.

El botón imprimir permite dar una salida en la impresora de los mosaicos mostrados en pantalla.

37

Page 39: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

IV.2.7 EJEMPLOS

IV.2.7.1 Red de Hamm

La construcción

m-

de la red es fácil, intuitiva y rápida

Proporcionarle el archivo a Neurored es muy sencillo

38

Page 40: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

I !

. . ~ . . ~

Archivos con extenián DAT Archivos con extensibn SAL , .

rHarnrn.sal optim.sal

I osc"a.sa'

l . . . ...... .......... ~ .~ " ~

"" " ___ "_ ........ . ........... ............. ......................... ...

- Comandos para Neutored [Opcionales): . . . . . . . . . . ...... " . f . -

Observar los puntos se hace fácilmente

€3- I i

.. -. .

.................................................................................................... 2 .................................................................................................... ...................................................... '..'..'..........................'..........., F..... .-. "..... ........ l....................... " *f..... " ...... L.......... "...*.." ..... .. ...... .. ..... ..... ".........l... "."...".f. "."...C.........." .......... I."..." ..... 4 1......".." ...... " ..... "..."."......*.".f,.."..........."........"."........f..."...~..." ........ "...".f.............̂ "."..."... ..... ....... ...... "..",....A

......* ............ . ..... ........~l."*..l........ .......... .. ."."............. .. ...... ................................. ...................................... .. .......... ~

. . . . . . . . . . . . . . . . . .I . . . . ." ...... I.. ...... " ........ .. ........ .. ...... .. ........ .. ........ .. ........ ........ " .......... .. .... , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p ............... - ........ .. .. ...... I .. ...... .. .. ...... - .. ...... .. - ...... I ........ - ........ I ........ " .................. .. - ....

lb

I t

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

....l.l.f ................ ..I...... I.. .... .."......""*...L... .... I . . . " . .... * I . . . ...... . . . . . . . . . .".... .*..I,.,. . . . 11.. ....

..I ...... ".....................".-.I... ..... ̂ ."..."...f......"......"." ...... .."."..."...".l..*" .... ......,..... I .......... _...l. ..".....-.......I."..." .....

J!? I.- .................."... .. ." .............-.... _." -......... . .". . ...."."... ........~.""...~."."... " ................................................. -1 '1 ..."................ " ...................................................... .."........"."..I " ...... .. ..."... f .".". I ..... "..." ."."......."..". ".._" -...

39

Page 41: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

lV.2.7.2 Oscilador

Archivos con e x t e n t i DA1 Archivas con extensión S A L

40

Page 42: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Puntos

3 m

, ! I pr..+.~ -:<o""~zEJ. L_.-~ l --.!.-mym j salir ~ . . . . . . . . . . . ' .......................................................................

. . . . . . . . . ............................ Fl

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

............ .......................................................................................

". " ..

lV.2.7.3 Optimización

41

Page 43: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Neurored

!" ....... "" . - - ................

Archivos c m e x t e n s i DAT Hamm dai

jOscla.dat

Archivos con extensión SAL Hamm sal

Oscila.sal

Puntos a m

! . .

I

r - . I /

I !

l . . . . . . . . . . . . . . . . * I

. . . . . . . . . . . . . . . . \ 4 %

p a ,

I BB

*:

. I

. / . . . . . . . . . . . . . . . . . . . . . . . .

!

42

Page 44: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

IV.2.7.4 RED GALLAGER

Page 45: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …
Page 46: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …
Page 47: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

EDITOR RED GALLAGER

N,0,1,435,600,200,0 N,0,2,1230,585,200,0 N,0,3,1950,600,200,0 N,0,4,2640,585,200,0 N,0,5,3300,585,200,0 N,0,6,3900,555,200,0N,0,7,4470,540,200,0 N,0,8,5250,540,200,0 N,0,9,6075,525,200,0N,0,10,6615,510,200,0 N,O, 11,7320,480,200,O N,0,12,7935,450,200,0 N,0,13,8595,435,200,0 N,0,14,9360,525.200,0 N,0,15,10080,465,200,0 N,0,16,1470,2610,200,0 N,0,17,8895,2475,200,0 N,0,18,3780,3555,200,0 N,0,19,6180,3480,200,O N,0,20,1545,4470,200,0 N,0,21,8055,3380,200,0 N,0,30,5085,5175,200,0 F,0,31,450,6315,0,0 F,0,32,9720,6345,0,0 NN,1,-2,1470,2610,6075,525 NN,1,-2,1470,2610,6615,510 NN.1,- 2,1470,2610,7320,480 NN,1,-2,1470,2610,7935,450 NN,1,-2,1470,2610,8595,435 NN,1,-2,1470,2610,9360,525 NN,1,-2,1470,2610,10080,465 N N , 1,-2,3780,3555,435,600 NN,1,-2,3780,3555,1230,585 NN,l,- 2,3780,3555,1950,600 NN,l,-2,3780,3555,2640,585 NN,I,-2,3780,3555,3300,585 NN,l,-2,3780,3555,3900,555 NN,1,-2,3780,3555,4470,540 NN,1,-2,5085,5175,5250,540 NN,1,-2,6180,3480,6075,525 N N , l , - 2,6180,3480,6615,510 NN,1,-2,6180,3480,7320,480 NN,1,-2,6180,3480,7935,450 NN,1,-2,6180,3480,8595,435 NN,1,-2,6180,3480,9360,52~ VN,1,-2,6180,3480,10080,465 NN,l,-2,8895,2475,435,600 NN,l,- 2,8895,2475,1230,585 NN,1,-2,8895,2475,1950,600 NN,1,-2,8895,2475,2640,585 NN,1,-2,8895,2475,3300,585 NN,1,-2,8895,2475,3900,555 NN,1,-2,8895,2475,4470,540 NN,1,-2,1545,4470,1470,2610 N N , 1,- 2,1545,4470,3780,3555 NN,1,-2,1545,4470,5085,5175 NN,1,-2,8055,4380,8895,2475 NN,l,- 2,8055,4380,6180,3480 NN,1,-2,8055,4380,5085,5175 NN,1,-2,1545,4470,8055,4380 NN,l,- 2,3780,3555,6180,3480NN,1,-2,5085,5175,3780,3555 NN,1,-2,x)85,5175,6180,348ONN,1,- 2,5085,5175,1470,2610 ~,1,-2,5085,5175,8895,2475 NN,1,-2,1470,2610,8895,2475 NN,l,- 2,3780,3555,1470,2610 NN,1,-2,6180,3480,8895,2475 FN,1,-1,4~0,6315,1470,2610 FN,1,-1,450,6315,1545,4470

1,9720,6345,6180,3480 FN,I,-1,450,6315,3780,3555 FN,1,-1,9720,6345,8895,2475 FN,1,-1,9720,6345,8055,4380 F N , 1 , -

46

Page 48: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …
Page 49: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Rtert

Terte

Page 50: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

EDITOR RED “ E T

~~~ ~

N,11011,1,1215,1095,200,0 N,11011,2,3945,1020,200,0 N,I 101 1,3,1245,3900,200,0 N,11011,4,4110,3840,200,0 NN,-1,-2,1215,1095,3945,1020 NN,-1,-2,3945,1020,1215,1095 NN,-1,-2,1215,1095,1245,3900 N N , - I , - 2,1245,3900,1215,1095 NN,-1,-2,3945,1020,4110,3840 NN.-1,-2,4110,3840,3945,1020 NW,-l,- 2,4110,3840,1245,3900 NN,-1,-2,1245.3900,4110.3840NN,1,-2,1215,1095,1215,1095 N N , I , - 2,3945,l020,3945,1020 NN, 1,-2,4110.3840,4110,3840 NN,1,-2,1245,3900,1245,3900 N N , - 1 , - 2,1245,3900,3945,1020 NN,-1,-2,3945,1020,1245,3900 NN,-1,-2,1215,1095,4110,3840NN,-1,- 2,4110,3840,1215,1095

50

Page 51: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

IV.2.7.6 RED MAXNET CON FIBRAS

Esta red tiene cuatro fibras que activan a las cuatro neuronas y la intensidad de la conexión es de 1.

De esta manera por cada milisegundo de actividad , puede pasar que a)Todas las neuronas se inhiben y ninguna tiene actividad o b) Todas las neuronas tienen actividad .

Por eso es que se observa la salida de mosaicos como la tenemos.

Page 52: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

MOSAICOS MAXNET

A

B

I I ! I t I

C

Page 53: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

D

Page 54: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

Ill -- I I I

1

J

Page 55: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

K

Page 56: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

CAPITULO V

Conclusiones

Es importante saber que el simulador Wneurored, ademas de ofrecer importantes datos y gráficas sobre el comportamiento de las RNA’s para los estudiantes de Ciencias BAsicas e Ingenierías , es un programa hecho de forma modular en Visual Basic, en donde cada procedimiento esta documentado y disefiado para cualquier modificación, actualización o extensidn en el código que sirva para enriquecer a WNeurored.

Este proyecto se realizó ,tal como mencionamos anteriormente, en Visual Basic. Tenemos varias razones por las cuales decidimos trabajar con este lenguaje. Una de ellas es el usuario de WNeurored , nuestro objetivo es que se familiarice con el paquete lo mAs pronto posible, y para esto se crearon interfaces conocidas, es decir, cuadros de dihlogo para imprimir, guardar y abrir, menús, botones, activacidn del mouse y otras propiedades útiles que ofrece el lenguaje. Y pensando en el programador y en los futuros programadores, es m4s sencillo el diseno y programación de grdficos , tablas o esquemas. Ademds, se adapta a los recursos y capacidad de la mayoria de las computadoras personales.

Agradecemos la colaboración y el apoyo de nuestro asesor Joel Jiménez Cruz, que nos proporcionó material adecuado y completo, sugerencias y diseños , al igual que áreas de trabajo y software para desarrollar el proyecto Wneurored.

Asesor de Proyecto Terminal

‘ d

56

Page 57: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

BIBLIOGRAFIA

Tesis “Redes Neuronales Artificiales: Simulador Neurored” Dr. lsmael Espinosa Espinosa.

“Inteligencia Artificial y Minirobots”, Cap. I-IV.

“Learn to Program with Visual Basic 6” I John Smiley

“Microsoft Visual Basic 5.0. Edicibn de Aprendizaje”, McGraw Hill

“Aspectos bfrsicos de Inteligencia’Artificial”, J. Mira, A. E. Delgado, J. G. Boticario y F. J. Diez

“Redes neuronales. Algoritmos, aplicaciones y tecnicas de programación”. James A. Freeman y David M. Skapura. Ed. Addison-Wesley/Diaz de Santos.

“Theory of the Propagation Neural Network”, Hetch- Wielsen, R. 1989. Proc. Int. Joint Conf.

http://gozer.sunyit.edu/people/johng/GECCO99/gecco99 html/aecco99. html

Page 58: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

APENDICE A

SIMULADOR NEURONAL DE MACGREGOR

NEURORED

El simulador NEURORED es una versión simplificada del simulador SYSTEM!! De MacGregor. Además, es una adaptación para computadora personal compatible con IBM, y esta por escrito en FORTRAN77.

NEURORED es un programa que simula el funcionamiento de un número arbitrario de neuronas activadas por un número arbitrario de fibras o axones de entrada. Las neuronas pueden interconectarse de cualquier manera elegida por el usuario.

Las neuronas esthn conectadas entre sí por axones con terminales sinápticas que pueden ser excitatorias o inhibitorias. Una vez que los axones o fibras han activado a un grupo de neuronas, éste a su vez excita o inhibe a otra u otras neuronas con las cuales está conectada.

El programa NEURORED es general, es decir que, con sólo cambiar los parámetros y los datos, puede simularse cualquier red neuronal. Sin embargo, el programa presenta un problema de introducción de datos. Para redes neuronales muy pequefias es factible proporcionar los datos al momento de correr el programa y conforme éste los va necesitando; pero para redes más grandes, la cantidad de datos es enorme, por lo que es más conveniente proporcionarlos por medio de un archivo de datos redirigido, que se puede construir con el programa interactivo FORMARED.

NEURORED tiene dos subrutinas principales: una que esta encargada de hacer llegar el mensaje de activación de las fibras a las neuronas y, la otra, de actualizar las variables de estado de cada neurona en cada instante de integración. También cuenta con una tercera subrutina que sirve para generar números aleatorios.

DIAGRAMA GENERAL

Como se observa en el diagrama, el archivo generado por FORMARED (archivo.dat), es reconocido por NEURORED, con el cual al realizar la simulación genera otro archivo (archivo.sal), con los resultados de la actividad de la Red Neuronal.

58

Page 59: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

*Actuallzacldn de Variables de Estado

*Respuesta Archivos con extenoi6n .dat que allmentan al simulador de McGregor

4 arch Ivos. sal

Archivos con extsnrl6n .tal que alimentan a lor m6dulos de anbliois como Puntos

OBJETIVO Simular la actividad neuronal, representada por la Red y parámetros biol6gicos y generar los archivos que representan dicha actividad (archivo.sal).

METODO DE SIMULAC16N

El programa resuelve ecuaciones diferenciales discretizadas a partir de las funciones de entrada que dependen del potencial de la membrana y así obtiene el estado y las funciones de salida. Las ecuaciones utilizadas son versiones similares a las de Hodkin-Huxley, aunque mas sencillas por estar linealizadas. En el libro de MacGregor se pueden ver los detalles acerca de esto, ya que no era parte de esta tesis el entrar al análisis numérico correspondiente, sino utilizar el paquete ya programado y generarle programas auxiliares.

LIMITACIONES DE NEURORED

NEURORED está limitado por la memoria de la computadora y el tipo de almacenamiento (disco flexible o disco duro). En disco flexible puede trabajarse hasta con 100 neuronas. Con disco duro pueden utilizarse 200 ó 300 neuronas, pero la simulacidn es muy lenta y los archivos de datos son muy largos. Así que, para resultados satisfactorios, es preferible trabajar con un número pequeiio de neuronas (alrededor de 60). Para las finalidades de este proyecto éste no es un factor de limitaci6n, pues precisamente ese es, aproximadamente, el número de neuronas que pueden registrarse simultáneamente con la tecnología actual empleada en la neurofisiología.

FUNCIONAMIENTO DE NEURORED

Los pasos fundamentales para utilizar NEURORED son: > Disefiar la red neuronal deseada, es decir, topología y parámetros i Dibujar la red neuronal en la pantalla utilizando la variedad de

opciones y ayudas que ofrece FORMARED y al finalizar se podrá

59

Page 60: WNEURORED: SIMULADOR ANALIZADOR REDES NEURONALES …

generar automAticamente el archivo de datos de entrada al simulador NEURORED.

> Correr NEURORED

Con esto se iniciará la simulación de la red, generando un archivo con extensidn *.sal semejante al que se muestra a continuación:

El siguiente archivo muestra la Salida de la Red Neuronal, es decir, una serie de 1’s y O’s, que son resultado de la actividad en paralelo. El primer número es el tiempo, los 3 siguientes son las neuronas 1, 2 y 3, y el cuarto número es la fibra.

60